@timecell/web 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.json +23 -0
- package/index.html +13 -0
- package/package.json +32 -0
- package/public/logo.png +0 -0
- package/public/timecell.svg +4 -0
- package/src/App.tsx +117 -0
- package/src/components/ConvictionLadder.tsx +113 -0
- package/src/components/CrashCard.tsx +180 -0
- package/src/components/CrashChart.tsx +139 -0
- package/src/components/CrashGrid.tsx +12 -0
- package/src/components/InfoPanel.tsx +44 -0
- package/src/components/PortfolioForm.tsx +134 -0
- package/src/components/PositionSizing.tsx +382 -0
- package/src/components/SurvivalHero.tsx +90 -0
- package/src/components/SurvivalSummary.tsx +47 -0
- package/src/components/TemperatureGauge.tsx +283 -0
- package/src/components/ui/badge.tsx +36 -0
- package/src/components/ui/card.tsx +76 -0
- package/src/components/ui/separator.tsx +29 -0
- package/src/components/ui/slider.tsx +26 -0
- package/src/components/ui/tooltip.tsx +32 -0
- package/src/hooks/usePortfolio.ts +110 -0
- package/src/index.css +115 -0
- package/src/lib/utils.ts +6 -0
- package/src/main.tsx +10 -0
- package/tailwind.config.js +8 -0
- package/tsconfig.json +12 -0
- package/vite.config.ts +20 -0
package/src/index.css
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@plugin "tailwindcss-animate";
|
|
4
|
+
|
|
5
|
+
@custom-variant dark (&:is(.dark *));
|
|
6
|
+
|
|
7
|
+
@theme inline {
|
|
8
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
9
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
10
|
+
--radius-lg: var(--radius);
|
|
11
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
12
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
13
|
+
--radius-3xl: calc(var(--radius) + 12px);
|
|
14
|
+
--radius-4xl: calc(var(--radius) + 16px);
|
|
15
|
+
--color-background: var(--background);
|
|
16
|
+
--color-foreground: var(--foreground);
|
|
17
|
+
--color-card: var(--card);
|
|
18
|
+
--color-card-foreground: var(--card-foreground);
|
|
19
|
+
--color-popover: var(--popover);
|
|
20
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
21
|
+
--color-primary: var(--primary);
|
|
22
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
23
|
+
--color-secondary: var(--secondary);
|
|
24
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
25
|
+
--color-muted: var(--muted);
|
|
26
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
27
|
+
--color-accent: var(--accent);
|
|
28
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
29
|
+
--color-destructive: var(--destructive);
|
|
30
|
+
--color-border: var(--border);
|
|
31
|
+
--color-input: var(--input);
|
|
32
|
+
--color-ring: var(--ring);
|
|
33
|
+
--color-chart-1: var(--chart-1);
|
|
34
|
+
--color-chart-2: var(--chart-2);
|
|
35
|
+
--color-chart-3: var(--chart-3);
|
|
36
|
+
--color-chart-4: var(--chart-4);
|
|
37
|
+
--color-chart-5: var(--chart-5);
|
|
38
|
+
--color-sidebar: var(--sidebar);
|
|
39
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
40
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
41
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
42
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
43
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
44
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
45
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:root {
|
|
49
|
+
--radius: 0.625rem;
|
|
50
|
+
--background: oklch(1 0 0);
|
|
51
|
+
--foreground: oklch(0.129 0.042 264.695);
|
|
52
|
+
--card: oklch(1 0 0);
|
|
53
|
+
--card-foreground: oklch(0.129 0.042 264.695);
|
|
54
|
+
--popover: oklch(1 0 0);
|
|
55
|
+
--popover-foreground: oklch(0.129 0.042 264.695);
|
|
56
|
+
--primary: oklch(0.208 0.042 265.755);
|
|
57
|
+
--primary-foreground: oklch(0.984 0.003 247.858);
|
|
58
|
+
--secondary: oklch(0.968 0.007 247.896);
|
|
59
|
+
--secondary-foreground: oklch(0.208 0.042 265.755);
|
|
60
|
+
--muted: oklch(0.968 0.007 247.896);
|
|
61
|
+
--muted-foreground: oklch(0.554 0.046 257.417);
|
|
62
|
+
--accent: oklch(0.968 0.007 247.896);
|
|
63
|
+
--accent-foreground: oklch(0.208 0.042 265.755);
|
|
64
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
65
|
+
--border: oklch(0.929 0.013 255.508);
|
|
66
|
+
--input: oklch(0.929 0.013 255.508);
|
|
67
|
+
--ring: oklch(0.704 0.04 256.788);
|
|
68
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
69
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
70
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
71
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
72
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
73
|
+
--sidebar: oklch(0.984 0.003 247.858);
|
|
74
|
+
--sidebar-foreground: oklch(0.129 0.042 264.695);
|
|
75
|
+
--sidebar-primary: oklch(0.208 0.042 265.755);
|
|
76
|
+
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
77
|
+
--sidebar-accent: oklch(0.968 0.007 247.896);
|
|
78
|
+
--sidebar-accent-foreground: oklch(0.208 0.042 265.755);
|
|
79
|
+
--sidebar-border: oklch(0.929 0.013 255.508);
|
|
80
|
+
--sidebar-ring: oklch(0.704 0.04 256.788);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.dark {
|
|
84
|
+
--background: oklch(0.129 0.042 264.695);
|
|
85
|
+
--foreground: oklch(0.984 0.003 247.858);
|
|
86
|
+
--card: oklch(0.208 0.042 265.755);
|
|
87
|
+
--card-foreground: oklch(0.984 0.003 247.858);
|
|
88
|
+
--popover: oklch(0.208 0.042 265.755);
|
|
89
|
+
--popover-foreground: oklch(0.984 0.003 247.858);
|
|
90
|
+
--primary: oklch(0.929 0.013 255.508);
|
|
91
|
+
--primary-foreground: oklch(0.208 0.042 265.755);
|
|
92
|
+
--secondary: oklch(0.279 0.041 260.031);
|
|
93
|
+
--secondary-foreground: oklch(0.984 0.003 247.858);
|
|
94
|
+
--muted: oklch(0.279 0.041 260.031);
|
|
95
|
+
--muted-foreground: oklch(0.704 0.04 256.788);
|
|
96
|
+
--accent: oklch(0.279 0.041 260.031);
|
|
97
|
+
--accent-foreground: oklch(0.984 0.003 247.858);
|
|
98
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
99
|
+
--border: oklch(1 0 0 / 10%);
|
|
100
|
+
--input: oklch(1 0 0 / 15%);
|
|
101
|
+
--ring: oklch(0.551 0.027 264.364);
|
|
102
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
103
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
104
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
105
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
106
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
107
|
+
--sidebar: oklch(0.208 0.042 265.755);
|
|
108
|
+
--sidebar-foreground: oklch(0.984 0.003 247.858);
|
|
109
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
110
|
+
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
111
|
+
--sidebar-accent: oklch(0.279 0.041 260.031);
|
|
112
|
+
--sidebar-accent-foreground: oklch(0.984 0.003 247.858);
|
|
113
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
114
|
+
--sidebar-ring: oklch(0.551 0.027 264.364);
|
|
115
|
+
}
|
package/src/lib/utils.ts
ADDED
package/src/main.tsx
ADDED
package/tsconfig.json
ADDED
package/vite.config.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { defineConfig } from "vite";
|
|
3
|
+
import react from "@vitejs/plugin-react";
|
|
4
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
plugins: [react(), tailwindcss()],
|
|
8
|
+
resolve: {
|
|
9
|
+
alias: {
|
|
10
|
+
"@": path.resolve(__dirname, "./src"),
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
server: {
|
|
14
|
+
port: 3738,
|
|
15
|
+
host: "0.0.0.0",
|
|
16
|
+
proxy: {
|
|
17
|
+
"/api": "http://localhost:3737",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
});
|