@exitvibing/hqui 0.1.0
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/README.md +45 -0
- package/dist/index.css +1 -0
- package/dist/index.d.mts +180 -0
- package/dist/index.d.ts +180 -0
- package/dist/index.js +1049 -0
- package/dist/index.mjs +988 -0
- package/docs/components.md +304 -0
- package/docs/design-system.md +85 -0
- package/docs/extended-components.md +201 -0
- package/docs/setup.md +146 -0
- package/package.json +33 -0
- package/src/components/Badge.tsx +40 -0
- package/src/components/Button.tsx +50 -0
- package/src/components/Card.tsx +72 -0
- package/src/components/Checkbox.tsx +47 -0
- package/src/components/HighlightText.tsx +24 -0
- package/src/components/Input.tsx +21 -0
- package/src/components/ProgressBar.tsx +64 -0
- package/src/components/Separator.tsx +25 -0
- package/src/components/Switch.tsx +43 -0
- package/src/components/Table.tsx +87 -0
- package/src/components/Tabs.tsx +122 -0
- package/src/components/ThemeToggle.tsx +40 -0
- package/src/components/Tooltip.tsx +120 -0
- package/src/components/extended/ArrowButton.tsx +28 -0
- package/src/components/extended/ChooseList.tsx +38 -0
- package/src/components/extended/Counter.tsx +74 -0
- package/src/components/extended/Popup.tsx +78 -0
- package/src/components/extended/StatusBar.tsx +45 -0
- package/src/components/extended/WeekViewCalendar.tsx +126 -0
- package/src/index.css +119 -0
- package/src/index.ts +25 -0
- package/src/lib/cn.ts +6 -0
- package/tailwind.config.ts +64 -0
- package/tsconfig.json +22 -0
package/src/index.css
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
@layer base {
|
|
6
|
+
/* Light mode (default) */
|
|
7
|
+
:root {
|
|
8
|
+
--background: 0 0% 100%;
|
|
9
|
+
--foreground: 240 10% 3.9%;
|
|
10
|
+
--card: 0 0% 100%;
|
|
11
|
+
--card-foreground: 240 10% 3.9%;
|
|
12
|
+
--popover: 0 0% 100%;
|
|
13
|
+
--popover-foreground: 240 10% 3.9%;
|
|
14
|
+
--primary: 240 5.9% 10%;
|
|
15
|
+
--primary-foreground: 0 0% 98%;
|
|
16
|
+
--secondary: 240 4.8% 95.9%;
|
|
17
|
+
--secondary-foreground: 240 5.9% 10%;
|
|
18
|
+
--muted: 240 4.8% 95.9%;
|
|
19
|
+
--muted-foreground: 240 3.8% 46.1%;
|
|
20
|
+
--accent: 240 4.8% 95.9%;
|
|
21
|
+
--accent-foreground: 240 5.9% 10%;
|
|
22
|
+
--destructive: 0 84.2% 60.2%;
|
|
23
|
+
--destructive-foreground: 0 0% 98%;
|
|
24
|
+
--border: 240 5.9% 90%;
|
|
25
|
+
--input: 240 5.9% 90%;
|
|
26
|
+
--ring: 240 5.9% 10%;
|
|
27
|
+
--radius: 0.5rem;
|
|
28
|
+
|
|
29
|
+
/* Named colors */
|
|
30
|
+
--purple: 258 90% 66%;
|
|
31
|
+
--orange: 24 95% 53%;
|
|
32
|
+
--blue: 217 91% 60%;
|
|
33
|
+
--green: 142 71% 45%;
|
|
34
|
+
--red: 0 84% 60%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Dark mode */
|
|
38
|
+
.dark {
|
|
39
|
+
--background: 240 10% 3.9%;
|
|
40
|
+
--foreground: 0 0% 98%;
|
|
41
|
+
--card: 240 10% 3.9%;
|
|
42
|
+
--card-foreground: 0 0% 98%;
|
|
43
|
+
--popover: 240 10% 3.9%;
|
|
44
|
+
--popover-foreground: 0 0% 98%;
|
|
45
|
+
--primary: 0 0% 98%;
|
|
46
|
+
--primary-foreground: 240 5.9% 10%;
|
|
47
|
+
--secondary: 240 3.7% 15.6%;
|
|
48
|
+
--secondary-foreground: 0 0% 98%;
|
|
49
|
+
--muted: 240 3.7% 15.6%;
|
|
50
|
+
--muted-foreground: 240 5% 64.9%;
|
|
51
|
+
--accent: 240 3.7% 15.6%;
|
|
52
|
+
--accent-foreground: 0 0% 98%;
|
|
53
|
+
--destructive: 0 62.8% 30.6%;
|
|
54
|
+
--destructive-foreground: 0 0% 98%;
|
|
55
|
+
--border: 240 3.7% 15.6%;
|
|
56
|
+
--input: 240 3.7% 15.6%;
|
|
57
|
+
--ring: 240 4.9% 83.9%;
|
|
58
|
+
--radius: 0.5rem;
|
|
59
|
+
|
|
60
|
+
/* Named colors */
|
|
61
|
+
--purple: 258 90% 66%;
|
|
62
|
+
--orange: 24 95% 53%;
|
|
63
|
+
--blue: 217 91% 60%;
|
|
64
|
+
--green: 142 71% 45%;
|
|
65
|
+
--red: 0 84% 60%;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@layer base {
|
|
70
|
+
* {
|
|
71
|
+
@apply border-border;
|
|
72
|
+
}
|
|
73
|
+
body {
|
|
74
|
+
@apply bg-background text-foreground antialiased;
|
|
75
|
+
}
|
|
76
|
+
::selection {
|
|
77
|
+
background: white;
|
|
78
|
+
color: black;
|
|
79
|
+
}
|
|
80
|
+
.dark ::selection {
|
|
81
|
+
background: white;
|
|
82
|
+
color: black;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Custom scrollbar */
|
|
87
|
+
.custom-scrollbar::-webkit-scrollbar {
|
|
88
|
+
width: 6px;
|
|
89
|
+
}
|
|
90
|
+
.custom-scrollbar::-webkit-scrollbar-track {
|
|
91
|
+
background: transparent;
|
|
92
|
+
}
|
|
93
|
+
.custom-scrollbar::-webkit-scrollbar-thumb {
|
|
94
|
+
background: rgba(255, 255, 255, 0.1);
|
|
95
|
+
border-radius: 3px;
|
|
96
|
+
}
|
|
97
|
+
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
|
|
98
|
+
background: rgba(255, 255, 255, 0.2);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Popup animations */
|
|
102
|
+
@keyframes popup-fade-in {
|
|
103
|
+
from {
|
|
104
|
+
opacity: 0;
|
|
105
|
+
}
|
|
106
|
+
to {
|
|
107
|
+
opacity: 1;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
@keyframes popup-scale-in {
|
|
111
|
+
from {
|
|
112
|
+
opacity: 0;
|
|
113
|
+
transform: scale(0.95);
|
|
114
|
+
}
|
|
115
|
+
to {
|
|
116
|
+
opacity: 1;
|
|
117
|
+
transform: scale(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Utilities
|
|
2
|
+
export { cn } from "./lib/cn";
|
|
3
|
+
|
|
4
|
+
// Core Components
|
|
5
|
+
export * from "./components/Button";
|
|
6
|
+
export * from "./components/Card";
|
|
7
|
+
export * from "./components/Input";
|
|
8
|
+
export * from "./components/Checkbox";
|
|
9
|
+
export * from "./components/ProgressBar";
|
|
10
|
+
export * from "./components/Table";
|
|
11
|
+
export * from "./components/HighlightText";
|
|
12
|
+
export * from "./components/Badge";
|
|
13
|
+
export * from "./components/Separator";
|
|
14
|
+
export * from "./components/Tabs";
|
|
15
|
+
export * from "./components/Switch";
|
|
16
|
+
export * from "./components/Tooltip";
|
|
17
|
+
export * from "./components/ThemeToggle";
|
|
18
|
+
|
|
19
|
+
// Extended Components
|
|
20
|
+
export * from "./components/extended/Counter";
|
|
21
|
+
export * from "./components/extended/ArrowButton";
|
|
22
|
+
export * from "./components/extended/ChooseList";
|
|
23
|
+
export * from "./components/extended/Popup";
|
|
24
|
+
export * from "./components/extended/StatusBar";
|
|
25
|
+
export * from "./components/extended/WeekViewCalendar";
|
package/src/lib/cn.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Config } from "tailwindcss";
|
|
2
|
+
|
|
3
|
+
const config: Config = {
|
|
4
|
+
darkMode: ["class"],
|
|
5
|
+
content: ["./src/**/*.{ts,tsx}"],
|
|
6
|
+
theme: {
|
|
7
|
+
extend: {
|
|
8
|
+
colors: {
|
|
9
|
+
background: "hsl(var(--background))",
|
|
10
|
+
foreground: "hsl(var(--foreground))",
|
|
11
|
+
primary: {
|
|
12
|
+
DEFAULT: "hsl(var(--primary))",
|
|
13
|
+
foreground: "hsl(var(--primary-foreground))",
|
|
14
|
+
},
|
|
15
|
+
secondary: {
|
|
16
|
+
DEFAULT: "hsl(var(--secondary))",
|
|
17
|
+
foreground: "hsl(var(--secondary-foreground))",
|
|
18
|
+
},
|
|
19
|
+
muted: {
|
|
20
|
+
DEFAULT: "hsl(var(--muted))",
|
|
21
|
+
foreground: "hsl(var(--muted-foreground))",
|
|
22
|
+
},
|
|
23
|
+
accent: {
|
|
24
|
+
DEFAULT: "hsl(var(--accent))",
|
|
25
|
+
foreground: "hsl(var(--accent-foreground))",
|
|
26
|
+
},
|
|
27
|
+
destructive: {
|
|
28
|
+
DEFAULT: "hsl(var(--destructive))",
|
|
29
|
+
foreground: "hsl(var(--destructive-foreground))",
|
|
30
|
+
},
|
|
31
|
+
border: "hsl(var(--border))",
|
|
32
|
+
input: "hsl(var(--input))",
|
|
33
|
+
ring: "hsl(var(--ring))",
|
|
34
|
+
card: {
|
|
35
|
+
DEFAULT: "hsl(var(--card))",
|
|
36
|
+
foreground: "hsl(var(--card-foreground))",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
borderRadius: {
|
|
40
|
+
lg: "var(--radius)",
|
|
41
|
+
md: "calc(var(--radius) - 2px)",
|
|
42
|
+
sm: "calc(var(--radius) - 4px)",
|
|
43
|
+
},
|
|
44
|
+
keyframes: {
|
|
45
|
+
"fade-in": {
|
|
46
|
+
from: { opacity: "0", transform: "translateY(10px)" },
|
|
47
|
+
to: { opacity: "1", transform: "translateY(0)" },
|
|
48
|
+
},
|
|
49
|
+
"bounce-in": {
|
|
50
|
+
"0%": { transform: "scale(0) rotate(-180deg)" },
|
|
51
|
+
"50%": { transform: "scale(1.1) rotate(0deg)" },
|
|
52
|
+
"100%": { transform: "scale(1) rotate(0deg)" },
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
animation: {
|
|
56
|
+
"fade-in": "fade-in 0.3s ease-out",
|
|
57
|
+
"bounce-in": "bounce-in 0.6s ease-out",
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
plugins: [],
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export default config;
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2022",
|
|
4
|
+
"module": "esnext",
|
|
5
|
+
"lib": ["es2022", "dom", "dom.iterable"],
|
|
6
|
+
"declaration": true,
|
|
7
|
+
"declarationMap": true,
|
|
8
|
+
"sourceMap": true,
|
|
9
|
+
"jsx": "react-jsx",
|
|
10
|
+
"strict": true,
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"allowImportingTsExtensions": true,
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"isolatedModules": true,
|
|
15
|
+
"noEmit": true,
|
|
16
|
+
"esModuleInterop": true,
|
|
17
|
+
"forceConsistentCasingInFileNames": true,
|
|
18
|
+
"skipLibCheck": true
|
|
19
|
+
},
|
|
20
|
+
"include": ["src"],
|
|
21
|
+
"exclude": ["node_modules", "dist"]
|
|
22
|
+
}
|