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,15 +1,7 @@
|
|
|
1
|
-
import { useDevContext } from "../../dev/components/dev-context";
|
|
2
|
-
import {
|
|
3
|
-
DocsCode,
|
|
4
|
-
DocsP,
|
|
5
|
-
ExampleGrid,
|
|
6
|
-
ExampleSection,
|
|
7
|
-
Showcase,
|
|
8
|
-
ShowcaseDocs,
|
|
9
|
-
} from "../../dev/components/showcase";
|
|
10
|
-
import { FilterIcon, PanelRightIcon, SettingsIcon } from "lucide-react";
|
|
11
1
|
import { useState } from "react";
|
|
12
2
|
|
|
3
|
+
import { FilterIcon, PanelRightIcon, SettingsIcon } from "lucide-react";
|
|
4
|
+
|
|
13
5
|
import { Button } from "../../components/micro/button";
|
|
14
6
|
import { Input } from "../../components/micro/input";
|
|
15
7
|
import { Label } from "../../components/micro/label";
|
|
@@ -20,10 +12,19 @@ import {
|
|
|
20
12
|
SheetDescription,
|
|
21
13
|
SheetFooter,
|
|
22
14
|
SheetHeader,
|
|
15
|
+
SheetPortal,
|
|
23
16
|
SheetTitle,
|
|
24
17
|
SheetTrigger,
|
|
25
|
-
SheetPortal,
|
|
26
18
|
} from "../../components/micro/sheet";
|
|
19
|
+
import { useDevContext } from "../../dev/components/dev-context";
|
|
20
|
+
import {
|
|
21
|
+
DocsCode,
|
|
22
|
+
DocsP,
|
|
23
|
+
ExampleGrid,
|
|
24
|
+
ExampleSection,
|
|
25
|
+
Showcase,
|
|
26
|
+
ShowcaseDocs,
|
|
27
|
+
} from "../../dev/components/showcase";
|
|
27
28
|
import { type Size } from "../../lib/types";
|
|
28
29
|
|
|
29
30
|
// ──────────────────────────────────────────────────────────
|
|
@@ -39,36 +40,59 @@ function SheetMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
39
40
|
label="Hướng trượt (Side)"
|
|
40
41
|
description="Sheet có thể trượt ra từ bốn cạnh: right (mặc định), left, top, bottom."
|
|
41
42
|
codeString={`<Sheet>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
</
|
|
43
|
+
<SheetTrigger
|
|
44
|
+
render={
|
|
45
|
+
<Button variant="outline" className="capitalize">
|
|
46
|
+
right
|
|
47
|
+
</Button>
|
|
48
|
+
}
|
|
49
|
+
/>
|
|
50
|
+
<SheetPortal>
|
|
51
|
+
<SheetContent side="right">
|
|
52
|
+
<SheetHeader>
|
|
53
|
+
<SheetTitle>Edit Profile</SheetTitle>
|
|
54
|
+
<SheetDescription>
|
|
55
|
+
Thay đổi thông tin tài khoản của bạn và nhấn
|
|
56
|
+
Lưu.
|
|
57
|
+
</SheetDescription>
|
|
58
|
+
</SheetHeader>
|
|
59
|
+
<div className="grid gap-4 py-4 px-4">
|
|
60
|
+
<div className="grid grid-cols-4 items-center gap-4">
|
|
61
|
+
<Label
|
|
62
|
+
htmlFor="name-right"
|
|
63
|
+
className="text-right"
|
|
64
|
+
>
|
|
65
|
+
Tên
|
|
66
|
+
</Label>
|
|
67
|
+
<Input
|
|
68
|
+
id="name-right"
|
|
69
|
+
defaultValue="Pedro Duarte"
|
|
70
|
+
className="col-span-3"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
<div className="grid grid-cols-4 items-center gap-4">
|
|
74
|
+
<Label
|
|
75
|
+
htmlFor="username-right"
|
|
76
|
+
className="text-right"
|
|
77
|
+
>
|
|
78
|
+
Username
|
|
79
|
+
</Label>
|
|
80
|
+
<Input
|
|
81
|
+
id="username-right"
|
|
82
|
+
defaultValue="@peduarte"
|
|
83
|
+
className="col-span-3"
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
<SheetFooter>
|
|
88
|
+
<SheetClose render={<Button variant="outline" />}>
|
|
89
|
+
Huỷ
|
|
90
|
+
</SheetClose>
|
|
91
|
+
<Button>Lưu thay đổi</Button>
|
|
92
|
+
</SheetFooter>
|
|
93
|
+
</SheetContent>
|
|
94
|
+
</SheetPortal>
|
|
95
|
+
</Sheet>`}
|
|
72
96
|
>
|
|
73
97
|
<div className="grid grid-cols-2 gap-2">
|
|
74
98
|
{/* top */}
|
|
@@ -283,17 +307,21 @@ function SheetMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
283
307
|
label="Có nút đóng (mặc định)"
|
|
284
308
|
description="showCloseButton={true} — nút X tự động hiển thị ở góc trên phải."
|
|
285
309
|
codeString={`<Sheet>
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
</
|
|
310
|
+
<SheetTrigger render={<Button variant="outline" />}>
|
|
311
|
+
<PanelRightIcon />
|
|
312
|
+
Mở Sheet
|
|
313
|
+
</SheetTrigger>
|
|
314
|
+
<SheetPortal>
|
|
315
|
+
<SheetContent side="right">
|
|
316
|
+
<SheetHeader>
|
|
317
|
+
<SheetTitle>Có nút đóng</SheetTitle>
|
|
318
|
+
<SheetDescription>
|
|
319
|
+
Nút X xuất hiện tự động.
|
|
320
|
+
</SheetDescription>
|
|
321
|
+
</SheetHeader>
|
|
322
|
+
</SheetContent>
|
|
323
|
+
</SheetPortal>
|
|
324
|
+
</Sheet>`}
|
|
297
325
|
>
|
|
298
326
|
<Sheet>
|
|
299
327
|
<SheetTrigger
|
|
@@ -318,24 +346,33 @@ function SheetMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
318
346
|
label="Ẩn nút đóng"
|
|
319
347
|
description="showCloseButton={false} — dùng khi muốn tự control nút đóng bên trong nội dung."
|
|
320
348
|
codeString={`<Sheet>
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
349
|
+
<SheetTrigger render={<Button variant="outline" />}>
|
|
350
|
+
<PanelRightIcon />
|
|
351
|
+
Không có X
|
|
352
|
+
</SheetTrigger>
|
|
353
|
+
<SheetPortal>
|
|
354
|
+
<SheetContent side="right" showCloseButton={false}>
|
|
355
|
+
<SheetHeader>
|
|
356
|
+
<SheetTitle>Ẩn nút đóng</SheetTitle>
|
|
357
|
+
<SheetDescription>
|
|
358
|
+
Consumer tự render nút đóng trong footer.
|
|
359
|
+
</SheetDescription>
|
|
360
|
+
</SheetHeader>
|
|
361
|
+
<SheetFooter>
|
|
362
|
+
<SheetClose
|
|
363
|
+
render={
|
|
364
|
+
<Button
|
|
365
|
+
variant="outline"
|
|
366
|
+
className="w-full"
|
|
367
|
+
/>
|
|
368
|
+
}
|
|
369
|
+
>
|
|
370
|
+
Đóng thủ công
|
|
371
|
+
</SheetClose>
|
|
372
|
+
</SheetFooter>
|
|
373
|
+
</SheetContent>
|
|
374
|
+
</SheetPortal>
|
|
375
|
+
</Sheet>`}
|
|
339
376
|
>
|
|
340
377
|
<Sheet>
|
|
341
378
|
<SheetTrigger
|
|
@@ -377,37 +414,39 @@ function SheetMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
377
414
|
label="Controlled State"
|
|
378
415
|
description="Quản lý trạng thái đóng/mở qua React state với open và onOpenChange."
|
|
379
416
|
codeString={`const [open, setOpen] = useState(false);
|
|
380
|
-
|
|
381
|
-
<
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
</
|
|
417
|
+
<div className="flex items-center gap-4">
|
|
418
|
+
<Sheet open={open} onOpenChange={setOpen}>
|
|
419
|
+
<SheetTrigger render={<Button variant="outline" />}>
|
|
420
|
+
<SettingsIcon />
|
|
421
|
+
Toggle Controlled
|
|
422
|
+
</SheetTrigger>
|
|
423
|
+
<SheetPortal>
|
|
424
|
+
<SheetContent side="right">
|
|
425
|
+
<SheetHeader>
|
|
426
|
+
<SheetTitle>Controlled Mode</SheetTitle>
|
|
427
|
+
<SheetDescription>
|
|
428
|
+
Sheet được điều khiển hoàn toàn bởi React
|
|
429
|
+
state.
|
|
430
|
+
</SheetDescription>
|
|
431
|
+
</SheetHeader>
|
|
432
|
+
<SheetFooter>
|
|
433
|
+
<Button onClick={() => setOpen(false)}>
|
|
434
|
+
Đóng bằng state
|
|
435
|
+
</Button>
|
|
436
|
+
</SheetFooter>
|
|
437
|
+
</SheetContent>
|
|
438
|
+
</SheetPortal>
|
|
439
|
+
</Sheet>
|
|
440
|
+
<p className="text-sm text-muted-foreground">
|
|
441
|
+
Trạng thái:{" "}
|
|
442
|
+
<strong
|
|
443
|
+
data-active={open ? "" : undefined}
|
|
444
|
+
className="data-active:text-primary"
|
|
445
|
+
>
|
|
446
|
+
{open ? "Mở" : "Đóng"}
|
|
447
|
+
</strong>
|
|
448
|
+
</p>
|
|
449
|
+
</div>`}
|
|
411
450
|
>
|
|
412
451
|
<div className="flex items-center gap-4">
|
|
413
452
|
<Sheet open={open} onOpenChange={setOpen}>
|
|
@@ -451,39 +490,48 @@ function SheetMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
451
490
|
label="Use case — Filter Panel"
|
|
452
491
|
description="Sheet dùng làm bảng lọc dữ liệu bên phải — pattern phổ biến trong dashboard, table view."
|
|
453
492
|
codeString={`<Sheet>
|
|
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
|
-
</
|
|
493
|
+
<SheetTrigger render={<Button variant="outline" />}>
|
|
494
|
+
<FilterIcon />
|
|
495
|
+
Lọc dữ liệu
|
|
496
|
+
</SheetTrigger>
|
|
497
|
+
<SheetPortal>
|
|
498
|
+
<SheetContent side="right">
|
|
499
|
+
<SheetHeader>
|
|
500
|
+
<SheetTitle>Bộ lọc</SheetTitle>
|
|
501
|
+
<SheetDescription>
|
|
502
|
+
Tinh chỉnh kết quả hiển thị theo điều kiện.
|
|
503
|
+
</SheetDescription>
|
|
504
|
+
</SheetHeader>
|
|
505
|
+
<div className="flex flex-col gap-4 p-4">
|
|
506
|
+
<div className="flex flex-col gap-2">
|
|
507
|
+
<Label htmlFor="filter-status">
|
|
508
|
+
Trạng thái
|
|
509
|
+
</Label>
|
|
510
|
+
<Input
|
|
511
|
+
id="filter-status"
|
|
512
|
+
placeholder="Tất cả"
|
|
513
|
+
/>
|
|
514
|
+
</div>
|
|
515
|
+
<div className="flex flex-col gap-2">
|
|
516
|
+
<Label htmlFor="filter-date-from">
|
|
517
|
+
Từ ngày
|
|
518
|
+
</Label>
|
|
519
|
+
<Input id="filter-date-from" type="date" />
|
|
520
|
+
</div>
|
|
521
|
+
<div className="flex flex-col gap-2">
|
|
522
|
+
<Label htmlFor="filter-date-to">Đến ngày</Label>
|
|
523
|
+
<Input id="filter-date-to" type="date" />
|
|
524
|
+
</div>
|
|
525
|
+
</div>
|
|
526
|
+
<SheetFooter>
|
|
527
|
+
<SheetClose render={<Button variant="outline" />}>
|
|
528
|
+
Xoá bộ lọc
|
|
529
|
+
</SheetClose>
|
|
530
|
+
<Button>Áp dụng</Button>
|
|
531
|
+
</SheetFooter>
|
|
532
|
+
</SheetContent>
|
|
533
|
+
</SheetPortal>
|
|
534
|
+
</Sheet>`}
|
|
487
535
|
>
|
|
488
536
|
<Sheet>
|
|
489
537
|
<SheetTrigger render={<Button variant="outline" size={globalSize} />}>
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DocsP, ExampleSection, Showcase, ShowcaseDocs } from "../../dev/components/showcase";
|
|
2
1
|
import { FolderIcon, Package2Icon, SettingsIcon, UserIcon } from "lucide-react";
|
|
3
2
|
|
|
4
3
|
import {
|
|
@@ -9,6 +8,12 @@ import {
|
|
|
9
8
|
SidebarMenuItemList,
|
|
10
9
|
useSidebarToggle,
|
|
11
10
|
} from "../../components/micro/sidebar";
|
|
11
|
+
import {
|
|
12
|
+
DocsP,
|
|
13
|
+
ExampleSection,
|
|
14
|
+
Showcase,
|
|
15
|
+
ShowcaseDocs,
|
|
16
|
+
} from "../../dev/components/showcase";
|
|
12
17
|
|
|
13
18
|
function SidebarMicroShowcase() {
|
|
14
19
|
const { sidebarRef, toggleSidebar, defaultState } =
|
|
@@ -107,10 +112,9 @@ export default function SidebarShowcase() {
|
|
|
107
112
|
generalConcept={
|
|
108
113
|
<ShowcaseDocs>
|
|
109
114
|
<DocsP>
|
|
110
|
-
Sidebar tối giản chỉ dùng CSS và DOM attribute để chuyển
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
direct DOM mutation.
|
|
115
|
+
Sidebar tối giản chỉ dùng CSS và DOM attribute để chuyển trạng thái
|
|
116
|
+
expanded/collapsed. Không có JS transition, không re-render. Sử dụng
|
|
117
|
+
useSidebarToggle hook để toggle bằng direct DOM mutation.
|
|
114
118
|
</DocsP>
|
|
115
119
|
</ShowcaseDocs>
|
|
116
120
|
}
|
|
@@ -20,14 +20,13 @@ function SkeletonMicroShowcase() {
|
|
|
20
20
|
description="Thay đổi hình dạng thông qua các class Tailwind: w-..., h-..., rounded-full, v.v."
|
|
21
21
|
fullWidth
|
|
22
22
|
codeString={`<div className="flex flex-wrap items-center gap-6 w-full p-4 border border-border rounded-lg bg-card">
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</div
|
|
30
|
-
`}
|
|
23
|
+
<Skeleton className="h-4 w-48" />
|
|
24
|
+
<Skeleton className="h-4 w-32" />
|
|
25
|
+
<Skeleton className="h-4 w-64" />
|
|
26
|
+
<Skeleton className="size-12 rounded-full" />
|
|
27
|
+
<Skeleton className="h-24 w-40 rounded-xl" />
|
|
28
|
+
<Skeleton className="h-10 w-24 rounded-md" />
|
|
29
|
+
</div>`}
|
|
31
30
|
>
|
|
32
31
|
<div className="flex flex-wrap items-center gap-6 w-full p-4 border border-border rounded-lg bg-card">
|
|
33
32
|
<Skeleton className="h-4 w-48" />
|
|
@@ -44,19 +43,18 @@ function SkeletonMicroShowcase() {
|
|
|
44
43
|
label="Card Profile"
|
|
45
44
|
description="Khung xương mô phỏng ảnh đại diện, tên người dùng và số liệu."
|
|
46
45
|
codeString={`<div className="space-y-6 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
<div className="flex items-center space-x-4">
|
|
47
|
+
<Skeleton className="h-12 w-12 rounded-full" />
|
|
48
|
+
<div className="space-y-2">
|
|
49
|
+
<Skeleton className="h-4 w-[200px]" />
|
|
50
|
+
<Skeleton className="h-4 w-[150px]" />
|
|
51
|
+
</div>
|
|
52
52
|
</div>
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
</div
|
|
58
|
-
</div>
|
|
59
|
-
`}
|
|
53
|
+
<div className="grid grid-cols-2 gap-4">
|
|
54
|
+
<Skeleton className="h-24 rounded-xl" />
|
|
55
|
+
<Skeleton className="h-24 rounded-xl" />
|
|
56
|
+
</div>
|
|
57
|
+
</div>`}
|
|
60
58
|
>
|
|
61
59
|
<div className="space-y-6 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
62
60
|
<div className="flex items-center space-x-4">
|
|
@@ -77,16 +75,15 @@ function SkeletonMicroShowcase() {
|
|
|
77
75
|
label="Article / Blog Post"
|
|
78
76
|
description="Khung xương mô phỏng các đoạn văn bản (text blocks)."
|
|
79
77
|
codeString={`<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
</div
|
|
89
|
-
`}
|
|
78
|
+
<Skeleton className="h-6 w-3/4" />
|
|
79
|
+
<Skeleton className="h-4 w-full" />
|
|
80
|
+
<Skeleton className="h-4 w-full" />
|
|
81
|
+
<Skeleton className="h-4 w-5/6" />
|
|
82
|
+
<div className="pt-2" />
|
|
83
|
+
<Skeleton className="h-4 w-full" />
|
|
84
|
+
<Skeleton className="h-4 w-4/5" />
|
|
85
|
+
<Skeleton className="h-4 w-2/3" />
|
|
86
|
+
</div>`}
|
|
90
87
|
>
|
|
91
88
|
<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
92
89
|
<Skeleton className="h-6 w-3/4" />
|
|
@@ -106,29 +103,28 @@ function SkeletonMicroShowcase() {
|
|
|
106
103
|
label="List Items / Table Rows"
|
|
107
104
|
description="Sử dụng vòng lặp hoặc nhiều thẻ lặp lại để mô phỏng danh sách."
|
|
108
105
|
codeString={`<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
<div className="flex items-center space-x-4">
|
|
107
|
+
<Skeleton className="h-8 w-8 rounded-full" />
|
|
108
|
+
<div className="space-y-2">
|
|
109
|
+
<Skeleton className="h-3 w-[180px]" />
|
|
110
|
+
<Skeleton className="h-3 w-[100px]" />
|
|
111
|
+
</div>
|
|
114
112
|
</div>
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
113
|
+
<div className="flex items-center space-x-4">
|
|
114
|
+
<Skeleton className="h-8 w-8 rounded-full" />
|
|
115
|
+
<div className="space-y-2">
|
|
116
|
+
<Skeleton className="h-3 w-[150px]" />
|
|
117
|
+
<Skeleton className="h-3 w-[120px]" />
|
|
118
|
+
</div>
|
|
121
119
|
</div>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
<div className="flex items-center space-x-4">
|
|
121
|
+
<Skeleton className="h-8 w-8 rounded-full" />
|
|
122
|
+
<div className="space-y-2">
|
|
123
|
+
<Skeleton className="h-3 w-[170px]" />
|
|
124
|
+
<Skeleton className="h-3 w-[90px]" />
|
|
125
|
+
</div>
|
|
128
126
|
</div>
|
|
129
|
-
</div
|
|
130
|
-
</div>
|
|
131
|
-
`}
|
|
127
|
+
</div>`}
|
|
132
128
|
>
|
|
133
129
|
<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
134
130
|
<div className="flex items-center space-x-4">
|
|
@@ -159,16 +155,15 @@ function SkeletonMicroShowcase() {
|
|
|
159
155
|
label="Media / Image Placeholder"
|
|
160
156
|
description="Khung xương lớn mô phỏng hình ảnh hoặc video player."
|
|
161
157
|
codeString={`<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
158
|
+
<Skeleton className="h-48 w-full rounded-md" />
|
|
159
|
+
<div className="flex justify-between items-center pt-2">
|
|
160
|
+
<div className="space-y-2">
|
|
161
|
+
<Skeleton className="h-4 w-[150px]" />
|
|
162
|
+
<Skeleton className="h-3 w-[100px]" />
|
|
163
|
+
</div>
|
|
164
|
+
<Skeleton className="h-8 w-16 rounded-md" />
|
|
167
165
|
</div>
|
|
168
|
-
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
`}
|
|
166
|
+
</div>`}
|
|
172
167
|
>
|
|
173
168
|
<div className="space-y-4 w-full max-w-sm rounded-lg border border-border bg-card p-4">
|
|
174
169
|
<Skeleton className="h-48 w-full rounded-md" />
|