gladvn 0.2.36 → 0.2.37

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 (134) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/scripts/strip-comments.ts +79 -0
  4. package/src/blocks/auth-form.tsx +34 -30
  5. package/src/blocks/auth-recovery.tsx +9 -13
  6. package/src/blocks/auth-split.tsx +46 -36
  7. package/src/blocks/settings.tsx +84 -117
  8. package/src/components/macro/alert-preset.tsx +3 -1
  9. package/src/components/macro/carousel-preset.tsx +0 -1
  10. package/src/components/macro/checkbox-preset.test.tsx +2 -2
  11. package/src/components/macro/checkbox-preset.tsx +1 -2
  12. package/src/components/macro/command-preset.tsx +1 -1
  13. package/src/components/macro/date-picker.tsx +5 -18
  14. package/src/components/macro/dialog-preset.tsx +5 -3
  15. package/src/components/macro/input-preset.tsx +0 -1
  16. package/src/components/macro/select-preset.tsx +1 -1
  17. package/src/components/macro/switch-preset.test.tsx +1 -1
  18. package/src/components/micro/accordion.test.tsx +6 -12
  19. package/src/components/micro/alert-dialog.tsx +0 -2
  20. package/src/components/micro/alert.test.tsx +5 -8
  21. package/src/components/micro/alert.tsx +0 -2
  22. package/src/components/micro/badge.test.tsx +5 -7
  23. package/src/components/micro/badge.tsx +1 -3
  24. package/src/components/micro/button.test.tsx +19 -26
  25. package/src/components/micro/button.tsx +3 -11
  26. package/src/components/micro/calendar.tsx +12 -13
  27. package/src/components/micro/card.test.tsx +3 -5
  28. package/src/components/micro/carousel.tsx +0 -1
  29. package/src/components/micro/chart.tsx +3 -2
  30. package/src/components/micro/checkbox.test.tsx +9 -18
  31. package/src/components/micro/combobox.tsx +1 -3
  32. package/src/components/micro/command.tsx +23 -11
  33. package/src/components/micro/context-menu.tsx +0 -2
  34. package/src/components/micro/dialog.test.tsx +6 -14
  35. package/src/components/micro/dialog.tsx +0 -2
  36. package/src/components/micro/drawer.tsx +0 -3
  37. package/src/components/micro/dropdown-menu.test.tsx +8 -14
  38. package/src/components/micro/dropdown-menu.tsx +0 -2
  39. package/src/components/micro/field.tsx +3 -3
  40. package/src/components/micro/hover-card.tsx +0 -2
  41. package/src/components/micro/input-group.tsx +9 -42
  42. package/src/components/micro/input.test.tsx +15 -24
  43. package/src/components/micro/navigation-menu.tsx +0 -2
  44. package/src/components/micro/popover.test.tsx +5 -9
  45. package/src/components/micro/progress.tsx +5 -1
  46. package/src/components/micro/select.test.tsx +5 -18
  47. package/src/components/micro/select.tsx +3 -5
  48. package/src/components/micro/separator.tsx +1 -1
  49. package/src/components/micro/sheet.test.tsx +6 -14
  50. package/src/components/micro/sheet.tsx +0 -2
  51. package/src/components/micro/sidebar.tsx +5 -6
  52. package/src/components/micro/sonner.tsx +0 -1
  53. package/src/components/micro/switch.test.tsx +9 -18
  54. package/src/components/micro/switch.tsx +1 -1
  55. package/src/components/micro/tabs.test.tsx +5 -11
  56. package/src/components/micro/theme-provider.tsx +0 -12
  57. package/src/components/micro/toggle-group.tsx +1 -12
  58. package/src/components/micro/tooltip.test.tsx +7 -12
  59. package/src/dev/App.tsx +6 -6
  60. package/src/dev/components/BlockViewer.tsx +15 -4
  61. package/src/dev/components/Container.tsx +20 -0
  62. package/src/dev/components/GladvnLogo.tsx +3 -9
  63. package/src/dev/components/code-highlighter.tsx +5 -3
  64. package/src/dev/components/showcase.tsx +116 -168
  65. package/src/dev/sections/buttons.tsx +4 -9
  66. package/src/dev/sections/display.tsx +68 -72
  67. package/src/dev/sections/feedback.tsx +304 -314
  68. package/src/dev/sections/forms.tsx +10 -14
  69. package/src/dev/sections/interactive.tsx +32 -32
  70. package/src/dev/sections/overview.tsx +2 -10
  71. package/src/dev/showcase/accordion.tsx +512 -554
  72. package/src/dev/showcase/alert-dialog.tsx +525 -565
  73. package/src/dev/showcase/alert.tsx +352 -402
  74. package/src/dev/showcase/aspect-ratio.tsx +167 -193
  75. package/src/dev/showcase/avatar.tsx +231 -269
  76. package/src/dev/showcase/badge.tsx +92 -140
  77. package/src/dev/showcase/breadcrumb.tsx +113 -135
  78. package/src/dev/showcase/button.tsx +140 -173
  79. package/src/dev/showcase/calendar.tsx +187 -237
  80. package/src/dev/showcase/card.tsx +229 -261
  81. package/src/dev/showcase/carousel.tsx +288 -315
  82. package/src/dev/showcase/chart.tsx +44 -50
  83. package/src/dev/showcase/checkbox.tsx +286 -330
  84. package/src/dev/showcase/collapsible.tsx +143 -160
  85. package/src/dev/showcase/combobox.tsx +327 -369
  86. package/src/dev/showcase/command.tsx +106 -120
  87. package/src/dev/showcase/context-menu.tsx +93 -107
  88. package/src/dev/showcase/dialog.tsx +585 -630
  89. package/src/dev/showcase/drawer.tsx +176 -196
  90. package/src/dev/showcase/dropdown-menu.tsx +183 -201
  91. package/src/dev/showcase/empty.tsx +232 -274
  92. package/src/dev/showcase/hover-card.tsx +153 -180
  93. package/src/dev/showcase/input-group.tsx +221 -253
  94. package/src/dev/showcase/input-otp.tsx +204 -250
  95. package/src/dev/showcase/input.tsx +246 -325
  96. package/src/dev/showcase/item.tsx +134 -152
  97. package/src/dev/showcase/kbd.tsx +149 -172
  98. package/src/dev/showcase/label.tsx +50 -68
  99. package/src/dev/showcase/menubar.tsx +194 -213
  100. package/src/dev/showcase/navigation-menu.tsx +119 -133
  101. package/src/dev/showcase/overview-components/ArchitectureSection.tsx +126 -0
  102. package/src/dev/showcase/overview-components/CodeBlock.tsx +50 -0
  103. package/src/dev/showcase/overview-components/ColorPaletteSection.tsx +44 -0
  104. package/src/dev/showcase/overview-components/DashboardPreview.tsx +159 -0
  105. package/src/dev/showcase/overview-components/FeatureGridSection.tsx +535 -0
  106. package/src/dev/showcase/overview-components/FooterCTA.tsx +137 -0
  107. package/src/dev/showcase/overview-components/HeroSection.tsx +65 -0
  108. package/src/dev/showcase/overview-components/PrinciplesSection.tsx +128 -0
  109. package/src/dev/showcase/overview.tsx +21 -1163
  110. package/src/dev/showcase/pagination.tsx +144 -190
  111. package/src/dev/showcase/popover.tsx +181 -196
  112. package/src/dev/showcase/progress.tsx +141 -189
  113. package/src/dev/showcase/radio-group.tsx +272 -332
  114. package/src/dev/showcase/resizable.tsx +119 -141
  115. package/src/dev/showcase/scroll-area.tsx +21 -36
  116. package/src/dev/showcase/select.tsx +262 -322
  117. package/src/dev/showcase/separator.tsx +75 -73
  118. package/src/dev/showcase/sheet.tsx +333 -361
  119. package/src/dev/showcase/sidebar.tsx +53 -59
  120. package/src/dev/showcase/skeleton.tsx +93 -112
  121. package/src/dev/showcase/slider.tsx +244 -296
  122. package/src/dev/showcase/sonner.tsx +251 -258
  123. package/src/dev/showcase/spinner.tsx +46 -67
  124. package/src/dev/showcase/switch.tsx +298 -362
  125. package/src/dev/showcase/table.tsx +76 -80
  126. package/src/dev/showcase/tabs.tsx +302 -355
  127. package/src/dev/showcase/textarea.tsx +240 -293
  128. package/src/dev/showcase/toast.tsx +48 -54
  129. package/src/dev/showcase/toggle-group.tsx +104 -129
  130. package/src/dev/showcase/toggle.tsx +82 -102
  131. package/src/dev/showcase/tooltip.tsx +173 -192
  132. package/src/dev/showcase/why.tsx +6 -12
  133. package/src/hooks/use-mobile.test.ts +3 -2
  134. package/src/lib/utils.test.ts +5 -4
