gladvn 0.2.16 → 0.2.18
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 +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- 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 +47 -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 +5 -4
- 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 +1 -1
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import { BellIcon, CreditCardIcon, UserIcon } from "lucide-react";
|
|
2
|
+
|
|
3
|
+
import { TabsPreset } from "../../components/macro/tabs-preset";
|
|
4
|
+
import {
|
|
5
|
+
Tabs,
|
|
6
|
+
TabsContent,
|
|
7
|
+
TabsList,
|
|
8
|
+
TabsTrigger,
|
|
9
|
+
} from "../../components/micro/tabs";
|
|
1
10
|
import {
|
|
2
11
|
DocsCode,
|
|
3
12
|
DocsH3,
|
|
@@ -8,15 +17,6 @@ import {
|
|
|
8
17
|
ShowcaseDocs,
|
|
9
18
|
} from "../../dev/components/showcase";
|
|
10
19
|
|
|
11
|
-
import { TabsPreset } from "../../components/macro/tabs-preset";
|
|
12
|
-
import {
|
|
13
|
-
Tabs,
|
|
14
|
-
TabsContent,
|
|
15
|
-
TabsList,
|
|
16
|
-
TabsTrigger,
|
|
17
|
-
} from "../../components/micro/tabs";
|
|
18
|
-
import { BellIcon, CreditCardIcon, UserIcon } from "lucide-react";
|
|
19
|
-
|
|
20
20
|
// ──────────────────────────────────────────────────────────
|
|
21
21
|
// SECTION 1: Macro Content
|
|
22
22
|
// ──────────────────────────────────────────────────────────
|
|
@@ -28,31 +28,35 @@ function TabsMacroShowcase() {
|
|
|
28
28
|
label="Tiêu chuẩn (Standard)"
|
|
29
29
|
description="Tabs cơ bản truyền qua mảng items."
|
|
30
30
|
codeString={`<TabsPreset
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
31
|
+
defaultValue="account"
|
|
32
|
+
className="w-full"
|
|
33
|
+
items={[
|
|
34
|
+
{
|
|
35
|
+
value: "account",
|
|
36
|
+
title: "Account",
|
|
37
|
+
content: (
|
|
38
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
39
|
+
<h4 className="font-medium">Account</h4>
|
|
40
|
+
<p className="text-sm text-muted-foreground">
|
|
41
|
+
Account settings here.
|
|
42
|
+
</p>
|
|
43
|
+
</div>
|
|
44
|
+
),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
value: "password",
|
|
48
|
+
title: "Password",
|
|
49
|
+
content: (
|
|
50
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
51
|
+
<h4 className="font-medium">Password</h4>
|
|
52
|
+
<p className="text-sm text-muted-foreground">
|
|
53
|
+
Change your password here.
|
|
54
|
+
</p>
|
|
55
|
+
</div>
|
|
56
|
+
),
|
|
57
|
+
},
|
|
58
|
+
]}
|
|
59
|
+
/>`}
|
|
56
60
|
>
|
|
57
61
|
<TabsPreset
|
|
58
62
|
defaultValue="account"
|
|
@@ -90,27 +94,29 @@ function TabsMacroShowcase() {
|
|
|
90
94
|
label="Tab bị vô hiệu hóa (Disabled Tab)"
|
|
91
95
|
description="Tab không thể tương tác do thuộc tính disabled."
|
|
92
96
|
codeString={`<TabsPreset
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
97
|
+
defaultValue="general"
|
|
98
|
+
className="w-full"
|
|
99
|
+
items={[
|
|
100
|
+
{
|
|
101
|
+
value: "general",
|
|
102
|
+
title: "General",
|
|
103
|
+
content: (
|
|
104
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
105
|
+
<h4 className="font-medium">General</h4>
|
|
106
|
+
<p className="text-sm text-muted-foreground">
|
|
107
|
+
General settings.
|
|
108
|
+
</p>
|
|
109
|
+
</div>
|
|
110
|
+
),
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
value: "advanced",
|
|
114
|
+
title: "Advanced (Pro)",
|
|
115
|
+
content: <></>,
|
|
116
|
+
disabled: true,
|
|
117
|
+
},
|
|
118
|
+
]}
|
|
119
|
+
/>`}
|
|
114
120
|
>
|
|
115
121
|
<TabsPreset
|
|
116
122
|
defaultValue="general"
|
|
@@ -144,52 +150,52 @@ function TabsMacroShowcase() {
|
|
|
144
150
|
description="Sử dụng prop variant='line' để hiển thị tabs kiểu gạch chân (phong cách thanh điều hướng)."
|
|
145
151
|
fullWidth
|
|
146
152
|
codeString={`<div className="max-w-lg">
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
<
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
153
|
+
<TabsPreset
|
|
154
|
+
defaultValue="overview"
|
|
155
|
+
variant="line"
|
|
156
|
+
listClassName="w-full justify-start border-b border-b-border rounded-none px-0"
|
|
157
|
+
className="w-full"
|
|
158
|
+
items={[
|
|
159
|
+
{
|
|
160
|
+
value: "overview",
|
|
161
|
+
title: "Overview",
|
|
162
|
+
content: (
|
|
163
|
+
<div className="pt-4">
|
|
164
|
+
<h4 className="font-medium">Overview</h4>
|
|
165
|
+
<p className="text-sm text-muted-foreground">
|
|
166
|
+
High-level project statistics and activity
|
|
167
|
+
feed.
|
|
168
|
+
</p>
|
|
169
|
+
</div>
|
|
170
|
+
),
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
value: "analytics",
|
|
174
|
+
title: "Analytics",
|
|
175
|
+
content: (
|
|
176
|
+
<div className="pt-4">
|
|
177
|
+
<h4 className="font-medium">Analytics</h4>
|
|
178
|
+
<p className="text-sm text-muted-foreground">
|
|
179
|
+
Charts and data visualizations.
|
|
180
|
+
</p>
|
|
181
|
+
</div>
|
|
182
|
+
),
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
value: "reports",
|
|
186
|
+
title: "Reports",
|
|
187
|
+
content: (
|
|
188
|
+
<div className="pt-4">
|
|
189
|
+
<h4 className="font-medium">Reports</h4>
|
|
190
|
+
<p className="text-sm text-muted-foreground">
|
|
191
|
+
Generated reports and exports.
|
|
192
|
+
</p>
|
|
193
|
+
</div>
|
|
194
|
+
),
|
|
195
|
+
},
|
|
196
|
+
]}
|
|
197
|
+
/>
|
|
198
|
+
</div>`}
|
|
193
199
|
>
|
|
194
200
|
<div className="max-w-lg">
|
|
195
201
|
<TabsPreset
|
|
@@ -244,43 +250,46 @@ function TabsMacroShowcase() {
|
|
|
244
250
|
description="Hiển thị các component phức tạp như form bên trong nội dung tab."
|
|
245
251
|
fullWidth
|
|
246
252
|
codeString={`<div className="max-w-lg">
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
<div className="
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
253
|
+
<TabsPreset
|
|
254
|
+
defaultValue="login"
|
|
255
|
+
className="w-full"
|
|
256
|
+
items={[
|
|
257
|
+
{
|
|
258
|
+
value: "login",
|
|
259
|
+
title: "Login",
|
|
260
|
+
content: (
|
|
261
|
+
<div className="rounded-xl border border-border bg-card p-6 mt-2 flex flex-col gap-4">
|
|
262
|
+
<div className="text-lg font-semibold">
|
|
263
|
+
Welcome Back
|
|
264
|
+
</div>
|
|
265
|
+
<div className="h-10 w-full bg-muted rounded-md" />
|
|
266
|
+
<div className="h-10 w-full bg-muted rounded-md" />
|
|
267
|
+
<button className="bg-primary text-primary-foreground h-10 rounded-md text-sm font-medium">
|
|
268
|
+
Sign In
|
|
269
|
+
</button>
|
|
270
|
+
</div>
|
|
271
|
+
),
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
value: "register",
|
|
275
|
+
title: "Register",
|
|
276
|
+
content: (
|
|
277
|
+
<div className="rounded-xl border border-border bg-card p-6 mt-2 flex flex-col gap-4">
|
|
278
|
+
<div className="text-lg font-semibold">
|
|
279
|
+
Create Account
|
|
280
|
+
</div>
|
|
281
|
+
<div className="h-10 w-full bg-muted rounded-md" />
|
|
282
|
+
<div className="h-10 w-full bg-muted rounded-md" />
|
|
283
|
+
<div className="h-10 w-full bg-muted rounded-md" />
|
|
284
|
+
<button className="bg-primary text-primary-foreground h-10 rounded-md text-sm font-medium">
|
|
285
|
+
Sign Up
|
|
286
|
+
</button>
|
|
287
|
+
</div>
|
|
288
|
+
),
|
|
289
|
+
},
|
|
290
|
+
]}
|
|
291
|
+
/>
|
|
292
|
+
</div>`}
|
|
284
293
|
>
|
|
285
294
|
<div className="max-w-lg">
|
|
286
295
|
<TabsPreset
|
|
@@ -335,28 +344,27 @@ function TabsMicroShowcase() {
|
|
|
335
344
|
label="Cơ bản (Default)"
|
|
336
345
|
description="Tabs nguyên thuỷ lắp ráp thủ công."
|
|
337
346
|
codeString={`<Tabs defaultValue="account" className="w-full">
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
</Tabs
|
|
359
|
-
`}
|
|
347
|
+
<TabsList className="w-full">
|
|
348
|
+
<TabsTrigger value="account">Account</TabsTrigger>
|
|
349
|
+
<TabsTrigger value="password">Password</TabsTrigger>
|
|
350
|
+
</TabsList>
|
|
351
|
+
<TabsContent value="account">
|
|
352
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
353
|
+
<h4 className="font-medium">Account</h4>
|
|
354
|
+
<p className="text-sm text-muted-foreground">
|
|
355
|
+
Make changes to your account here.
|
|
356
|
+
</p>
|
|
357
|
+
</div>
|
|
358
|
+
</TabsContent>
|
|
359
|
+
<TabsContent value="password">
|
|
360
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
361
|
+
<h4 className="font-medium">Password</h4>
|
|
362
|
+
<p className="text-sm text-muted-foreground">
|
|
363
|
+
Change your password here.
|
|
364
|
+
</p>
|
|
365
|
+
</div>
|
|
366
|
+
</TabsContent>
|
|
367
|
+
</Tabs>`}
|
|
360
368
|
>
|
|
361
369
|
<Tabs defaultValue="account" className="w-full">
|
|
362
370
|
<TabsList className="w-full">
|
|
@@ -386,34 +394,33 @@ function TabsMicroShowcase() {
|
|
|
386
394
|
label="Kèm Icon (With Icons)"
|
|
387
395
|
description="Thêm icon tuỳ chỉnh vào bên trong Tab Trigger."
|
|
388
396
|
codeString={`<Tabs defaultValue="profile" className="w-full">
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
</Tabs
|
|
416
|
-
`}
|
|
397
|
+
<TabsList className="w-full">
|
|
398
|
+
<TabsTrigger value="profile">
|
|
399
|
+
<UserIcon data-icon="inline-start" />
|
|
400
|
+
Profile
|
|
401
|
+
</TabsTrigger>
|
|
402
|
+
<TabsTrigger value="notifications">
|
|
403
|
+
<BellIcon data-icon="inline-start" />
|
|
404
|
+
Notifications
|
|
405
|
+
</TabsTrigger>
|
|
406
|
+
</TabsList>
|
|
407
|
+
<TabsContent value="profile">
|
|
408
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
409
|
+
<h4 className="font-medium">Profile</h4>
|
|
410
|
+
<p className="text-sm text-muted-foreground">
|
|
411
|
+
Update your name, avatar and bio.
|
|
412
|
+
</p>
|
|
413
|
+
</div>
|
|
414
|
+
</TabsContent>
|
|
415
|
+
<TabsContent value="notifications">
|
|
416
|
+
<div className="rounded-xl border border-border bg-card p-4 mt-2">
|
|
417
|
+
<h4 className="font-medium">Notifications</h4>
|
|
418
|
+
<p className="text-sm text-muted-foreground">
|
|
419
|
+
Choose what notifications you receive.
|
|
420
|
+
</p>
|
|
421
|
+
</div>
|
|
422
|
+
</TabsContent>
|
|
423
|
+
</Tabs>`}
|
|
417
424
|
>
|
|
418
425
|
<Tabs defaultValue="profile" className="w-full">
|
|
419
426
|
<TabsList className="w-full">
|
|
@@ -451,40 +458,39 @@ function TabsMicroShowcase() {
|
|
|
451
458
|
description="Tabs có kiểu gạch chân (không nền)."
|
|
452
459
|
fullWidth
|
|
453
460
|
codeString={`<Tabs defaultValue="music" className="w-full max-w-lg">
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
</Tabs
|
|
487
|
-
`}
|
|
461
|
+
<TabsList
|
|
462
|
+
variant="line"
|
|
463
|
+
className="w-full justify-start border-b border-b-border rounded-none px-0"
|
|
464
|
+
>
|
|
465
|
+
<TabsTrigger value="music">Music</TabsTrigger>
|
|
466
|
+
<TabsTrigger value="podcasts">Podcasts</TabsTrigger>
|
|
467
|
+
<TabsTrigger value="live">Live</TabsTrigger>
|
|
468
|
+
</TabsList>
|
|
469
|
+
<TabsContent value="music">
|
|
470
|
+
<div className="pt-4">
|
|
471
|
+
<h4 className="font-medium">Music Library</h4>
|
|
472
|
+
<p className="text-sm text-muted-foreground">
|
|
473
|
+
Your top played songs and albums.
|
|
474
|
+
</p>
|
|
475
|
+
</div>
|
|
476
|
+
</TabsContent>
|
|
477
|
+
<TabsContent value="podcasts">
|
|
478
|
+
<div className="pt-4">
|
|
479
|
+
<h4 className="font-medium">Podcasts</h4>
|
|
480
|
+
<p className="text-sm text-muted-foreground">
|
|
481
|
+
Episodes from your subscriptions.
|
|
482
|
+
</p>
|
|
483
|
+
</div>
|
|
484
|
+
</TabsContent>
|
|
485
|
+
<TabsContent value="live">
|
|
486
|
+
<div className="pt-4">
|
|
487
|
+
<h4 className="font-medium">Live Radio</h4>
|
|
488
|
+
<p className="text-sm text-muted-foreground">
|
|
489
|
+
Tune in to live broadcasts.
|
|
490
|
+
</p>
|
|
491
|
+
</div>
|
|
492
|
+
</TabsContent>
|
|
493
|
+
</Tabs>`}
|
|
488
494
|
>
|
|
489
495
|
<Tabs defaultValue="music" className="w-full max-w-lg">
|
|
490
496
|
<TabsList
|
|
@@ -527,51 +533,50 @@ function TabsMicroShowcase() {
|
|
|
527
533
|
description="Sắp xếp danh sách tab theo chiều dọc bên trái và nội dung bên phải."
|
|
528
534
|
fullWidth
|
|
529
535
|
codeString={`<Tabs
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
>
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
</Tabs
|
|
574
|
-
`}
|
|
536
|
+
defaultValue="profile"
|
|
537
|
+
orientation="vertical"
|
|
538
|
+
className="w-full max-w-xl"
|
|
539
|
+
>
|
|
540
|
+
<TabsList className="w-40 shrink-0">
|
|
541
|
+
<TabsTrigger value="profile">
|
|
542
|
+
<UserIcon data-icon="inline-start" />
|
|
543
|
+
Profile
|
|
544
|
+
</TabsTrigger>
|
|
545
|
+
<TabsTrigger value="notifications">
|
|
546
|
+
<BellIcon data-icon="inline-start" />
|
|
547
|
+
Notifications
|
|
548
|
+
</TabsTrigger>
|
|
549
|
+
<TabsTrigger value="billing">
|
|
550
|
+
<CreditCardIcon data-icon="inline-start" />
|
|
551
|
+
Billing
|
|
552
|
+
</TabsTrigger>
|
|
553
|
+
</TabsList>
|
|
554
|
+
<TabsContent value="profile">
|
|
555
|
+
<div className="rounded-xl border border-border bg-card p-4">
|
|
556
|
+
<h4 className="font-medium">Profile</h4>
|
|
557
|
+
<p className="text-sm text-muted-foreground">
|
|
558
|
+
Update your personal information and manage your
|
|
559
|
+
public profile.
|
|
560
|
+
</p>
|
|
561
|
+
</div>
|
|
562
|
+
</TabsContent>
|
|
563
|
+
<TabsContent value="notifications">
|
|
564
|
+
<div className="rounded-xl border border-border bg-card p-4">
|
|
565
|
+
<h4 className="font-medium">Notifications</h4>
|
|
566
|
+
<p className="text-sm text-muted-foreground">
|
|
567
|
+
Choose what notifications you receive and how.
|
|
568
|
+
</p>
|
|
569
|
+
</div>
|
|
570
|
+
</TabsContent>
|
|
571
|
+
<TabsContent value="billing">
|
|
572
|
+
<div className="rounded-xl border border-border bg-card p-4">
|
|
573
|
+
<h4 className="font-medium">Billing</h4>
|
|
574
|
+
<p className="text-sm text-muted-foreground">
|
|
575
|
+
Manage your subscription and payment methods.
|
|
576
|
+
</p>
|
|
577
|
+
</div>
|
|
578
|
+
</TabsContent>
|
|
579
|
+
</Tabs>`}
|
|
575
580
|
>
|
|
576
581
|
<Tabs
|
|
577
582
|
defaultValue="profile"
|