+
+
+
+
Profile Settings
+
Manage your account information and preferences
-
-
Profile Details
-
- Name: @Model.Account.Profile.FirstName @Model.Account.Profile.MiddleName @Model.Account.Profile.LastName
-
-
Bio: @Model.Account.Profile.Bio
-
Gender: @Model.Account.Profile.Gender
-
-
- Location: @Model.Account.Profile.Location
-
- Birthday: @Model.Account.Profile.Birthday?.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
-
-
- Experience: @Model.Account.Profile.Experience
-
Level: @Model.Account.Profile.Level
-
-
+
+
+
+
+
+
+
+
+
+ @Model.Account.Name?.Substring(0, 1).ToUpper()
+
+
-
-
Access Token
-
-
-
+
+
+ @Model.Account.Nick
+
+
@Model.Account.Name
+
+
+
+
+
@Model.Account.Profile.Level
+
Level
+
+
+
@Model.Account.Profile.Experience
+
XP
+
+
+
+ @Model.Account.CreatedAt.ToDateTimeUtc().ToString("yyyy/MM/dd")
+
+
Member since
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Profile
+ Information
+
+
+
+
Basic
+ Information
+
+
+
- Full
+ Name
+
+ -
+ @($"{Model.Account.Profile.FirstName} {Model.Account.Profile.MiddleName} {Model.Account.Profile.LastName}".Trim())
+
+
+
+
-
+ Username
+
+ - @Model.Account.Name
+
+
+
-
+ Nickname
+
+ - @Model.Account.Nick
+
+
+
-
+ Gender
+
+ - @Model.Account.Profile.Gender
+
+
+
+
+
+
Additional
+ Details
+
+
+
-
+ Location
+
+ - @Model.Account.Profile.Location
+
+
+
-
+ Birthday
+
+ -
+ @Model.Account.Profile.Birthday?.ToString("MMMM d, yyyy", System.Globalization.CultureInfo.InvariantCulture)
+
+
+
+
- Bio
+
+ -
+ @(string.IsNullOrEmpty(Model.Account.Profile.Bio) ? "No bio provided" : Model.Account.Profile.Bio)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Security
+ Settings
+
+
+
+
+
+ Access Token
+
Use this
+ token to authenticate with the API
+
+
+
+
+
+
+
+ Keep this token secure and do not share it with anyone.
+
+
+
+
+
+
+
+
+
Active
+ Sessions
+
This is a list of devices that have
+ logged into your account. Revoke any sessions that you do not recognize.
+
+
+
+ -
+
+
+
+
+
+ Current Session
+
+
+ @($"{Request.Headers["User-Agent"]} • {DateTime.Now:MMMM d, yyyy 'at' h:mm tt}")
+
+
+
+
+
+ Active now
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- }
- else
- {
-
User profile not found. Please log in.
- }
+
-
+}
+else
+{
+
+
+
+
+
+
Profile Not Found
+
User profile not found. Please log in to continue.
+
+ Go to Login
+
+
+
+}
-
\ No newline at end of file
+@section Scripts {
+
+}
\ No newline at end of file
diff --git a/DysonNetwork.Sphere/wwwroot/css/styles.css b/DysonNetwork.Sphere/wwwroot/css/styles.css
index 662fe0c..5837219 100644
--- a/DysonNetwork.Sphere/wwwroot/css/styles.css
+++ b/DysonNetwork.Sphere/wwwroot/css/styles.css
@@ -20,11 +20,13 @@
--color-green-600: oklch(62.7% 0.194 149.214);
--color-green-800: oklch(44.8% 0.119 151.328);
--color-green-900: oklch(39.3% 0.095 152.535);
+ --color-blue-100: oklch(93.2% 0.032 255.585);
--color-blue-300: oklch(80.9% 0.105 251.813);
--color-blue-400: oklch(70.7% 0.165 254.624);
--color-blue-500: oklch(62.3% 0.214 259.815);
--color-blue-600: oklch(54.6% 0.245 262.881);
--color-blue-700: oklch(48.8% 0.243 264.376);
+ --color-blue-900: oklch(37.9% 0.146 265.522);
--color-gray-50: oklch(98.5% 0.002 247.839);
--color-gray-100: oklch(96.7% 0.003 264.542);
--color-gray-200: oklch(92.8% 0.006 264.531);
@@ -40,7 +42,10 @@
--container-md: 28rem;
--container-lg: 32rem;
--container-2xl: 42rem;
+ --container-6xl: 72rem;
--container-7xl: 80rem;
+ --text-xs: 0.75rem;
+ --text-xs--line-height: calc(1 / 0.75);
--text-sm: 0.875rem;
--text-sm--line-height: calc(1.25 / 0.875);
--text-lg: 1.125rem;
@@ -53,6 +58,8 @@
--text-3xl--line-height: calc(2.25 / 1.875);
--text-4xl: 2.25rem;
--text-4xl--line-height: calc(2.5 / 2.25);
+ --text-5xl: 3rem;
+ --text-5xl--line-height: 1;
--text-6xl: 3.75rem;
--text-6xl--line-height: 1;
--font-weight-medium: 500;
@@ -225,9 +232,15 @@
.static {
position: static;
}
+ .sticky {
+ position: sticky;
+ }
.top-0 {
top: calc(var(--spacing) * 0);
}
+ .top-8 {
+ top: calc(var(--spacing) * 8);
+ }
.right-0 {
right: calc(var(--spacing) * 0);
}
@@ -264,6 +277,9 @@
.mt-1 {
margin-top: calc(var(--spacing) * 1);
}
+ .mt-2 {
+ margin-top: calc(var(--spacing) * 2);
+ }
.mt-4 {
margin-top: calc(var(--spacing) * 4);
}
@@ -282,6 +298,12 @@
.mt-\[64px\] {
margin-top: 64px;
}
+ .mr-1 {
+ margin-right: calc(var(--spacing) * 1);
+ }
+ .-mb-px {
+ margin-bottom: -1px;
+ }
.mb-1 {
margin-bottom: calc(var(--spacing) * 1);
}
@@ -315,18 +337,33 @@
.flex {
display: flex;
}
+ .grid {
+ display: grid;
+ }
.hidden {
display: none;
}
.inline {
display: inline;
}
+ .inline-flex {
+ display: inline-flex;
+ }
.table {
display: table;
}
+ .h-6 {
+ height: calc(var(--spacing) * 6);
+ }
+ .h-10 {
+ height: calc(var(--spacing) * 10);
+ }
.h-16 {
height: calc(var(--spacing) * 16);
}
+ .h-32 {
+ height: calc(var(--spacing) * 32);
+ }
.h-\[calc\(100dvh-118px\)\] {
height: calc(100dvh - 118px);
}
@@ -336,18 +373,36 @@
.min-h-screen {
min-height: 100vh;
}
+ .w-6 {
+ width: calc(var(--spacing) * 6);
+ }
+ .w-10 {
+ width: calc(var(--spacing) * 10);
+ }
+ .w-32 {
+ width: calc(var(--spacing) * 32);
+ }
.w-full {
width: 100%;
}
.max-w-2xl {
max-width: var(--container-2xl);
}
+ .max-w-6xl {
+ max-width: var(--container-6xl);
+ }
.max-w-lg {
max-width: var(--container-lg);
}
.max-w-md {
max-width: var(--container-md);
}
+ .flex-1 {
+ flex: 1;
+ }
+ .flex-shrink-0 {
+ flex-shrink: 0;
+ }
.flex-grow {
flex-grow: 1;
}
@@ -360,18 +415,33 @@
.resize {
resize: both;
}
+ .grid-cols-1 {
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ }
.flex-col {
flex-direction: column;
}
.items-center {
align-items: center;
}
+ .justify-around {
+ justify-content: space-around;
+ }
.justify-between {
justify-content: space-between;
}
.justify-center {
justify-content: center;
}
+ .justify-end {
+ justify-content: flex-end;
+ }
+ .gap-6 {
+ gap: calc(var(--spacing) * 6);
+ }
+ .gap-8 {
+ gap: calc(var(--spacing) * 8);
+ }
.space-y-4 {
:where(& > :not(:last-child)) {
--tw-space-y-reverse: 0;
@@ -379,14 +449,41 @@
margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
}
}
+ .space-y-6 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
.gap-x-6 {
column-gap: calc(var(--spacing) * 6);
}
+ .divide-y {
+ :where(& > :not(:last-child)) {
+ --tw-divide-y-reverse: 0;
+ border-bottom-style: var(--tw-border-style);
+ border-top-style: var(--tw-border-style);
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
+ }
+ }
+ .divide-gray-200 {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-gray-200);
+ }
+ }
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
+ .overflow-hidden {
+ overflow: hidden;
+ }
+ .rounded-full {
+ border-radius: calc(infinity * 1px);
+ }
.rounded-lg {
border-radius: var(--radius-lg);
}
@@ -401,9 +498,33 @@
border-style: var(--tw-border-style);
border-width: 2px;
}
+ .border-t {
+ border-top-style: var(--tw-border-style);
+ border-top-width: 1px;
+ }
+ .border-b {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 1px;
+ }
+ .border-b-2 {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 2px;
+ }
+ .border-blue-500 {
+ border-color: var(--color-blue-500);
+ }
+ .border-gray-200 {
+ border-color: var(--color-gray-200);
+ }
.border-gray-300 {
border-color: var(--color-gray-300);
}
+ .border-transparent {
+ border-color: transparent;
+ }
+ .bg-blue-100 {
+ background-color: var(--color-blue-100);
+ }
.bg-blue-500 {
background-color: var(--color-blue-500);
}
@@ -416,6 +537,9 @@
.bg-gray-100 {
background-color: var(--color-gray-100);
}
+ .bg-gray-200 {
+ background-color: var(--color-gray-200);
+ }
.bg-green-100 {
background-color: var(--color-green-100);
}
@@ -437,6 +561,9 @@
.p-8 {
padding: calc(var(--spacing) * 8);
}
+ .px-2\.5 {
+ padding-inline: calc(var(--spacing) * 2.5);
+ }
.px-3 {
padding-inline: calc(var(--spacing) * 3);
}
@@ -449,15 +576,33 @@
.px-8 {
padding-inline: calc(var(--spacing) * 8);
}
+ .py-0\.5 {
+ padding-block: calc(var(--spacing) * 0.5);
+ }
.py-2 {
padding-block: calc(var(--spacing) * 2);
}
.py-3 {
padding-block: calc(var(--spacing) * 3);
}
+ .py-4 {
+ padding-block: calc(var(--spacing) * 4);
+ }
+ .py-5 {
+ padding-block: calc(var(--spacing) * 5);
+ }
+ .py-8 {
+ padding-block: calc(var(--spacing) * 8);
+ }
.py-12 {
padding-block: calc(var(--spacing) * 12);
}
+ .pt-4 {
+ padding-top: calc(var(--spacing) * 4);
+ }
+ .pt-6 {
+ padding-top: calc(var(--spacing) * 6);
+ }
.pt-8 {
padding-top: calc(var(--spacing) * 8);
}
@@ -470,6 +615,9 @@
.text-left {
text-align: left;
}
+ .text-right {
+ text-align: right;
+ }
.text-2xl {
font-size: var(--text-2xl);
line-height: var(--tw-leading, var(--text-2xl--line-height));
@@ -482,6 +630,10 @@
font-size: var(--text-4xl);
line-height: var(--tw-leading, var(--text-4xl--line-height));
}
+ .text-5xl {
+ font-size: var(--text-5xl);
+ line-height: var(--tw-leading, var(--text-5xl--line-height));
+ }
.text-lg {
font-size: var(--text-lg);
line-height: var(--tw-leading, var(--text-lg--line-height));
@@ -494,6 +646,14 @@
font-size: var(--text-xl);
line-height: var(--tw-leading, var(--text-xl--line-height));
}
+ .text-xs {
+ font-size: var(--text-xs);
+ line-height: var(--tw-leading, var(--text-xs--line-height));
+ }
+ .leading-6 {
+ --tw-leading: calc(var(--spacing) * 6);
+ line-height: calc(var(--spacing) * 6);
+ }
.leading-8 {
--tw-leading: calc(var(--spacing) * 8);
line-height: calc(var(--spacing) * 8);
@@ -556,6 +716,10 @@
.opacity-80 {
opacity: 80%;
}
+ .shadow {
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
.shadow-\[0_-1px_3px_0_rgba\(0\,0\,0\,0\.1\)\] {
--tw-shadow: 0 -1px 3px 0 var(--tw-shadow-color, rgba(0,0,0,0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -598,6 +762,13 @@
}
}
}
+ .hover\:border-gray-300 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-gray-300);
+ }
+ }
+ }
.hover\:bg-blue-600 {
&:hover {
@media (hover: hover) {
@@ -612,6 +783,13 @@
}
}
}
+ .hover\:bg-gray-50 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-gray-50);
+ }
+ }
+ }
.hover\:bg-gray-100 {
&:hover {
@media (hover: hover) {
@@ -679,23 +857,76 @@
--tw-ring-color: var(--color-red-500);
}
}
+ .focus\:ring-offset-2 {
+ &:focus {
+ --tw-ring-offset-width: 2px;
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ }
+ }
.focus\:outline-none {
&:focus {
--tw-outline-style: none;
outline-style: none;
}
}
+ .sm\:rounded-lg {
+ @media (width >= 40rem) {
+ border-radius: var(--radius-lg);
+ }
+ }
+ .sm\:px-6 {
+ @media (width >= 40rem) {
+ padding-inline: calc(var(--spacing) * 6);
+ }
+ }
.sm\:text-6xl {
@media (width >= 40rem) {
font-size: var(--text-6xl);
line-height: var(--tw-leading, var(--text-6xl--line-height));
}
}
+ .md\:w-1\/3 {
+ @media (width >= 48rem) {
+ width: calc(1/3 * 100%);
+ }
+ }
+ .md\:grid-cols-2 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+ }
+ .md\:flex-row {
+ @media (width >= 48rem) {
+ flex-direction: row;
+ }
+ }
+ .lg\:w-1\/4 {
+ @media (width >= 64rem) {
+ width: calc(1/4 * 100%);
+ }
+ }
+ .dark\:divide-gray-700 {
+ @media (prefers-color-scheme: dark) {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-gray-700);
+ }
+ }
+ }
.dark\:border-gray-600 {
@media (prefers-color-scheme: dark) {
border-color: var(--color-gray-600);
}
}
+ .dark\:border-gray-700 {
+ @media (prefers-color-scheme: dark) {
+ border-color: var(--color-gray-700);
+ }
+ }
+ .dark\:bg-blue-900 {
+ @media (prefers-color-scheme: dark) {
+ background-color: var(--color-blue-900);
+ }
+ }
.dark\:bg-gray-700 {
@media (prefers-color-scheme: dark) {
background-color: var(--color-gray-700);
@@ -788,6 +1019,15 @@
}
}
}
+ .dark\:hover\:text-gray-200 {
+ @media (prefers-color-scheme: dark) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-gray-200);
+ }
+ }
+ }
+ }
.dark\:hover\:text-gray-300 {
@media (prefers-color-scheme: dark) {
&:hover {
@@ -1044,6 +1284,11 @@
inherits: false;
initial-value: 0;
}
+@property --tw-divide-y-reverse {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
@property --tw-border-style {
syntax: "*";
inherits: false;
@@ -1208,6 +1453,7 @@
--tw-skew-x: initial;
--tw-skew-y: initial;
--tw-space-y-reverse: 0;
+ --tw-divide-y-reverse: 0;
--tw-border-style: solid;
--tw-leading: initial;
--tw-font-weight: initial;