@replicated/portal-components 0.0.8 → 0.0.9

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.
Files changed (55) hide show
  1. package/components/metadata/registry.json +2 -2
  2. package/components/metadata/registry.md +2 -2
  3. package/dist/error-page.js +6 -1
  4. package/dist/error-page.js.map +1 -1
  5. package/dist/error.js +6 -1
  6. package/dist/error.js.map +1 -1
  7. package/dist/esm/error-page.js +2 -1
  8. package/dist/esm/error-page.js.map +1 -1
  9. package/dist/esm/error.js +2 -1
  10. package/dist/esm/error.js.map +1 -1
  11. package/dist/esm/index.js +10 -9
  12. package/dist/esm/index.js.map +1 -1
  13. package/dist/esm/install-card.js +2 -1
  14. package/dist/esm/install-card.js.map +1 -1
  15. package/dist/esm/join-team.js +2 -1
  16. package/dist/esm/join-team.js.map +1 -1
  17. package/dist/esm/license-card.js +2 -1
  18. package/dist/esm/license-card.js.map +1 -1
  19. package/dist/esm/pending-installations.js +3 -2
  20. package/dist/esm/pending-installations.js.map +1 -1
  21. package/dist/esm/support-card.js +2 -1
  22. package/dist/esm/support-card.js.map +1 -1
  23. package/dist/esm/team-settings-card.js +2 -1
  24. package/dist/esm/team-settings-card.js.map +1 -1
  25. package/dist/esm/top-nav.js +5 -4
  26. package/dist/esm/top-nav.js.map +1 -1
  27. package/dist/esm/update-layout.js +5 -4
  28. package/dist/esm/update-layout.js.map +1 -1
  29. package/dist/esm/updates-card.js +2 -1
  30. package/dist/esm/updates-card.js.map +1 -1
  31. package/dist/esm/user-settings-card.js +2 -1
  32. package/dist/esm/user-settings-card.js.map +1 -1
  33. package/dist/index.js +14 -9
  34. package/dist/index.js.map +1 -1
  35. package/dist/install-card.js +6 -1
  36. package/dist/install-card.js.map +1 -1
  37. package/dist/join-team.js +6 -1
  38. package/dist/join-team.js.map +1 -1
  39. package/dist/license-card.js +6 -1
  40. package/dist/license-card.js.map +1 -1
  41. package/dist/pending-installations.js +7 -2
  42. package/dist/pending-installations.js.map +1 -1
  43. package/dist/support-card.js +6 -1
  44. package/dist/support-card.js.map +1 -1
  45. package/dist/team-settings-card.js +6 -1
  46. package/dist/team-settings-card.js.map +1 -1
  47. package/dist/top-nav.js +9 -4
  48. package/dist/top-nav.js.map +1 -1
  49. package/dist/update-layout.js +9 -4
  50. package/dist/update-layout.js.map +1 -1
  51. package/dist/updates-card.js +6 -1
  52. package/dist/updates-card.js.map +1 -1
  53. package/dist/user-settings-card.js +6 -1
  54. package/dist/user-settings-card.js.map +1 -1
  55. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.0.8",
3
- "generatedAt": "2025-12-13T00:48:14Z",
2
+ "version": "0.0.9",
3
+ "generatedAt": "2025-12-30T00:59:55Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "Button",
@@ -1,7 +1,7 @@
1
1
  # Component Registry
2
2
 
3
- - Version: 0.0.8
4
- - Generated: 2025-12-13T00:48:14Z
3
+ - Version: 0.0.9
4
+ - Generated: 2025-12-30T00:59:55Z
5
5
 
6
6
  ## Button
7
7
 
@@ -1,8 +1,13 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var Link = require('next/link');
4
5
  var jsxRuntime = require('react/jsx-runtime');
5
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var Link__default = /*#__PURE__*/_interopDefault(Link);
10
+
6
11
  /**
7
12
  * Enterprise Portal Components
8
13
  * This file is generated by tsup. Do not edit manually.
@@ -117,7 +122,7 @@ var Error = ({
117
122
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-sm text-gray-600", children: message || errorContent.description }),
118
123
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center", children: [
119
124
  /* @__PURE__ */ jsxRuntime.jsx(
120
- "a",
125
+ Link__default.default,
121
126
  {
122
127
  href: homeUrl,
123
128
  className: "inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/error.tsx","../src/components/error-page.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"error-page.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <a\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </a>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n","\"use client\";\n\nimport { Error } from \"./error\";\n\ninterface ErrorPageProps {\n statusCode?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n}\n\nexport const ErrorPage = ({ \n statusCode, \n message,\n homeUrl = \"/\",\n sourceUrl\n}: ErrorPageProps) => {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4 py-12\">\n <Error code={statusCode} message={message} homeUrl={homeUrl} sourceUrl={sourceUrl} />\n </div>\n );\n};\n\nErrorPage.displayName = \"ErrorPage\";\n"]}
