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,5 +1,3 @@
|
|
|
1
|
-
import { useDevContext } from "../../dev/components/dev-context";
|
|
2
|
-
import { useState } from "react";
|
|
3
1
|
import { CheckIcon, HeartIcon, MoreVerticalIcon, UserIcon } from "lucide-react";
|
|
4
2
|
|
|
5
3
|
import { Button } from "../../components/micro/button";
|
|
@@ -15,7 +13,7 @@ import {
|
|
|
15
13
|
ItemSeparator,
|
|
16
14
|
ItemTitle,
|
|
17
15
|
} from "../../components/micro/item";
|
|
18
|
-
import {
|
|
16
|
+
import { useDevContext } from "../../dev/components/dev-context";
|
|
19
17
|
import {
|
|
20
18
|
DocsH3,
|
|
21
19
|
DocsP,
|
|
@@ -24,6 +22,7 @@ import {
|
|
|
24
22
|
Showcase,
|
|
25
23
|
ShowcaseDocs,
|
|
26
24
|
} from "../../dev/components/showcase";
|
|
25
|
+
import { type Size } from "../../lib/types";
|
|
27
26
|
|
|
28
27
|
function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
29
28
|
return (
|
|
@@ -33,14 +32,13 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
33
32
|
label="Basic Content"
|
|
34
33
|
description="Item cơ bản với tiêu đề và mô tả."
|
|
35
34
|
codeString={`<Item className="w-full">
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
</Item
|
|
43
|
-
`}
|
|
35
|
+
<ItemContent>
|
|
36
|
+
<ItemTitle>Basic Item Content</ItemTitle>
|
|
37
|
+
<ItemDescription>
|
|
38
|
+
This item shows structured text.
|
|
39
|
+
</ItemDescription>
|
|
40
|
+
</ItemContent>
|
|
41
|
+
</Item>`}
|
|
44
42
|
>
|
|
45
43
|
<Item size={globalSize} className="w-full">
|
|
46
44
|
<ItemContent>
|
|
@@ -56,15 +54,14 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
56
54
|
label="With Media"
|
|
57
55
|
description="Item kèm icon hoặc avatar."
|
|
58
56
|
codeString={`<Item className="w-full">
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
</Item
|
|
67
|
-
`}
|
|
57
|
+
<ItemMedia className="bg-primary/10 text-primary rounded-md p-2">
|
|
58
|
+
<UserIcon className="size-4" />
|
|
59
|
+
</ItemMedia>
|
|
60
|
+
<ItemContent>
|
|
61
|
+
<ItemTitle>User Profile</ItemTitle>
|
|
62
|
+
<ItemDescription>Manage your account</ItemDescription>
|
|
63
|
+
</ItemContent>
|
|
64
|
+
</Item>`}
|
|
68
65
|
>
|
|
69
66
|
<Item size={globalSize} className="w-full">
|
|
70
67
|
<ItemMedia className="bg-primary/10 text-primary rounded-md p-2">
|
|
@@ -83,18 +80,17 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
83
80
|
label="Variants"
|
|
84
81
|
description="Các variant khác nhau: outline, muted."
|
|
85
82
|
codeString={`<div className="flex flex-col gap-3 w-full">
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
</div
|
|
97
|
-
`}
|
|
83
|
+
<Item variant="outline">
|
|
84
|
+
<ItemContent>
|
|
85
|
+
<ItemTitle>Outline Variant</ItemTitle>
|
|
86
|
+
</ItemContent>
|
|
87
|
+
</Item>
|
|
88
|
+
<Item variant="muted">
|
|
89
|
+
<ItemContent>
|
|
90
|
+
<ItemTitle>Muted Variant</ItemTitle>
|
|
91
|
+
</ItemContent>
|
|
92
|
+
</Item>
|
|
93
|
+
</div>`}
|
|
98
94
|
>
|
|
99
95
|
<div className="flex flex-col gap-3 w-full">
|
|
100
96
|
<Item variant="outline" size={globalSize}>
|
|
@@ -114,24 +110,26 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
114
110
|
label="Media Variants"
|
|
115
111
|
description="ItemMedia hỗ trợ các variant riêng: icon và image."
|
|
116
112
|
codeString={`<div className="flex flex-col gap-3 w-full">
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
</
|
|
134
|
-
|
|
113
|
+
<Item>
|
|
114
|
+
<ItemMedia
|
|
115
|
+
variant="icon"
|
|
116
|
+
className="bg-primary/10 text-primary"
|
|
117
|
+
>
|
|
118
|
+
<CheckIcon className="size-4" />
|
|
119
|
+
</ItemMedia>
|
|
120
|
+
<ItemContent>
|
|
121
|
+
<ItemTitle>Icon Variant</ItemTitle>
|
|
122
|
+
</ItemContent>
|
|
123
|
+
</Item>
|
|
124
|
+
<Item>
|
|
125
|
+
<ItemMedia variant="image" className="bg-muted">
|
|
126
|
+
<UserIcon className="size-4 text-muted-foreground" />
|
|
127
|
+
</ItemMedia>
|
|
128
|
+
<ItemContent>
|
|
129
|
+
<ItemTitle>Image Variant</ItemTitle>
|
|
130
|
+
</ItemContent>
|
|
131
|
+
</Item>
|
|
132
|
+
</div>`}
|
|
135
133
|
>
|
|
136
134
|
<div className="flex flex-col gap-3 w-full">
|
|
137
135
|
<Item size={globalSize}>
|
|
@@ -157,19 +155,26 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
157
155
|
label="With Actions"
|
|
158
156
|
description="Item có các nút hành động ở cuối (ItemActions)."
|
|
159
157
|
codeString={`<Item className="w-full">
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
158
|
+
<ItemContent>
|
|
159
|
+
<ItemTitle>Actionable Item</ItemTitle>
|
|
160
|
+
</ItemContent>
|
|
161
|
+
<ItemActions>
|
|
162
|
+
<Button
|
|
163
|
+
variant="ghost"
|
|
164
|
+
size="sm"
|
|
165
|
+
className="size-8 p-0"
|
|
166
|
+
>
|
|
167
|
+
<HeartIcon className="size-4" />
|
|
168
|
+
</Button>
|
|
169
|
+
<Button
|
|
170
|
+
variant="ghost"
|
|
171
|
+
size="sm"
|
|
172
|
+
className="size-8 p-0"
|
|
173
|
+
>
|
|
174
|
+
<MoreVerticalIcon className="size-4" />
|
|
175
|
+
</Button>
|
|
176
|
+
</ItemActions>
|
|
177
|
+
</Item>`}
|
|
173
178
|
>
|
|
174
179
|
<Item size={globalSize} className="w-full">
|
|
175
180
|
<ItemContent>
|
|
@@ -191,25 +196,26 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
191
196
|
label="Item Group"
|
|
192
197
|
description="Nhóm các Item và phân cách bằng ItemSeparator."
|
|
193
198
|
codeString={`<ItemGroup className="w-full max-w-sm mx-auto">
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
</
|
|
212
|
-
|
|
199
|
+
<Item>
|
|
200
|
+
<ItemContent>
|
|
201
|
+
<ItemTitle>Account Settings</ItemTitle>
|
|
202
|
+
</ItemContent>
|
|
203
|
+
</Item>
|
|
204
|
+
<ItemSeparator />
|
|
205
|
+
<Item>
|
|
206
|
+
<ItemContent>
|
|
207
|
+
<ItemTitle>Notification Preferences</ItemTitle>
|
|
208
|
+
</ItemContent>
|
|
209
|
+
</Item>
|
|
210
|
+
<ItemSeparator />
|
|
211
|
+
<Item>
|
|
212
|
+
<ItemContent>
|
|
213
|
+
<ItemTitle className="text-destructive">
|
|
214
|
+
Delete Account
|
|
215
|
+
</ItemTitle>
|
|
216
|
+
</ItemContent>
|
|
217
|
+
</Item>
|
|
218
|
+
</ItemGroup>`}
|
|
213
219
|
>
|
|
214
220
|
<ItemGroup className="w-full max-w-sm mx-auto">
|
|
215
221
|
<Item size={globalSize}>
|
|
@@ -235,20 +241,17 @@ function ItemMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
235
241
|
<ExampleSection
|
|
236
242
|
label="With Header and Footer"
|
|
237
243
|
description="Item phức tạp với ItemHeader và ItemFooter."
|
|
238
|
-
codeString={`<Item
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
<
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
</ItemFooter>
|
|
250
|
-
</Item>
|
|
251
|
-
`}
|
|
244
|
+
codeString={`<Item className="w-full max-w-sm mx-auto flex-col items-start gap-2">
|
|
245
|
+
<ItemHeader className="text-xs text-muted-foreground">
|
|
246
|
+
Order #12345
|
|
247
|
+
</ItemHeader>
|
|
248
|
+
<ItemContent>
|
|
249
|
+
<ItemTitle>Mechanical Keyboard v2</ItemTitle>
|
|
250
|
+
</ItemContent>
|
|
251
|
+
<ItemFooter className="text-xs text-success flex items-center gap-1">
|
|
252
|
+
<CheckIcon className="size-3" /> Delivered
|
|
253
|
+
</ItemFooter>
|
|
254
|
+
</Item>`}
|
|
252
255
|
>
|
|
253
256
|
<Item
|
|
254
257
|
size={globalSize}
|
|
@@ -279,8 +282,8 @@ export default function ItemShowcase() {
|
|
|
279
282
|
<ShowcaseDocs>
|
|
280
283
|
<DocsH3>Item</DocsH3>
|
|
281
284
|
<DocsP>
|
|
282
|
-
Sử dụng để tạo danh sách hoặc khối nội dung có icon, tiêu đề,
|
|
283
|
-
|
|
285
|
+
Sử dụng để tạo danh sách hoặc khối nội dung có icon, tiêu đề, mô tả
|
|
286
|
+
và hành động.
|
|
284
287
|
</DocsP>
|
|
285
288
|
</ShowcaseDocs>
|
|
286
289
|
}
|
package/src/dev/showcase/kbd.tsx
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DocsCode,
|
|
3
|
-
DocsP,
|
|
4
|
-
ExampleGrid,
|
|
5
|
-
ExampleSection,
|
|
6
|
-
Showcase,
|
|
7
|
-
ShowcaseDocs,
|
|
8
|
-
} from "../../dev/components/showcase";
|
|
9
1
|
import {
|
|
10
2
|
CopyIcon,
|
|
11
3
|
FileIcon,
|
|
@@ -19,16 +11,26 @@ import {
|
|
|
19
11
|
DropdownMenu,
|
|
20
12
|
DropdownMenuContent,
|
|
21
13
|
DropdownMenuItem,
|
|
14
|
+
DropdownMenuPortal,
|
|
22
15
|
DropdownMenuSeparator,
|
|
23
16
|
DropdownMenuTrigger,
|
|
24
|
-
DropdownMenuPortal,
|
|
25
17
|
} from "../../components/micro/dropdown-menu";
|
|
26
18
|
import { Kbd, KbdGroup } from "../../components/micro/kbd";
|
|
27
19
|
import {
|
|
28
20
|
Tooltip,
|
|
29
21
|
TooltipContent,
|
|
22
|
+
TooltipPortal,
|
|
30
23
|
TooltipProvider,
|
|
31
|
-
TooltipTrigger,
|
|
24
|
+
TooltipTrigger,
|
|
25
|
+
} from "../../components/micro/tooltip";
|
|
26
|
+
import {
|
|
27
|
+
DocsCode,
|
|
28
|
+
DocsP,
|
|
29
|
+
ExampleGrid,
|
|
30
|
+
ExampleSection,
|
|
31
|
+
Showcase,
|
|
32
|
+
ShowcaseDocs,
|
|
33
|
+
} from "../../dev/components/showcase";
|
|
32
34
|
|
|
33
35
|
// ──────────────────────────────────────────────────────────
|
|
34
36
|
// SECTION 2: Micro Content (không export)
|
|
@@ -42,8 +44,8 @@ function KbdMicroShowcase() {
|
|
|
42
44
|
label="Kbd — Phím đơn"
|
|
43
45
|
description="Hiển thị một phím bàn phím riêng lẻ dùng thẻ <kbd> semantic."
|
|
44
46
|
codeString={`<p className="text-sm text-muted-foreground">
|
|
45
|
-
|
|
46
|
-
</p>`}
|
|
47
|
+
Press <Kbd>⌘</Kbd> <Kbd>K</Kbd> to open search.
|
|
48
|
+
</p>`}
|
|
47
49
|
>
|
|
48
50
|
<p className="text-sm text-muted-foreground">
|
|
49
51
|
Press <Kbd>⌘</Kbd> <Kbd>K</Kbd> to open search.
|
|
@@ -54,13 +56,13 @@ function KbdMicroShowcase() {
|
|
|
54
56
|
label="KbdGroup — Tổ hợp phím"
|
|
55
57
|
description="Nhóm nhiều phím cạnh nhau với khoảng cách đều. Dùng khi biểu diễn tổ hợp phím như Ctrl+Shift+P."
|
|
56
58
|
codeString={`<p className="text-sm text-muted-foreground flex items-center gap-2">
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
</p>`}
|
|
59
|
+
Open Command Palette
|
|
60
|
+
<KbdGroup>
|
|
61
|
+
<Kbd>⌘</Kbd>
|
|
62
|
+
<Kbd>⇧</Kbd>
|
|
63
|
+
<Kbd>P</Kbd>
|
|
64
|
+
</KbdGroup>
|
|
65
|
+
</p>`}
|
|
64
66
|
>
|
|
65
67
|
<p className="text-sm text-muted-foreground flex items-center gap-2">
|
|
66
68
|
Open Command Palette
|
|
@@ -78,17 +80,17 @@ function KbdMicroShowcase() {
|
|
|
78
80
|
label="Ký tự & Symbols"
|
|
79
81
|
description="Kbd có thể chứa ký tự Unicode, chữ cái, số hoặc tên phím dài."
|
|
80
82
|
codeString={`<div className="flex flex-wrap items-center gap-2">
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</div>`}
|
|
83
|
+
<Kbd>Ctrl</Kbd>
|
|
84
|
+
<Kbd>Alt</Kbd>
|
|
85
|
+
<Kbd>⌘</Kbd>
|
|
86
|
+
<Kbd>⇧</Kbd>
|
|
87
|
+
<Kbd>⌫</Kbd>
|
|
88
|
+
<Kbd>↵</Kbd>
|
|
89
|
+
<Kbd>Tab</Kbd>
|
|
90
|
+
<Kbd>Esc</Kbd>
|
|
91
|
+
<Kbd>F1</Kbd>
|
|
92
|
+
<Kbd>→</Kbd>
|
|
93
|
+
</div>`}
|
|
92
94
|
>
|
|
93
95
|
<div className="flex flex-wrap items-center gap-2">
|
|
94
96
|
<Kbd>Ctrl</Kbd>
|
|
@@ -109,13 +111,20 @@ function KbdMicroShowcase() {
|
|
|
109
111
|
label="Kbd trong Tooltip"
|
|
110
112
|
description="Kbd tự đổi màu khi nằm trong TooltipContent — màu nền sáng trên nền tối của tooltip, không cần thêm class."
|
|
111
113
|
codeString={`<TooltipProvider>
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
<Tooltip>
|
|
115
|
+
<TooltipTrigger
|
|
116
|
+
render={
|
|
117
|
+
<Button variant="outline" iconOnly>
|
|
118
|
+
<SaveIcon />
|
|
119
|
+
</Button>
|
|
120
|
+
}
|
|
121
|
+
/>
|
|
122
|
+
<TooltipContent>
|
|
123
|
+
Lưu tài liệu <Kbd>⌘</Kbd>
|
|
124
|
+
<Kbd>S</Kbd>
|
|
125
|
+
</TooltipContent>
|
|
126
|
+
</Tooltip>
|
|
127
|
+
</TooltipProvider>`}
|
|
119
128
|
>
|
|
120
129
|
<div className="flex items-center gap-3">
|
|
121
130
|
<TooltipProvider>
|
|
@@ -128,11 +137,11 @@ function KbdMicroShowcase() {
|
|
|
128
137
|
}
|
|
129
138
|
/>
|
|
130
139
|
<TooltipPortal>
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
<TooltipContent>
|
|
141
|
+
Lưu tài liệu <Kbd>⌘</Kbd>
|
|
142
|
+
<Kbd>S</Kbd>
|
|
143
|
+
</TooltipContent>
|
|
144
|
+
</TooltipPortal>
|
|
136
145
|
</Tooltip>
|
|
137
146
|
</TooltipProvider>
|
|
138
147
|
|
|
@@ -146,11 +155,11 @@ function KbdMicroShowcase() {
|
|
|
146
155
|
}
|
|
147
156
|
/>
|
|
148
157
|
<TooltipPortal>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
158
|
+
<TooltipContent>
|
|
159
|
+
Sao chép <Kbd>⌘</Kbd>
|
|
160
|
+
<Kbd>C</Kbd>
|
|
161
|
+
</TooltipContent>
|
|
162
|
+
</TooltipPortal>
|
|
154
163
|
</Tooltip>
|
|
155
164
|
</TooltipProvider>
|
|
156
165
|
</div>
|
|
@@ -161,20 +170,22 @@ function KbdMicroShowcase() {
|
|
|
161
170
|
label="Use case — Menu với Keyboard Shortcut"
|
|
162
171
|
description="Kbd dùng trong DropdownMenuItem để hiển thị phím tắt bên cạnh label — pattern phổ biến trong text editor, IDE, Figma."
|
|
163
172
|
codeString={`<DropdownMenuItem>
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
</
|
|
173
|
+
<FileIcon />
|
|
174
|
+
New File
|
|
175
|
+
<KbdGroup className="ml-auto">
|
|
176
|
+
<Kbd>⌘</Kbd>
|
|
177
|
+
<Kbd>N</Kbd>
|
|
178
|
+
</KbdGroup>
|
|
179
|
+
</DropdownMenuItem>
|
|
170
180
|
|
|
171
|
-
<DropdownMenuItem>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
</
|
|
181
|
+
<DropdownMenuItem>
|
|
182
|
+
<SaveIcon />
|
|
183
|
+
Save
|
|
184
|
+
<KbdGroup className="ml-auto">
|
|
185
|
+
<Kbd>⌘</Kbd>
|
|
186
|
+
<Kbd>S</Kbd>
|
|
187
|
+
</KbdGroup>
|
|
188
|
+
</DropdownMenuItem>`}
|
|
178
189
|
>
|
|
179
190
|
<DropdownMenu>
|
|
180
191
|
<DropdownMenuTrigger
|
|
@@ -226,8 +237,13 @@ function KbdMicroShowcase() {
|
|
|
226
237
|
label="Gợi ý inline trong văn bản"
|
|
227
238
|
description="Kbd dùng inline trong đoạn văn bản để gợi ý phím tắt — phổ biến trong help text, onboarding, documentation."
|
|
228
239
|
codeString={`<p className="text-sm text-muted-foreground">
|
|
229
|
-
|
|
230
|
-
|
|
240
|
+
Nhấn <Kbd>Enter</Kbd> để gửi, hoặc{" "}
|
|
241
|
+
<KbdGroup>
|
|
242
|
+
<Kbd>⇧</Kbd>
|
|
243
|
+
<Kbd>Enter</Kbd>
|
|
244
|
+
</KbdGroup>{" "}
|
|
245
|
+
để xuống dòng.
|
|
246
|
+
</p>`}
|
|
231
247
|
>
|
|
232
248
|
<div className="space-y-3">
|
|
233
249
|
<p className="text-sm text-muted-foreground">
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Label } from "../../components/micro/label";
|
|
1
2
|
import { useDevContext } from "../../dev/components/dev-context";
|
|
2
3
|
import {
|
|
3
4
|
DocsCode,
|
|
@@ -6,9 +7,6 @@ import {
|
|
|
6
7
|
Showcase,
|
|
7
8
|
ShowcaseDocs,
|
|
8
9
|
} from "../../dev/components/showcase";
|
|
9
|
-
import { useState } from "react";
|
|
10
|
-
|
|
11
|
-
import { Label } from "../../components/micro/label";
|
|
12
10
|
import { type Size } from "../../lib/types";
|
|
13
11
|
|
|
14
12
|
// ──────────────────────────────────────────────────────────
|
|
@@ -20,10 +18,7 @@ function LabelMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
20
18
|
<ExampleSection
|
|
21
19
|
label="Default"
|
|
22
20
|
description="Cách sử dụng nhãn tiêu chuẩn."
|
|
23
|
-
codeString={`<Label htmlFor="terms">
|
|
24
|
-
Accept terms and conditions
|
|
25
|
-
</Label>
|
|
26
|
-
`}
|
|
21
|
+
codeString={`<Label htmlFor="terms">Accept terms and conditions</Label>`}
|
|
27
22
|
>
|
|
28
23
|
<Label htmlFor="terms" size={globalSize}>
|
|
29
24
|
Accept terms and conditions
|
|
@@ -34,11 +29,8 @@ function LabelMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
34
29
|
label="Disabled"
|
|
35
30
|
description="Trạng thái bị vô hiệu hóa khi nằm trong group bị vô hiệu."
|
|
36
31
|
codeString={`<div data-disabled="true" className="group">
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
</Label>
|
|
40
|
-
</div>
|
|
41
|
-
`}
|
|
32
|
+
<Label htmlFor="disabled">This label is disabled</Label>
|
|
33
|
+
</div>`}
|
|
42
34
|
>
|
|
43
35
|
<div data-disabled="true" className="group">
|
|
44
36
|
<Label htmlFor="disabled" size={globalSize}>
|
|
@@ -51,11 +43,8 @@ function LabelMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
51
43
|
label="Error State"
|
|
52
44
|
description="Hiển thị màu đỏ khi nằm trong group bị lỗi (data-invalid)."
|
|
53
45
|
codeString={`<div data-invalid="true" className="group">
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
</Label>
|
|
57
|
-
</div>
|
|
58
|
-
`}
|
|
46
|
+
<Label htmlFor="error">Email is required</Label>
|
|
47
|
+
</div>`}
|
|
59
48
|
>
|
|
60
49
|
<div data-invalid="true" className="group">
|
|
61
50
|
<Label htmlFor="error" size={globalSize}>
|
|
@@ -68,12 +57,16 @@ function LabelMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
68
57
|
label="With Peer Input"
|
|
69
58
|
description="Phản hồi trạng thái disabled của input liền kề (dùng class peer)."
|
|
70
59
|
codeString={`<div className="flex items-center gap-2">
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
60
|
+
<input
|
|
61
|
+
type="checkbox"
|
|
62
|
+
disabled
|
|
63
|
+
id="peer-disabled"
|
|
64
|
+
className="peer w-4 h-4"
|
|
65
|
+
/>
|
|
66
|
+
<Label htmlFor="peer-disabled">
|
|
67
|
+
Disabled by peer checkbox
|
|
68
|
+
</Label>
|
|
69
|
+
</div>`}
|
|
77
70
|
>
|
|
78
71
|
<div className="flex items-center gap-2">
|
|
79
72
|
<input
|