gladvn 0.2.17 → 0.2.19
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/bin/cli.js +9 -6
- package/dist/components/macro/accordion-preset.d.ts.map +1 -1
- package/dist/components/macro/alert-dialog-preset.d.ts.map +1 -1
- package/dist/components/macro/alert-preset.d.ts.map +1 -1
- package/dist/components/macro/avatar-preset.d.ts.map +1 -1
- package/dist/components/macro/breadcrumb-preset.d.ts.map +1 -1
- package/dist/components/macro/card-preset.d.ts.map +1 -1
- package/dist/components/macro/carousel-preset.d.ts.map +1 -1
- package/dist/components/macro/checkbox-preset.d.ts.map +1 -1
- package/dist/components/macro/combobox-preset.d.ts.map +1 -1
- package/dist/components/macro/command-preset.d.ts +1 -1
- package/dist/components/macro/command-preset.d.ts.map +1 -1
- package/dist/components/macro/date-picker.d.ts.map +1 -1
- package/dist/components/macro/dialog-preset.d.ts.map +1 -1
- package/dist/components/macro/empty-preset.d.ts.map +1 -1
- package/dist/components/macro/field-preset.d.ts.map +1 -1
- package/dist/components/macro/input-otp-preset.d.ts +6 -0
- package/dist/components/macro/input-otp-preset.d.ts.map +1 -1
- package/dist/components/macro/input-preset.d.ts +1 -1
- package/dist/components/macro/input-preset.d.ts.map +1 -1
- package/dist/components/macro/pagination-preset.d.ts.map +1 -1
- package/dist/components/macro/progress-preset.d.ts.map +1 -1
- package/dist/components/macro/radio-group-preset.d.ts.map +1 -1
- package/dist/components/macro/select-preset.d.ts.map +1 -1
- package/dist/components/macro/slider-preset.d.ts.map +1 -1
- package/dist/components/macro/switch-preset.d.ts.map +1 -1
- package/dist/components/macro/tabs-preset.d.ts +1 -1
- package/dist/components/macro/tabs-preset.d.ts.map +1 -1
- package/dist/components/macro/textarea-preset.d.ts +1 -1
- package/dist/components/macro/textarea-preset.d.ts.map +1 -1
- package/dist/components/micro/accordion.d.ts +7 -0
- package/dist/components/micro/accordion.d.ts.map +1 -1
- package/dist/components/micro/alert-dialog.d.ts.map +1 -1
- package/dist/components/micro/alert.d.ts +7 -0
- package/dist/components/micro/alert.d.ts.map +1 -1
- package/dist/components/micro/aspect-ratio.d.ts +7 -0
- package/dist/components/micro/aspect-ratio.d.ts.map +1 -1
- package/dist/components/micro/avatar.d.ts.map +1 -1
- package/dist/components/micro/badge.d.ts +8 -1
- package/dist/components/micro/badge.d.ts.map +1 -1
- package/dist/components/micro/breadcrumb.d.ts +7 -0
- package/dist/components/micro/breadcrumb.d.ts.map +1 -1
- package/dist/components/micro/button.d.ts +8 -1
- package/dist/components/micro/button.d.ts.map +1 -1
- package/dist/components/micro/calendar.d.ts +2 -2
- package/dist/components/micro/calendar.d.ts.map +1 -1
- package/dist/components/micro/carousel.d.ts.map +1 -1
- package/dist/components/micro/chart.d.ts.map +1 -1
- package/dist/components/micro/checkbox.d.ts.map +1 -1
- package/dist/components/micro/collapsible.d.ts.map +1 -1
- package/dist/components/micro/combobox.d.ts.map +1 -1
- package/dist/components/micro/command.d.ts.map +1 -1
- package/dist/components/micro/context-menu.d.ts.map +1 -1
- package/dist/components/micro/dialog.d.ts.map +1 -1
- package/dist/components/micro/drawer.d.ts.map +1 -1
- package/dist/components/micro/dropdown-menu.d.ts.map +1 -1
- package/dist/components/micro/empty.d.ts +7 -0
- package/dist/components/micro/empty.d.ts.map +1 -1
- package/dist/components/micro/field.d.ts.map +1 -1
- package/dist/components/micro/hover-card.d.ts +1 -1
- package/dist/components/micro/hover-card.d.ts.map +1 -1
- package/dist/components/micro/input-group.d.ts.map +1 -1
- package/dist/components/micro/input-otp.d.ts.map +1 -1
- package/dist/components/micro/input.d.ts +7 -0
- package/dist/components/micro/input.d.ts.map +1 -1
- package/dist/components/micro/item.d.ts.map +1 -1
- package/dist/components/micro/label.d.ts.map +1 -1
- package/dist/components/micro/menubar.d.ts.map +1 -1
- package/dist/components/micro/navigation-menu.d.ts +8 -1
- package/dist/components/micro/navigation-menu.d.ts.map +1 -1
- package/dist/components/micro/pagination.d.ts.map +1 -1
- package/dist/components/micro/popover.d.ts.map +1 -1
- package/dist/components/micro/progress.d.ts.map +1 -1
- package/dist/components/micro/radio-group.d.ts.map +1 -1
- package/dist/components/micro/select.d.ts +1 -1
- package/dist/components/micro/select.d.ts.map +1 -1
- package/dist/components/micro/sheet.d.ts.map +1 -1
- package/dist/components/micro/sidebar.d.ts.map +1 -1
- package/dist/components/micro/skeleton.d.ts +7 -0
- package/dist/components/micro/skeleton.d.ts.map +1 -1
- package/dist/components/micro/slider.d.ts +7 -0
- package/dist/components/micro/slider.d.ts.map +1 -1
- package/dist/components/micro/sonner.d.ts.map +1 -1
- package/dist/components/micro/spinner.d.ts.map +1 -1
- package/dist/components/micro/switch.d.ts.map +1 -1
- package/dist/components/micro/table.d.ts.map +1 -1
- package/dist/components/micro/tabs.d.ts +1 -1
- package/dist/components/micro/tabs.d.ts.map +1 -1
- package/dist/components/micro/textarea.d.ts +7 -0
- package/dist/components/micro/textarea.d.ts.map +1 -1
- package/dist/components/micro/toggle-group.d.ts.map +1 -1
- package/dist/components/micro/toggle.d.ts.map +1 -1
- package/dist/components/micro/tooltip.d.ts +1 -1
- package/dist/components/micro/tooltip.d.ts.map +1 -1
- package/dist/dev/App.d.ts.map +1 -1
- package/dist/dev/components/code-highlighter.d.ts.map +1 -1
- package/dist/dev/components/dev-context.d.ts.map +1 -1
- package/dist/dev/components/showcase.d.ts +1 -1
- package/dist/dev/components/showcase.d.ts.map +1 -1
- package/dist/dev/data.d.ts.map +1 -1
- package/dist/dev/main.d.ts.map +1 -1
- package/dist/dev/sections/buttons.d.ts.map +1 -1
- package/dist/dev/sections/feedback.d.ts.map +1 -1
- package/dist/dev/sections/overview.d.ts.map +1 -1
- package/dist/dev/showcase/accordion.d.ts.map +1 -1
- package/dist/dev/showcase/alert-dialog.d.ts.map +1 -1
- package/dist/dev/showcase/alert.d.ts.map +1 -1
- package/dist/dev/showcase/aspect-ratio.d.ts.map +1 -1
- package/dist/dev/showcase/avatar.d.ts.map +1 -1
- package/dist/dev/showcase/breadcrumb.d.ts.map +1 -1
- package/dist/dev/showcase/button.d.ts.map +1 -1
- package/dist/dev/showcase/calendar.d.ts.map +1 -1
- package/dist/dev/showcase/card.d.ts.map +1 -1
- package/dist/dev/showcase/carousel.d.ts.map +1 -1
- package/dist/dev/showcase/chart.d.ts.map +1 -1
- package/dist/dev/showcase/checkbox.d.ts.map +1 -1
- package/dist/dev/showcase/collapsible.d.ts.map +1 -1
- package/dist/dev/showcase/combobox.d.ts.map +1 -1
- package/dist/dev/showcase/command.d.ts.map +1 -1
- package/dist/dev/showcase/context-menu.d.ts.map +1 -1
- package/dist/dev/showcase/dialog.d.ts.map +1 -1
- package/dist/dev/showcase/drawer.d.ts.map +1 -1
- package/dist/dev/showcase/dropdown-menu.d.ts.map +1 -1
- package/dist/dev/showcase/empty.d.ts.map +1 -1
- package/dist/dev/showcase/hover-card.d.ts.map +1 -1
- package/dist/dev/showcase/input-group.d.ts.map +1 -1
- package/dist/dev/showcase/input-otp.d.ts.map +1 -1
- package/dist/dev/showcase/input.d.ts.map +1 -1
- package/dist/dev/showcase/item.d.ts.map +1 -1
- package/dist/dev/showcase/kbd.d.ts.map +1 -1
- package/dist/dev/showcase/label.d.ts.map +1 -1
- package/dist/dev/showcase/menubar.d.ts.map +1 -1
- package/dist/dev/showcase/navigation-menu.d.ts.map +1 -1
- package/dist/dev/showcase/overview.d.ts.map +1 -1
- package/dist/dev/showcase/pagination.d.ts.map +1 -1
- package/dist/dev/showcase/popover.d.ts.map +1 -1
- package/dist/dev/showcase/progress.d.ts.map +1 -1
- package/dist/dev/showcase/radio-group.d.ts.map +1 -1
- package/dist/dev/showcase/resizable.d.ts.map +1 -1
- package/dist/dev/showcase/scroll-area.d.ts.map +1 -1
- package/dist/dev/showcase/select.d.ts.map +1 -1
- package/dist/dev/showcase/separator.d.ts.map +1 -1
- package/dist/dev/showcase/sheet.d.ts.map +1 -1
- package/dist/dev/showcase/sidebar.d.ts.map +1 -1
- package/dist/dev/showcase/skeleton.d.ts.map +1 -1
- package/dist/dev/showcase/slider.d.ts.map +1 -1
- package/dist/dev/showcase/sonner.d.ts.map +1 -1
- package/dist/dev/showcase/spinner.d.ts.map +1 -1
- package/dist/dev/showcase/switch.d.ts.map +1 -1
- package/dist/dev/showcase/table.d.ts.map +1 -1
- package/dist/dev/showcase/tabs.d.ts.map +1 -1
- package/dist/dev/showcase/textarea.d.ts.map +1 -1
- package/dist/dev/showcase/theme-provider.d.ts.map +1 -1
- package/dist/dev/showcase/toast.d.ts.map +1 -1
- package/dist/dev/showcase/toggle-group.d.ts.map +1 -1
- package/dist/dev/showcase/toggle.d.ts.map +1 -1
- package/dist/dev/showcase/tooltip.d.ts.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/package.json +3 -1
- package/scripts/format-codestrings.ts +87 -0
- package/scripts/organize-imports.ts +21 -0
- package/scripts/regex-format.cjs +67 -0
- package/scripts/tmp.tsx +25 -0
- package/src/components/macro/accordion-preset.test.tsx +1 -0
- package/src/components/macro/accordion-preset.tsx +2 -1
- package/src/components/macro/alert-dialog-preset.tsx +44 -43
- package/src/components/macro/alert-preset.tsx +7 -3
- package/src/components/macro/avatar-preset.tsx +2 -1
- package/src/components/macro/breadcrumb-preset.tsx +2 -1
- package/src/components/macro/card-preset.tsx +2 -1
- package/src/components/macro/carousel-preset.tsx +5 -2
- package/src/components/macro/checkbox-preset.test.tsx +1 -0
- package/src/components/macro/checkbox-preset.tsx +6 -2
- package/src/components/macro/combobox-preset.tsx +6 -3
- package/src/components/macro/command-preset.tsx +7 -3
- package/src/components/macro/date-picker.tsx +77 -59
- package/src/components/macro/dialog-preset.tsx +42 -38
- package/src/components/macro/empty-preset.tsx +2 -1
- package/src/components/macro/field-preset.test.tsx +1 -0
- package/src/components/macro/field-preset.tsx +2 -1
- package/src/components/macro/input-otp-preset.tsx +6 -2
- package/src/components/macro/input-preset.test.tsx +1 -0
- package/src/components/macro/input-preset.tsx +4 -2
- package/src/components/macro/pagination-preset.tsx +3 -1
- package/src/components/macro/progress-preset.test.tsx +1 -0
- package/src/components/macro/progress-preset.tsx +2 -1
- package/src/components/macro/radio-group-preset.tsx +4 -1
- package/src/components/macro/select-preset.tsx +35 -30
- package/src/components/macro/slider-preset.test.tsx +1 -0
- package/src/components/macro/slider-preset.tsx +4 -1
- package/src/components/macro/switch-preset.test.tsx +1 -0
- package/src/components/macro/switch-preset.tsx +4 -1
- package/src/components/macro/tabs-preset.test.tsx +1 -0
- package/src/components/macro/tabs-preset.tsx +4 -2
- package/src/components/macro/textarea-preset.test.tsx +1 -0
- package/src/components/macro/textarea-preset.tsx +4 -1
- package/src/components/micro/accordion.tsx +3 -2
- package/src/components/micro/alert-dialog.tsx +2 -1
- package/src/components/micro/alert.tsx +3 -2
- package/src/components/micro/aspect-ratio.tsx +2 -1
- package/src/components/micro/avatar.tsx +2 -1
- package/src/components/micro/badge.tsx +3 -3
- package/src/components/micro/breadcrumb.tsx +3 -2
- package/src/components/micro/button.test.tsx +1 -0
- package/src/components/micro/button.tsx +3 -3
- package/src/components/micro/calendar.tsx +10 -9
- package/src/components/micro/carousel.tsx +3 -2
- package/src/components/micro/chart.tsx +1 -0
- package/src/components/micro/checkbox.tsx +2 -2
- package/src/components/micro/collapsible.tsx +4 -2
- package/src/components/micro/combobox.tsx +41 -29
- package/src/components/micro/command.tsx +23 -16
- package/src/components/micro/context-menu.tsx +3 -2
- package/src/components/micro/dialog.tsx +2 -1
- package/src/components/micro/drawer.tsx +2 -1
- package/src/components/micro/dropdown-menu.tsx +3 -2
- package/src/components/micro/empty.tsx +2 -1
- package/src/components/micro/field.tsx +4 -3
- package/src/components/micro/hover-card.tsx +20 -19
- package/src/components/micro/input-group.tsx +2 -1
- package/src/components/micro/input-otp.tsx +3 -2
- package/src/components/micro/input.tsx +3 -2
- package/src/components/micro/item.tsx +1 -0
- package/src/components/micro/label.tsx +2 -1
- package/src/components/micro/menubar.tsx +2 -1
- package/src/components/micro/navigation-menu.tsx +18 -17
- package/src/components/micro/pagination.tsx +2 -1
- package/src/components/micro/popover.tsx +2 -1
- package/src/components/micro/progress.tsx +2 -1
- package/src/components/micro/radio-group.tsx +3 -3
- package/src/components/micro/select.tsx +5 -4
- package/src/components/micro/sheet.tsx +2 -1
- package/src/components/micro/sidebar.tsx +4 -1
- package/src/components/micro/skeleton.tsx +2 -1
- package/src/components/micro/slider.tsx +4 -1
- package/src/components/micro/sonner.tsx +2 -1
- package/src/components/micro/spinner.tsx +1 -2
- package/src/components/micro/switch.tsx +2 -2
- package/src/components/micro/table.tsx +2 -1
- package/src/components/micro/tabs.tsx +4 -3
- package/src/components/micro/textarea.tsx +2 -1
- package/src/components/micro/toggle-group.tsx +1 -0
- package/src/components/micro/toggle.tsx +1 -3
- package/src/components/micro/tooltip.tsx +9 -3
- package/src/dev/App.tsx +66 -41
- package/src/dev/components/code-highlighter.tsx +2 -1
- package/src/dev/components/dev-context.tsx +1 -0
- package/src/dev/components/showcase.tsx +13 -14
- package/src/dev/data.ts +206 -52
- package/src/dev/main.tsx +4 -4
- package/src/dev/sections/buttons.tsx +14 -12
- package/src/dev/sections/feedback.tsx +7 -2
- package/src/dev/sections/forms.tsx +11 -11
- package/src/dev/sections/overview.tsx +2 -1
- package/src/dev/showcase/accordion.tsx +399 -314
- package/src/dev/showcase/alert-dialog.tsx +387 -384
- package/src/dev/showcase/alert.tsx +271 -258
- package/src/dev/showcase/aspect-ratio.tsx +102 -105
- package/src/dev/showcase/avatar.tsx +216 -145
- package/src/dev/showcase/badge.tsx +78 -50
- package/src/dev/showcase/breadcrumb.tsx +88 -85
- package/src/dev/showcase/button.tsx +72 -96
- package/src/dev/showcase/calendar.tsx +41 -39
- package/src/dev/showcase/card.tsx +170 -148
- package/src/dev/showcase/carousel.tsx +239 -77
- package/src/dev/showcase/chart.tsx +5 -4
- package/src/dev/showcase/checkbox.tsx +206 -140
- package/src/dev/showcase/collapsible.tsx +108 -84
- package/src/dev/showcase/combobox.tsx +272 -199
- package/src/dev/showcase/command.tsx +31 -28
- package/src/dev/showcase/context-menu.tsx +94 -77
- package/src/dev/showcase/dialog.tsx +445 -424
- package/src/dev/showcase/drawer.tsx +142 -135
- package/src/dev/showcase/dropdown-menu.tsx +165 -161
- package/src/dev/showcase/empty.tsx +173 -158
- package/src/dev/showcase/hover-card.tsx +92 -52
- package/src/dev/showcase/input-group.tsx +193 -160
- package/src/dev/showcase/input-otp.tsx +109 -99
- package/src/dev/showcase/input.tsx +78 -42
- package/src/dev/showcase/item.tsx +101 -98
- package/src/dev/showcase/kbd.tsx +78 -62
- package/src/dev/showcase/label.tsx +16 -23
- package/src/dev/showcase/menubar.tsx +274 -251
- package/src/dev/showcase/navigation-menu.tsx +175 -170
- package/src/dev/showcase/overview.tsx +164 -148
- package/src/dev/showcase/pagination.tsx +101 -69
- package/src/dev/showcase/popover.tsx +113 -86
- package/src/dev/showcase/progress.tsx +99 -69
- package/src/dev/showcase/radio-group.tsx +217 -134
- package/src/dev/showcase/resizable.tsx +65 -55
- package/src/dev/showcase/scroll-area.tsx +32 -22
- package/src/dev/showcase/select.tsx +192 -136
- package/src/dev/showcase/separator.tsx +28 -24
- package/src/dev/showcase/sheet.tsx +182 -134
- package/src/dev/showcase/sidebar.tsx +9 -5
- package/src/dev/showcase/skeleton.tsx +54 -59
- package/src/dev/showcase/slider.tsx +158 -129
- package/src/dev/showcase/sonner.tsx +3 -5
- package/src/dev/showcase/spinner.tsx +22 -18
- package/src/dev/showcase/switch.tsx +207 -110
- package/src/dev/showcase/table.tsx +44 -32
- package/src/dev/showcase/tabs.tsx +272 -267
- package/src/dev/showcase/textarea.tsx +162 -116
- package/src/dev/showcase/theme-provider.tsx +596 -534
- package/src/dev/showcase/toast.tsx +37 -38
- package/src/dev/showcase/toggle-group.tsx +87 -39
- package/src/dev/showcase/toggle.tsx +36 -27
- package/src/dev/showcase/tooltip.tsx +154 -119
- package/src/lib/utils.test.ts +1 -0
- package/src/lib/utils.ts +1 -1
- package/src/styles/gladvn.css +0 -1
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
import { useDevContext } from "../../dev/components/dev-context";
|
|
2
|
-
import {
|
|
3
|
-
DocsP,
|
|
4
|
-
ExampleGrid,
|
|
5
|
-
ExampleSection,
|
|
6
|
-
Showcase,
|
|
7
|
-
ShowcaseDocs,
|
|
8
|
-
} from "../../dev/components/showcase";
|
|
9
|
-
import { useState } from "react";
|
|
10
|
-
|
|
11
1
|
import { CardPreset } from "../../components/macro/card-preset";
|
|
12
2
|
import { Badge } from "../../components/micro/badge";
|
|
13
3
|
import { Button } from "../../components/micro/button";
|
|
@@ -21,6 +11,14 @@ import {
|
|
|
21
11
|
} from "../../components/micro/card";
|
|
22
12
|
import { Input } from "../../components/micro/input";
|
|
23
13
|
import { Label } from "../../components/micro/label";
|
|
14
|
+
import { useDevContext } from "../../dev/components/dev-context";
|
|
15
|
+
import {
|
|
16
|
+
DocsP,
|
|
17
|
+
ExampleGrid,
|
|
18
|
+
ExampleSection,
|
|
19
|
+
Showcase,
|
|
20
|
+
ShowcaseDocs,
|
|
21
|
+
} from "../../dev/components/showcase";
|
|
24
22
|
import { type Size } from "../../lib/types";
|
|
25
23
|
|
|
26
24
|
// ──────────────────────────────────────────────────────────
|
|
@@ -34,15 +32,15 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
34
32
|
label="Tiêu chuẩn (Standard)"
|
|
35
33
|
description="Card cài sẵn với đầy đủ tiêu đề, nội dung và chân trang."
|
|
36
34
|
codeString={`<CardPreset
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
</CardPreset>`}
|
|
35
|
+
title="Account Settings"
|
|
36
|
+
description="Quản lý các cài đặt và tùy chọn cho tài khoản của bạn."
|
|
37
|
+
footer={<Button>Save Changes</Button>}
|
|
38
|
+
className="w-full"
|
|
39
|
+
>
|
|
40
|
+
<div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
|
|
41
|
+
Settings form content goes here.
|
|
42
|
+
</div>
|
|
43
|
+
</CardPreset>`}
|
|
46
44
|
>
|
|
47
45
|
<CardPreset
|
|
48
46
|
size={globalSize}
|
|
@@ -61,15 +59,14 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
61
59
|
label="Không có Footer"
|
|
62
60
|
description="Bỏ qua prop footer để ẩn hoàn toàn phần chân trang."
|
|
63
61
|
codeString={`<CardPreset
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
</CardPreset
|
|
72
|
-
`}
|
|
62
|
+
title="Notification Preferences"
|
|
63
|
+
description="Chọn những thông tin mà bạn muốn nhận thông báo."
|
|
64
|
+
className="w-full"
|
|
65
|
+
>
|
|
66
|
+
<div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
|
|
67
|
+
Switches and toggles go here.
|
|
68
|
+
</div>
|
|
69
|
+
</CardPreset>`}
|
|
73
70
|
>
|
|
74
71
|
<CardPreset
|
|
75
72
|
size={globalSize}
|
|
@@ -87,20 +84,22 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
87
84
|
label="Custom Title Node"
|
|
88
85
|
description="Tiêu đề hỗ trợ nhận ReactNode thay vì string."
|
|
89
86
|
codeString={`<CardPreset
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
title={
|
|
88
|
+
<div className="flex items-center gap-2">
|
|
89
|
+
<span>API Keys</span>
|
|
90
|
+
<Badge color="warning">Experimental</Badge>
|
|
91
|
+
</div>
|
|
92
|
+
}
|
|
93
|
+
description="Quản lý các khóa API bí mật của bạn."
|
|
94
|
+
className="w-full"
|
|
95
|
+
>
|
|
96
|
+
<div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50 flex items-center justify-between">
|
|
97
|
+
<span className="font-mono">sk_live_123...</span>
|
|
98
|
+
<Button size="sm" variant="outline">
|
|
99
|
+
Copy
|
|
100
|
+
</Button>
|
|
94
101
|
</div>
|
|
95
|
-
}
|
|
96
|
-
description="Quản lý các khóa API bí mật của bạn."
|
|
97
|
-
className="w-full"
|
|
98
|
-
>
|
|
99
|
-
<div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50 flex items-center justify-between">
|
|
100
|
-
<span className="font-mono">sk_live_123...</span>
|
|
101
|
-
<Button size="sm" variant="outline">Copy</Button>
|
|
102
|
-
</div>
|
|
103
|
-
</CardPreset>`}
|
|
102
|
+
</CardPreset>`}
|
|
104
103
|
>
|
|
105
104
|
<CardPreset
|
|
106
105
|
size={globalSize}
|
|
@@ -126,27 +125,34 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
126
125
|
label="Với Form Controls"
|
|
127
126
|
description="Sử dụng children để đặt input form bên trong nội dung."
|
|
128
127
|
codeString={`<CardPreset
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
>
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
128
|
+
title="Update Profile"
|
|
129
|
+
description="Thay đổi tên hiển thị và email của bạn."
|
|
130
|
+
footer={
|
|
131
|
+
<div className="flex justify-between w-full">
|
|
132
|
+
<Button variant="ghost">Cancel</Button>
|
|
133
|
+
<Button>Save</Button>
|
|
134
|
+
</div>
|
|
135
|
+
}
|
|
136
|
+
className="w-full"
|
|
137
|
+
>
|
|
138
|
+
<div className="grid gap-4">
|
|
139
|
+
<div className="flex flex-col space-y-1.5">
|
|
140
|
+
<Label htmlFor="macro-name">Name</Label>
|
|
141
|
+
<Input
|
|
142
|
+
id="macro-name"
|
|
143
|
+
placeholder="Enter your name"
|
|
144
|
+
/>
|
|
145
|
+
</div>
|
|
146
|
+
<div className="flex flex-col space-y-1.5">
|
|
147
|
+
<Label htmlFor="macro-email">Email</Label>
|
|
148
|
+
<Input
|
|
149
|
+
id="macro-email"
|
|
150
|
+
type="email"
|
|
151
|
+
placeholder="hello@example.com"
|
|
152
|
+
/>
|
|
153
|
+
</div>
|
|
147
154
|
</div>
|
|
148
|
-
</
|
|
149
|
-
</CardPreset>`}
|
|
155
|
+
</CardPreset>`}
|
|
150
156
|
>
|
|
151
157
|
<CardPreset
|
|
152
158
|
size={globalSize}
|
|
@@ -193,26 +199,30 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
193
199
|
label="Cơ bản (Standard)"
|
|
194
200
|
description="Lắp ráp thủ công từ CardHeader, CardTitle, CardContent, CardFooter."
|
|
195
201
|
codeString={`<Card className="w-full max-w-sm">
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
<
|
|
202
|
+
<CardHeader>
|
|
203
|
+
<CardTitle>Create project</CardTitle>
|
|
204
|
+
<CardDescription>
|
|
205
|
+
Deploy your new project in one-click.
|
|
206
|
+
</CardDescription>
|
|
207
|
+
</CardHeader>
|
|
208
|
+
<CardContent>
|
|
209
|
+
<form>
|
|
210
|
+
<div className="grid w-full items-center gap-4">
|
|
211
|
+
<div className="flex flex-col space-y-1.5">
|
|
212
|
+
<Label htmlFor="name">Name</Label>
|
|
213
|
+
<Input
|
|
214
|
+
id="name"
|
|
215
|
+
placeholder="Name of your project"
|
|
216
|
+
/>
|
|
217
|
+
</div>
|
|
206
218
|
</div>
|
|
207
|
-
</
|
|
208
|
-
</
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
</
|
|
214
|
-
</Card>
|
|
215
|
-
`}
|
|
219
|
+
</form>
|
|
220
|
+
</CardContent>
|
|
221
|
+
<CardFooter className="flex justify-between">
|
|
222
|
+
<Button variant="outline">Cancel</Button>
|
|
223
|
+
<Button>Deploy</Button>
|
|
224
|
+
</CardFooter>
|
|
225
|
+
</Card>`}
|
|
216
226
|
>
|
|
217
227
|
<Card size={globalSize} className="w-full max-w-sm">
|
|
218
228
|
<CardHeader>
|
|
@@ -245,14 +255,14 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
245
255
|
label="Chỉ có nội dung (Content Only)"
|
|
246
256
|
description="Dùng Card như một container bọc ngoài đơn giản."
|
|
247
257
|
codeString={`<Card className="w-full">
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
</
|
|
255
|
-
|
|
258
|
+
<CardContent>
|
|
259
|
+
<p className="text-sm text-muted-foreground pt-4 md:pt-6">
|
|
260
|
+
This is a simple content-only card without a header
|
|
261
|
+
or footer. Useful for wrapping any content in a card
|
|
262
|
+
container.
|
|
263
|
+
</p>
|
|
264
|
+
</CardContent>
|
|
265
|
+
</Card>`}
|
|
256
266
|
>
|
|
257
267
|
<Card size={globalSize} className="w-full">
|
|
258
268
|
<CardContent>
|
|
@@ -268,37 +278,43 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
268
278
|
label="Header đặc chế"
|
|
269
279
|
description="Tích hợp menu góc phải mà Preset khó thực hiện."
|
|
270
280
|
codeString={`<Card className="w-full">
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
281
|
+
<CardHeader>
|
|
282
|
+
<div className="flex items-center justify-between">
|
|
283
|
+
<div className="flex flex-col gap-1.5">
|
|
284
|
+
<div className="flex items-center gap-2">
|
|
285
|
+
<CardTitle>Notifications</CardTitle>
|
|
286
|
+
<Badge color="secondary">3 new</Badge>
|
|
287
|
+
</div>
|
|
288
|
+
<CardDescription>
|
|
289
|
+
You have 3 unread messages.
|
|
290
|
+
</CardDescription>
|
|
277
291
|
</div>
|
|
278
|
-
<
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
width="15"
|
|
284
|
-
height="15"
|
|
285
|
-
viewBox="0 0 15 15"
|
|
286
|
-
fill="none"
|
|
287
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
288
|
-
className="h-4 w-4"
|
|
292
|
+
<Button
|
|
293
|
+
variant="ghost"
|
|
294
|
+
size="sm"
|
|
295
|
+
iconOnly
|
|
296
|
+
className="h-8 w-8 rounded-full"
|
|
289
297
|
>
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
298
|
+
<span className="sr-only">Open menu</span>
|
|
299
|
+
<svg
|
|
300
|
+
width="15"
|
|
301
|
+
height="15"
|
|
302
|
+
viewBox="0 0 15 15"
|
|
303
|
+
fill="none"
|
|
304
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
305
|
+
className="h-4 w-4"
|
|
306
|
+
>
|
|
307
|
+
<path
|
|
308
|
+
d="M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM13.625 7.5C13.625 8.12132 13.1213 8.625 12.5 8.625C11.8787 8.625 11.375 8.12132 11.375 7.5C11.375 6.87868 11.8787 6.375 12.5 6.375C13.1213 6.375 13.625 6.87868 13.625 7.5Z"
|
|
309
|
+
fill="currentColor"
|
|
310
|
+
fillRule="evenodd"
|
|
311
|
+
clipRule="evenodd"
|
|
312
|
+
></path>
|
|
313
|
+
</svg>
|
|
314
|
+
</Button>
|
|
315
|
+
</div>
|
|
316
|
+
</CardHeader>
|
|
317
|
+
</Card>`}
|
|
302
318
|
>
|
|
303
319
|
<Card size={globalSize} className="w-full">
|
|
304
320
|
<CardHeader>
|
|
@@ -344,35 +360,42 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
344
360
|
description="Thiết kế thẻ dashboard thông dụng trong thực tế."
|
|
345
361
|
fullWidth
|
|
346
362
|
codeString={`<div className="grid grid-cols-1 md:grid-cols-3 gap-6 w-full">
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
</
|
|
375
|
-
|
|
363
|
+
<Card>
|
|
364
|
+
<CardHeader className="pb-2">
|
|
365
|
+
<CardDescription>Total Revenue</CardDescription>
|
|
366
|
+
<CardTitle className="text-3xl">
|
|
367
|
+
$45,231.89
|
|
368
|
+
</CardTitle>
|
|
369
|
+
</CardHeader>
|
|
370
|
+
<CardContent>
|
|
371
|
+
<p className="text-xs text-muted-foreground">
|
|
372
|
+
+20.1% from last month
|
|
373
|
+
</p>
|
|
374
|
+
</CardContent>
|
|
375
|
+
</Card>
|
|
376
|
+
<Card>
|
|
377
|
+
<CardHeader className="pb-2">
|
|
378
|
+
<CardDescription>Subscriptions</CardDescription>
|
|
379
|
+
<CardTitle className="text-3xl">+2,350</CardTitle>
|
|
380
|
+
</CardHeader>
|
|
381
|
+
<CardContent>
|
|
382
|
+
<p className="text-xs text-muted-foreground">
|
|
383
|
+
+180.1% from last month
|
|
384
|
+
</p>
|
|
385
|
+
</CardContent>
|
|
386
|
+
</Card>
|
|
387
|
+
<Card>
|
|
388
|
+
<CardHeader className="pb-2">
|
|
389
|
+
<CardDescription>Active Now</CardDescription>
|
|
390
|
+
<CardTitle className="text-3xl">+573</CardTitle>
|
|
391
|
+
</CardHeader>
|
|
392
|
+
<CardContent>
|
|
393
|
+
<p className="text-xs text-muted-foreground">
|
|
394
|
+
+201 since last hour
|
|
395
|
+
</p>
|
|
396
|
+
</CardContent>
|
|
397
|
+
</Card>
|
|
398
|
+
</div>`}
|
|
376
399
|
>
|
|
377
400
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 w-full">
|
|
378
401
|
<Card size={globalSize}>
|
|
@@ -428,8 +451,7 @@ export default function CardShowcase() {
|
|
|
428
451
|
<DocsP>
|
|
429
452
|
Dùng để nhóm các thông tin liên quan lại với nhau trong một
|
|
430
453
|
container có cấu trúc rõ ràng. Thường được sử dụng để hiển thị các
|
|
431
|
-
mục dữ liệu, dashboard, hoặc các form
|
|
432
|
-
nhỏ.
|
|
454
|
+
mục dữ liệu, dashboard, hoặc các form nhỏ.
|
|
433
455
|
</DocsP>
|
|
434
456
|
</ShowcaseDocs>
|
|
435
457
|
}
|