1
+ {"version":3,"sources":["../src/components/error.tsx","../src/components/error-page.tsx"],"names":["jsxs","jsx","Link"],"mappings":"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","file":"error-page.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\nimport Link from \"next/link\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <Link\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </Link>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n","\"use client\";\n\nimport { Error } from \"./error\";\n\ninterface ErrorPageProps {\n statusCode?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n}\n\nexport const ErrorPage = ({ \n statusCode, \n message,\n homeUrl = \"/\",\n sourceUrl\n}: ErrorPageProps) => {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4 py-12\">\n <Error code={statusCode} message={message} homeUrl={homeUrl} sourceUrl={sourceUrl} />\n </div>\n );\n};\n\nErrorPage.displayName = \"ErrorPage\";\n"]}
package/dist/error.js CHANGED
@@ -1,8 +1,13 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var Link = require('next/link');
4
5
  var jsxRuntime = require('react/jsx-runtime');
5
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var Link__default = /*#__PURE__*/_interopDefault(Link);
10
+
6
11
  /**
7
12
  * Enterprise Portal Components
8
13
  * This file is generated by tsup. Do not edit manually.
@@ -117,7 +122,7 @@ var Error = ({
117
122
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-sm text-gray-600", children: message || errorContent.description }),
118
123
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center", children: [
119
124
  /* @__PURE__ */ jsxRuntime.jsx(
120
- "a",
125
+ Link__default.default,
121
126
  {
122
127
  href: homeUrl,
123
128
  className: "inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600",
package/dist/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/error.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"error.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <a\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </a>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n"]}
1
+ {"version":3,"sources":["../src/components/error.tsx"],"names":["jsxs","jsx","Link"],"mappings":"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","file":"error.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\nimport Link from \"next/link\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <Link\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </Link>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n"]}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ import Link from 'next/link';
2
3
  import { jsx, jsxs } from 'react/jsx-runtime';
3
4
 
4
5
  /**
@@ -115,7 +116,7 @@ var Error = ({
115
116
  /* @__PURE__ */ jsx("p", { className: "mt-4 text-sm text-gray-600", children: message || errorContent.description }),
116
117
  /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center", children: [
117
118
  /* @__PURE__ */ jsx(
118
- "a",
119
+ Link,
119
120
  {
120
121
  href: homeUrl,
121
122
  className: "inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/error.tsx","../../src/components/error-page.tsx"],"names":["jsx"],"mappings":"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","file":"error-page.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <a\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </a>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n","\"use client\";\n\nimport { Error } from \"./error\";\n\ninterface ErrorPageProps {\n statusCode?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n}\n\nexport const ErrorPage = ({ \n statusCode, \n message,\n homeUrl = \"/\",\n sourceUrl\n}: ErrorPageProps) => {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4 py-12\">\n <Error code={statusCode} message={message} homeUrl={homeUrl} sourceUrl={sourceUrl} />\n </div>\n );\n};\n\nErrorPage.displayName = \"ErrorPage\";\n"]}
1
+ {"version":3,"sources":["../../src/components/error.tsx","../../src/components/error-page.tsx"],"names":["jsx"],"mappings":"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","file":"error-page.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\nimport Link from \"next/link\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <Link\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </Link>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n","\"use client\";\n\nimport { Error } from \"./error\";\n\ninterface ErrorPageProps {\n statusCode?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n}\n\nexport const ErrorPage = ({ \n statusCode, \n message,\n homeUrl = \"/\",\n sourceUrl\n}: ErrorPageProps) => {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4 py-12\">\n <Error code={statusCode} message={message} homeUrl={homeUrl} sourceUrl={sourceUrl} />\n </div>\n );\n};\n\nErrorPage.displayName = \"ErrorPage\";\n"]}
package/dist/esm/error.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ import Link from 'next/link';
2
3
  import { jsx, jsxs } from 'react/jsx-runtime';
3
4
 
4
5
  /**
@@ -115,7 +116,7 @@ var Error = ({
115
116
  /* @__PURE__ */ jsx("p", { className: "mt-4 text-sm text-gray-600", children: message || errorContent.description }),
116
117
  /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center", children: [
117
118
  /* @__PURE__ */ jsx(
118
- "a",
119
+ Link,
119
120
  {
120
121
  href: homeUrl,
121
122
  className: "inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/error.tsx"],"names":[],"mappings":"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","file":"error.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <a\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </a>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n"]}