@@ -0,0 +1,159 @@
1
+ import React, { useState, useEffect } from "react";
2
+ import { LayersIcon, DatabaseIcon, ShieldCheckIcon } from "lucide-react";
3
+
4
+ import { ProgressPreset as Progress } from "../../../components/macro/progress-preset";
5
+ import {
6
+ Card,
7
+ CardContent,
8
+ CardHeader,
9
+ CardTitle
10
+ } from "../../../components/micro/card";
11
+ import { Label } from "../../../components/micro/label";
12
+ import {
13
+ Select,
14
+ SelectContent,
15
+ SelectItem,
16
+ SelectTrigger,
17
+ SelectValue
18
+ } from "../../../components/micro/select";
19
+ import { Switch } from "../../../components/micro/switch";
20
+ import { cn } from "../../../lib/utils";
21
+
22
+ export function DashboardPreview({ className }: { className?: string }) {
23
+ const [mounted, setMounted] = useState(false);
24
+
25
+ useEffect(() => {
26
+ setMounted(true);
27
+ }, []);
28
+
29
+ return (
30
+ <div
31
+ className={cn("mt-20 relative max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 animate-fade-up", className)}
32
+ style={{ animationDelay: "500ms", animationFillMode: "both" }}
33
+ >
34
+ <div className="absolute inset-0 bg-gradient-to-t from-background via-transparent to-transparent z-20 pointer-events-none h-full w-full" />
35
+
36
+ <div className="relative rounded-2xl border border-border bg-card/40 backdrop-blur-2xl shadow-2xl overflow-hidden [transform:perspective(1200px)_rotateX(5deg)] [transform-origin:top_center] hover:[transform:perspective(1200px)_rotateX(0deg)] transition-transform duration-700 ease-out">
37
+ <div className="h-12 bg-muted/30 border-b border-b-border flex items-center px-4 gap-2">
38
+ <div className="flex gap-2">
39
+ <div className="size-3.5 rounded-full bg-destructive/80 shadow-sm" />
40
+ <div className="size-3.5 rounded-full bg-warning/80 shadow-sm" />
41
+ <div className="size-3.5 rounded-full bg-success/80 shadow-sm" />
42
+ </div>
43
+ </div>
44
+
45
+ <div className="p-8 grid grid-cols-1 md:grid-cols-3 gap-8 relative">
46
+ <div className="space-y-6 md:col-span-1 z-10">
47
+ <Card className="bg-background/80 shadow-lg border-border/50 backdrop-blur-xl group hover:border-primary/50 transition-colors">
48
+ <CardHeader className="pb-3">
49
+ <CardTitle className="text-sm font-medium flex items-center gap-2">
50
+ <div className="size-2 rounded-full bg-success animate-pulse shadow-[0_0_8px_var(--success)]" />
51
+ Hệ thống Thời gian thực
52
+ </CardTitle>
53
+ </CardHeader>
54
+ <CardContent>
55
+ <div className="space-y-5">
56
+ <div className="space-y-2">
57
+ <div className="flex justify-between text-xs font-medium">
58
+ <span className="text-muted-foreground">Tải CPU</span>
59
+ <span className="text-primary font-mono">
60
+ {mounted ? "24%" : "0%"}
61
+ </span>
62
+ </div>
63
+ <Progress value={mounted ? 24 : 0} className="h-1.5" />
64
+ </div>
65
+ <div className="space-y-2">
66
+ <div className="flex justify-between text-xs font-medium">
67
+ <span className="text-muted-foreground">Bộ nhớ</span>
68
+ <span className="text-warning font-mono">
69
+ {mounted ? "82%" : "0%"}
70
+ </span>
71
+ </div>
72
+ <Progress
73
+ value={mounted ? 82 : 0}
74
+ color="warning"
75
+ className="h-1.5"
76
+ />
77
+ </div>
78
+ </div>
79
+ </CardContent>
80
+ </Card>
81
+
82
+ <div className="flex flex-col gap-4 p-5 rounded-xl border border-border/50 bg-background/60 backdrop-blur-xl shadow-lg">
83
+ <div className="flex items-center justify-between">
84
+ <Label className="text-sm font-medium cursor-pointer">
85
+ Auto-scaling
86
+ </Label>
87
+ <Switch defaultChecked />
88
+ </div>
89
+ <Select defaultValue="edge">
90
+ <SelectTrigger className="w-full bg-background/50">
91
+ <SelectValue placeholder="Chọn vùng" />
92
+ </SelectTrigger>
93
+
94
+ <SelectContent>
95
+ <SelectItem value="edge">
96
+ Edge Network (Toàn cầu)
97
+ </SelectItem>
98
+ <SelectItem value="us-east">
99
+ US East (Virginia)
100
+ </SelectItem>
101
+ <SelectItem value="ap-se">
102
+ AP South East (Sing)
103
+ </SelectItem>
104
+ </SelectContent>
105
+
106
+ </Select>
107
+ </div>
108
+ </div>
109
+
110
+ <div className="md:col-span-2 rounded-xl border border-border/50 bg-muted/20 p-6 flex items-center justify-center relative overflow-hidden group/canvas">
111
+ <div className="absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(var(--primary-rgb),0.1)_0,transparent_100%)] opacity-0 group-hover/canvas:opacity-100 transition-opacity duration-700" />
112
+
113
+ <div className="relative z-10 w-full max-w-md space-y-4 perspective-1000">
114
+ <div className="flex items-center gap-4 p-5 rounded-xl bg-background shadow-xl border border-border/50 transform group-hover/canvas:-translate-y-2 group-hover/canvas:rotate-1 transition-all duration-500 delay-75">
115
+ <div className="p-3 bg-primary/10 rounded-lg text-primary shadow-inner">
116
+ <LayersIcon className="size-6" />
117
+ </div>
118
+ <div>
119
+ <h4 className="font-bold text-sm">
120
+ Kiến trúc Micro/Macro
121
+ </h4>
122
+ <p className="text-xs text-muted-foreground font-medium mt-1">
123
+ Primitive nhỏ, lắp thành preset lớn
124
+ </p>
125
+ </div>
126
+ </div>
127
+
128
+ <div className="flex items-center gap-4 p-5 rounded-xl bg-background shadow-xl border border-border/50 transform group-hover/canvas:translate-x-2 group-hover/canvas:-rotate-1 transition-all duration-500 delay-150">
129
+ <div className="p-3 bg-info/10 rounded-lg text-info shadow-inner">
130
+ <DatabaseIcon className="size-6" />
131
+ </div>
132
+ <div>
133
+ <h4 className="font-bold text-sm">
134
+ Thiết kế theo Dữ liệu
135
+ </h4>
136
+ <p className="text-xs text-muted-foreground font-medium mt-1">
137
+ Truyền items vào root, không map() thủ công
138
+ </p>
139
+ </div>
140
+ </div>
141
+
142
+ <div className="flex items-center gap-4 p-5 rounded-xl bg-background shadow-xl border border-border/50 transform group-hover/canvas:-translate-y-1 transition-all duration-500 delay-200">
143
+ <div className="p-3 bg-success/10 rounded-lg text-success shadow-inner">
144
+ <ShieldCheckIcon className="size-6" />
145
+ </div>
146
+ <div>
147
+ <h4 className="font-bold text-sm">Styling có Kỷ luật</h4>
148
+ <p className="text-xs text-muted-foreground font-medium mt-1">
149
+ Nói không với Magic CSS
150
+ </p>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ );
159
+ }