1
+ {"version":3,"sources":["../../src/components/error.tsx"],"names":[],"mappings":"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","file":"error.js","sourcesContent":["\"use client\";\n\nimport type { SVGProps } from \"react\";\nimport Link from \"next/link\";\n\nconst AlertTriangleIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\nconst ServerIcon = (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 aria-hidden=\"true\"\n {...props}\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\" />\n <line x1=\"6\" y1=\"6\" x2=\"6.01\" y2=\"6\" />\n <line x1=\"6\" y1=\"18\" x2=\"6.01\" y2=\"18\" />\n </svg>\n);\n\nexport interface ErrorProps {\n code?: number;\n message?: string;\n homeUrl?: string;\n sourceUrl?: string;\n onRetry?: () => void;\n}\n\nconst getErrorContent = (code?: number) => {\n switch (code) {\n case 502:\n return {\n title: \"Service Unavailable\",\n description: \"The service is temporarily unavailable. Please try again in a few moments.\",\n icon: ServerIcon,\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n description: \"The service is currently undergoing maintenance. Please try again later.\",\n icon: ServerIcon,\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n description: \"The request took too long to process. Please try again.\",\n icon: ServerIcon,\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n description: \"Something went wrong on our end. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n case 404:\n return {\n title: \"Page Not Found\",\n description: \"The page you're looking for doesn't exist or has been moved.\",\n icon: AlertTriangleIcon,\n };\n case 403:\n return {\n title: \"Access Denied\",\n description: \"You don't have permission to access this resource.\",\n icon: AlertTriangleIcon,\n };\n default:\n return {\n title: \"Something Went Wrong\",\n description: \"An unexpected error occurred. Please try again later.\",\n icon: AlertTriangleIcon,\n };\n }\n};\n\nexport const Error = ({ \n code, \n message,\n homeUrl = \"/\",\n sourceUrl,\n onRetry\n}: ErrorProps) => {\n const errorContent = getErrorContent(code);\n const Icon = errorContent.icon;\n\n const handleRetry = () => {\n if (onRetry) {\n onRetry();\n } else if (sourceUrl) {\n window.location.href = sourceUrl;\n } else {\n window.location.reload();\n }\n };\n\n return (\n <div className=\"w-full max-w-md\">\n <div className=\"rounded-3xl border border-gray-200 bg-white p-8 shadow-[0_12px_30px_rgba(17,24,39,0.12)] text-center\">\n <div className=\"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100\">\n <Icon className=\"h-8 w-8 text-red-600\" />\n </div>\n \n {code && (\n <div className=\"mt-6 text-sm font-semibold text-gray-500\">\n Error {code}\n </div>\n )}\n \n <h1 className=\"mt-2 text-2xl font-bold text-gray-900\">\n {errorContent.title}\n </h1>\n \n <p className=\"mt-4 text-sm text-gray-600\">\n {message || errorContent.description}\n </p>\n \n <div className=\"mt-8 flex flex-col gap-3 sm:flex-row sm:justify-center\">\n <Link\n href={homeUrl}\n className=\"inline-flex items-center justify-center rounded-lg bg-indigo-600 px-6 py-3 text-sm font-semibold text-white shadow-sm transition hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n Go to Home\n </Link>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-6 py-3 text-sm font-semibold text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-600\"\n >\n Try Again\n </button>\n </div>\n \n {code && code >= 500 && (\n <p className=\"mt-6 text-xs text-gray-500\">\n If this problem persists, please contact support.\n </p>\n )}\n </div>\n </div>\n );\n};\n\nError.displayName = \"Error\";\n"]}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { forwardRef, cache, useState, useMemo } from 'react';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { Buffer as Buffer$1 } from 'buffer';
4
+ import Link from 'next/link';
4
5
 
5
6
  /**
6
7
  * Enterprise Portal Components
@@ -9,7 +10,7 @@ import { Buffer as Buffer$1 } from 'buffer';
9
10
 
10
11
  // package.json
11
12
  var package_default = {
12
- version: "0.0.8"};
13
+ version: "0.0.9"};
13
14
 
14
15
  // src/tokens/index.ts
15
16
  var baseTokens = {
@@ -1760,7 +1761,7 @@ var TopNav = async ({
1760
1761
  ] }),
1761
1762
  /* @__PURE__ */ jsxs("div", { className: "absolute right-0 mt-2 w-48 rounded-md border border-gray-200 bg-white py-2 text-sm text-gray-700 shadow-lg z-50", children: [
1762
1763
  /* @__PURE__ */ jsx(
1763
- "a",
1764
+ Link,
1764
1765
  {
1765
1766
  href: "/user-settings",
1766
1767
  className: "block w-full px-4 py-2 text-left hover:bg-gray-100",
@@ -1768,7 +1769,7 @@ var TopNav = async ({
1768
1769
  }
1769
1770
  ),
1770
1771
  /* @__PURE__ */ jsx(
1771
- "a",
1772
+ Link,
1772
1773
  {
1773
1774
  href: "/team-settings",
1774
1775
  className: "block w-full px-4 py-2 text-left hover:bg-gray-100",
@@ -1777,7 +1778,7 @@ var TopNav = async ({
1777
1778
  ),
1778
1779
  userMenuChildren,
1779
1780
  /* @__PURE__ */ jsx(
1780
- "a",
1781
+ Link,
1781
1782
  {
1782
1783
  href: "/?expired=1",
1783
1784
  className: "block w-full px-4 py-2 text-left hover:bg-gray-100",
@@ -1791,7 +1792,7 @@ var TopNav = async ({
1791
1792
  const isActive = activeLabel === label;
1792
1793
  const className = `flex items-center gap-2 px-4 py-1 transition text-gray-500 ${isActive ? "underline underline-offset-8 decoration-2" : ""}`;
1793
1794
  if (href) {
1794
- return /* @__PURE__ */ jsxs("a", { href, className, children: [
1795
+ return /* @__PURE__ */ jsxs(Link, { href, className, children: [
1795
1796
  /* @__PURE__ */ jsx("span", { className: isActive ? "text-rose-600" : "text-gray-500", children: icon }),
1796
1797
  /* @__PURE__ */ jsx("span", { children: label })
1797
1798
  ] }, label);
@@ -1876,7 +1877,7 @@ var UpdatesCard = ({
1876
1877
  airgapUpdates > 0 && /* @__PURE__ */ jsx(Badge, { count: airgapUpdates })
1877
1878
  ] })
1878
1879
  ] }),
1879
- /* @__PURE__ */ jsx("footer", { className: footerClass, children: /* @__PURE__ */ jsx("a", { href: "/update", children: "View updates \u2192" }) })
1880
+ /* @__PURE__ */ jsx("footer", { className: footerClass, children: /* @__PURE__ */ jsx(Link, { href: "/update", children: "View updates \u2192" }) })
1880
1881
  ] });
1881
1882
  UpdatesCard.displayName = "UpdatesCard";
1882
1883
  var UploadIcon = (props) => /* @__PURE__ */ jsxs(
@@ -1931,7 +1932,7 @@ var SupportCard = async () => {
1931
1932
  ")"
1932
1933
  ] })
1933
1934
  ] }) }),
1934
- /* @__PURE__ */ jsx("footer", { className: footerClass2, children: /* @__PURE__ */ jsx("a", { href: "/support", className: "inline-flex items-center gap-1", children: "View support guide \u2192" }) })
1935
+ /* @__PURE__ */ jsx("footer", { className: footerClass2, children: /* @__PURE__ */ jsx(Link, { href: "/support", className: "inline-flex items-center gap-1", children: "View support guide \u2192" }) })
1935
1936
  ] });
1936
1937
  };
1937
1938
  SupportCard.displayName = "SupportCard";
@@ -2297,7 +2298,7 @@ var footerClass3 = "mt-6 flex justify-end text-sm font-semibold text-primary hov
2297
2298
  var UserSettingsCard = () => /* @__PURE__ */ jsxs("section", { className: baseCardClass3, "aria-labelledby": "user-settings-card-heading", children: [
2298
2299
  /* @__PURE__ */ jsx("header", { children: /* @__PURE__ */ jsx("h2", { id: "user-settings-card-heading", className: headingClass3, children: "User Settings" }) }),
2299
2300
  /* @__PURE__ */ jsx("div", { className: bodySpacerClass }),
2300
- /* @__PURE__ */ jsx("footer", { className: footerClass3, children: /* @__PURE__ */ jsx("a", { href: "/user-settings", children: "View user settings \u2192" }) })
2301
+ /* @__PURE__ */ jsx("footer", { className: footerClass3, children: /* @__PURE__ */ jsx(Link, { href: "/user-settings", children: "View user settings \u2192" }) })
2301
2302
  ] });
2302
2303
  UserSettingsCard.displayName = "UserSettingsCard";
2303
2304
  var UsersIcon = (props) => /* @__PURE__ */ jsxs(
@@ -2364,7 +2365,7 @@ var TeamSettingsCard = ({
2364
2365
  ] })
2365
2366
  ] })
2366
2367
  ] }),
2367
- /* @__PURE__ */ jsx("footer", { className: footerClass4, children: /* @__PURE__ */ jsx("a", { href: "/team-settings", children: "View team settings \u2192" }) })
2368
+ /* @__PURE__ */ jsx("footer", { className: footerClass4, children: /* @__PURE__ */ jsx(Link, { href: "/team-settings", children: "View team settings \u2192" }) })
2368
2369
  ] });
2369
2370
  TeamSettingsCard.displayName = "TeamSettingsCard";
2370
2371
  var UpdateLayout = ({ children }) => {