gladvn 0.2.17 → 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.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 +1 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { useDevContext } from "../../dev/components/dev-context";
|
|
2
1
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
3
|
-
import { useState } from "react";
|
|
4
2
|
import { Controller, useForm } from "react-hook-form";
|
|
5
3
|
import * as z from "zod";
|
|
6
4
|
|
|
5
|
+
import { RadioGroupPreset } from "../../components/macro/radio-group-preset";
|
|
6
|
+
import { Button } from "../../components/micro/button";
|
|
7
|
+
import { Field, FieldError, FieldLabel } from "../../components/micro/field";
|
|
8
|
+
import { Label } from "../../components/micro/label";
|
|
9
|
+
import { RadioGroup, RadioGroupItem } from "../../components/micro/radio-group";
|
|
10
|
+
import { useDevContext } from "../../dev/components/dev-context";
|
|
7
11
|
import {
|
|
8
12
|
DocsCode,
|
|
9
13
|
DocsH3,
|
|
@@ -15,12 +19,6 @@ import {
|
|
|
15
19
|
} from "../../dev/components/showcase";
|
|
16
20
|
import { type Size } from "../../lib/types";
|
|
17
21
|
|
|
18
|
-
import { RadioGroupPreset } from "../../components/macro/radio-group-preset";
|
|
19
|
-
import { Button } from "../../components/micro/button";
|
|
20
|
-
import { Field, FieldError, FieldLabel } from "../../components/micro/field";
|
|
21
|
-
import { Label } from "../../components/micro/label";
|
|
22
|
-
import { RadioGroup, RadioGroupItem } from "../../components/micro/radio-group";
|
|
23
|
-
|
|
24
22
|
// ──────────────────────────────────────────────────────────
|
|
25
23
|
// RHF Form Demo (Macro)
|
|
26
24
|
// ──────────────────────────────────────────────────────────
|
|
@@ -108,7 +106,8 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
108
106
|
<ExampleSection
|
|
109
107
|
label="Tiêu chuẩn"
|
|
110
108
|
description="Nhóm radio cơ bản với mảng options."
|
|
111
|
-
codeString={`<RadioGroupPreset
|
|
109
|
+
codeString={`<RadioGroupPreset
|
|
110
|
+
className="w-full"
|
|
112
111
|
label="Sở thích"
|
|
113
112
|
description="Chọn một ngôn ngữ lập trình bạn yêu thích nhất."
|
|
114
113
|
options={[
|
|
@@ -117,8 +116,7 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
117
116
|
{ value: "rust", label: "Rust" },
|
|
118
117
|
]}
|
|
119
118
|
defaultValue="ts"
|
|
120
|
-
|
|
121
|
-
`}
|
|
119
|
+
/>`}
|
|
122
120
|
>
|
|
123
121
|
<RadioGroupPreset
|
|
124
122
|
className="w-full"
|
|
@@ -138,16 +136,15 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
138
136
|
label="Trạng thái Lỗi (Error)"
|
|
139
137
|
description="Báo lỗi khi form submit mà user chưa chọn."
|
|
140
138
|
codeString={`<div className="w-full flex flex-col gap-6">
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
</div
|
|
150
|
-
`}
|
|
139
|
+
<RadioGroupPreset
|
|
140
|
+
label="Gói dịch vụ (Lỗi)"
|
|
141
|
+
options={[
|
|
142
|
+
{ value: "free", label: "Miễn phí" },
|
|
143
|
+
{ value: "pro", label: "Trả phí" },
|
|
144
|
+
]}
|
|
145
|
+
errorMessage="Vui lòng chọn một gói dịch vụ để tiếp tục."
|
|
146
|
+
/>
|
|
147
|
+
</div>`}
|
|
151
148
|
>
|
|
152
149
|
<div className="w-full flex flex-col gap-6">
|
|
153
150
|
<RadioGroupPreset
|
|
@@ -167,17 +164,21 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
167
164
|
<ExampleSection
|
|
168
165
|
label="Mô tả cho từng Option"
|
|
169
166
|
description="Truyền description vào mảng options để chú thích chi tiết."
|
|
170
|
-
codeString={`<RadioGroupPreset
|
|
167
|
+
codeString={`<RadioGroupPreset
|
|
168
|
+
className="w-full"
|
|
171
169
|
label="Giao diện (Theme)"
|
|
172
170
|
description="Chế độ Mặc định hệ thống sẽ tự động đồng bộ theo OS."
|
|
173
171
|
options={[
|
|
174
172
|
{ value: "light", label: "Sáng (Light)" },
|
|
175
173
|
{ value: "dark", label: "Tối (Dark)" },
|
|
176
|
-
{
|
|
174
|
+
{
|
|
175
|
+
value: "system",
|
|
176
|
+
label: "Theo hệ thống",
|
|
177
|
+
description: "Khuyên dùng để tiết kiệm pin",
|
|
178
|
+
},
|
|
177
179
|
]}
|
|
178
180
|
defaultValue="system"
|
|
179
|
-
|
|
180
|
-
`}
|
|
181
|
+
/>`}
|
|
181
182
|
>
|
|
182
183
|
<RadioGroupPreset
|
|
183
184
|
className="w-full"
|
|
@@ -200,7 +201,8 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
200
201
|
<ExampleSection
|
|
201
202
|
label="Khóa / Bất hoạt (Disabled)"
|
|
202
203
|
description="Người dùng không thể tương tác với form."
|
|
203
|
-
codeString={`<RadioGroupPreset
|
|
204
|
+
codeString={`<RadioGroupPreset
|
|
205
|
+
className="w-full"
|
|
204
206
|
label="Phiên bản (Disabled)"
|
|
205
207
|
description="Bạn không thể hạ cấp phiên bản tại thời điểm này."
|
|
206
208
|
options={[
|
|
@@ -209,8 +211,7 @@ function RadioGroupMacroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
209
211
|
]}
|
|
210
212
|
defaultValue="v2"
|
|
211
213
|
disabled
|
|
212
|
-
|
|
213
|
-
`}
|
|
214
|
+
/>`}
|
|
214
215
|
>
|
|
215
216
|
<RadioGroupPreset
|
|
216
217
|
className="w-full"
|
|
@@ -250,17 +251,29 @@ function RadioGroupMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
250
251
|
<ExampleSection
|
|
251
252
|
label="Cơ bản (Primitive)"
|
|
252
253
|
description="Ghép nối thủ công RadioGroupItem và Label."
|
|
253
|
-
codeString={`<RadioGroup
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
254
|
+
codeString={`<RadioGroup
|
|
255
|
+
defaultValue="comfortable"
|
|
256
|
+
className="flex flex-col gap-2 w-full"
|
|
257
|
+
>
|
|
258
|
+
<div className="flex items-center gap-3">
|
|
259
|
+
<RadioGroupItem value="default" id="rg-m-1" />
|
|
260
|
+
<Label
|
|
261
|
+
htmlFor="rg-m-1"
|
|
262
|
+
className="cursor-pointer font-normal"
|
|
263
|
+
>
|
|
264
|
+
Mặc định
|
|
265
|
+
</Label>
|
|
266
|
+
</div>
|
|
267
|
+
<div className="flex items-center gap-3">
|
|
268
|
+
<RadioGroupItem value="comfortable" id="rg-m-2" />
|
|
269
|
+
<Label
|
|
270
|
+
htmlFor="rg-m-2"
|
|
271
|
+
className="cursor-pointer font-normal"
|
|
272
|
+
>
|
|
273
|
+
Thoải mái
|
|
274
|
+
</Label>
|
|
275
|
+
</div>
|
|
276
|
+
</RadioGroup>`}
|
|
264
277
|
>
|
|
265
278
|
<RadioGroup
|
|
266
279
|
defaultValue="comfortable"
|
|
@@ -289,23 +302,42 @@ function RadioGroupMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
289
302
|
label="Bố cục Ngang (Horizontal)"
|
|
290
303
|
description="Hiển thị các tuỳ chọn trên một hàng ngang."
|
|
291
304
|
codeString={`<div className="space-y-3 w-full">
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
<
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
</div>
|
|
308
|
-
|
|
305
|
+
<Label className="block text-muted-foreground">
|
|
306
|
+
Kích thước
|
|
307
|
+
</Label>
|
|
308
|
+
<RadioGroup
|
|
309
|
+
defaultValue="m"
|
|
310
|
+
className="flex items-center gap-6"
|
|
311
|
+
>
|
|
312
|
+
<div className="flex items-center gap-2">
|
|
313
|
+
<RadioGroupItem value="s" id="rg-s" />
|
|
314
|
+
<Label
|
|
315
|
+
htmlFor="rg-s"
|
|
316
|
+
className="cursor-pointer font-normal"
|
|
317
|
+
>
|
|
318
|
+
S
|
|
319
|
+
</Label>
|
|
320
|
+
</div>
|
|
321
|
+
<div className="flex items-center gap-2">
|
|
322
|
+
<RadioGroupItem value="m" id="rg-m" />
|
|
323
|
+
<Label
|
|
324
|
+
htmlFor="rg-m"
|
|
325
|
+
className="cursor-pointer font-normal"
|
|
326
|
+
>
|
|
327
|
+
M
|
|
328
|
+
</Label>
|
|
329
|
+
</div>
|
|
330
|
+
<div className="flex items-center gap-2">
|
|
331
|
+
<RadioGroupItem value="l" id="rg-l" />
|
|
332
|
+
<Label
|
|
333
|
+
htmlFor="rg-l"
|
|
334
|
+
className="cursor-pointer font-normal"
|
|
335
|
+
>
|
|
336
|
+
L
|
|
337
|
+
</Label>
|
|
338
|
+
</div>
|
|
339
|
+
</RadioGroup>
|
|
340
|
+
</div>`}
|
|
309
341
|
>
|
|
310
342
|
<div className="space-y-3 w-full">
|
|
311
343
|
<Label className="block text-muted-foreground">Kích thước</Label>
|
|
@@ -338,38 +370,40 @@ function RadioGroupMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
338
370
|
label="Ghép nối Field thủ công"
|
|
339
371
|
description="Tạo layout RadioGroup phức tạp với Field."
|
|
340
372
|
codeString={`<Field data-invalid={true} className="w-full gap-4">
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
</Field>
|
|
372
|
-
|
|
373
|
+
<FieldLabel>Gói cước của bạn</FieldLabel>
|
|
374
|
+
<RadioGroup
|
|
375
|
+
defaultValue="monthly"
|
|
376
|
+
className="flex flex-col gap-2"
|
|
377
|
+
>
|
|
378
|
+
<Field orientation="horizontal">
|
|
379
|
+
<RadioGroupItem
|
|
380
|
+
value="monthly"
|
|
381
|
+
id="plan-1"
|
|
382
|
+
aria-invalid={true}
|
|
383
|
+
/>
|
|
384
|
+
<FieldLabel
|
|
385
|
+
htmlFor="plan-1"
|
|
386
|
+
className="font-normal cursor-pointer"
|
|
387
|
+
>
|
|
388
|
+
Thanh toán tháng ($10/mo)
|
|
389
|
+
</FieldLabel>
|
|
390
|
+
</Field>
|
|
391
|
+
<Field orientation="horizontal">
|
|
392
|
+
<RadioGroupItem
|
|
393
|
+
value="yearly"
|
|
394
|
+
id="plan-2"
|
|
395
|
+
aria-invalid={true}
|
|
396
|
+
/>
|
|
397
|
+
<FieldLabel
|
|
398
|
+
htmlFor="plan-2"
|
|
399
|
+
className="font-normal cursor-pointer"
|
|
400
|
+
>
|
|
401
|
+
Thanh toán năm ($100/yr)
|
|
402
|
+
</FieldLabel>
|
|
403
|
+
</Field>
|
|
404
|
+
</RadioGroup>
|
|
405
|
+
<FieldError>Thẻ của bạn đã bị từ chối.</FieldError>
|
|
406
|
+
</Field>`}
|
|
373
407
|
>
|
|
374
408
|
<Field data-invalid={true} className="w-full gap-4">
|
|
375
409
|
<FieldLabel>Gói cước của bạn</FieldLabel>
|
|
@@ -410,25 +444,35 @@ function RadioGroupMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
410
444
|
<ExampleSection
|
|
411
445
|
label="Card Layout (UI Nâng cao)"
|
|
412
446
|
description="Radio nhưng thiết kế dưới dạng Card để bấm."
|
|
413
|
-
codeString={`<RadioGroup
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary cursor-pointer gap-4"
|
|
447
|
+
codeString={`<RadioGroup
|
|
448
|
+
defaultValue="card-2"
|
|
449
|
+
className="grid grid-cols-2 gap-4 w-full"
|
|
417
450
|
>
|
|
418
|
-
<
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
451
|
+
<Label
|
|
452
|
+
htmlFor="card-1"
|
|
453
|
+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary cursor-pointer gap-4"
|
|
454
|
+
>
|
|
455
|
+
<RadioGroupItem
|
|
456
|
+
value="card-1"
|
|
457
|
+
id="card-1"
|
|
458
|
+
className="sr-only"
|
|
459
|
+
/>
|
|
460
|
+
<div className="text-xl">☀️</div>
|
|
461
|
+
<span>Sáng</span>
|
|
462
|
+
</Label>
|
|
463
|
+
<Label
|
|
464
|
+
htmlFor="card-2"
|
|
465
|
+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary cursor-pointer gap-4"
|
|
466
|
+
>
|
|
467
|
+
<RadioGroupItem
|
|
468
|
+
value="card-2"
|
|
469
|
+
id="card-2"
|
|
470
|
+
className="sr-only"
|
|
471
|
+
/>
|
|
472
|
+
<div className="text-xl">🌙</div>
|
|
473
|
+
<span>Tối</span>
|
|
474
|
+
</Label>
|
|
475
|
+
</RadioGroup>`}
|
|
432
476
|
>
|
|
433
477
|
<RadioGroup
|
|
434
478
|
defaultValue="card-2"
|
|
@@ -459,39 +503,78 @@ function RadioGroupMicroShowcase({ globalSize }: { globalSize: Size }) {
|
|
|
459
503
|
description="So sánh nhanh khi nào dùng Micro và Macro."
|
|
460
504
|
fullWidth
|
|
461
505
|
codeString={`<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
506
|
+
{/* Story 1: Macro wins */}
|
|
507
|
+
<div className="rounded-xl border border-border bg-card p-5 flex flex-col gap-4">
|
|
508
|
+
<div className="flex items-start gap-3">
|
|
509
|
+
<span className="mt-0.5 shrink-0 rounded-full bg-green-500/10 p-1.5 text-green-600">
|
|
510
|
+
<svg
|
|
511
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
512
|
+
className="size-4"
|
|
513
|
+
viewBox="0 0 24 24"
|
|
514
|
+
fill="none"
|
|
515
|
+
stroke="currentColor"
|
|
516
|
+
strokeWidth="2"
|
|
517
|
+
strokeLinecap="round"
|
|
518
|
+
strokeLinejoin="round"
|
|
519
|
+
aria-hidden="true"
|
|
520
|
+
>
|
|
521
|
+
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
|
|
522
|
+
</svg>
|
|
523
|
+
</span>
|
|
524
|
+
<div>
|
|
525
|
+
<p className="text-xs font-semibold uppercase tracking-wider text-muted-foreground">
|
|
526
|
+
Story 1 · Dùng Macro
|
|
527
|
+
</p>
|
|
528
|
+
<h3 className="mt-0.5 text-sm font-semibold text-foreground">
|
|
529
|
+
Câu hỏi khảo sát
|
|
530
|
+
</h3>
|
|
531
|
+
</div>
|
|
471
532
|
</div>
|
|
533
|
+
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
534
|
+
Bạn cần làm một danh sách dài các tuỳ chọn dạng chữ
|
|
535
|
+
từ trên xuống dưới. Macro{" "}
|
|
536
|
+
<DocsCode>RadioGroupPreset</DocsCode> sinh ra để xử
|
|
537
|
+
lý việc này nhanh gọn qua thuộc tính{" "}
|
|
538
|
+
<DocsCode>options</DocsCode>.
|
|
539
|
+
</p>
|
|
472
540
|
</div>
|
|
473
|
-
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
474
|
-
Bạn cần làm một danh sách dài các tuỳ chọn dạng chữ từ trên xuống dưới. Macro <DocsCode>RadioGroupPreset</DocsCode> sinh ra để xử lý việc này nhanh gọn qua thuộc tính <DocsCode>options</DocsCode>.
|
|
475
|
-
</p>
|
|
476
|
-
</div>
|
|
477
541
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
542
|
+
{/* Story 2: Micro wins */}
|
|
543
|
+
<div className="rounded-xl border border-border bg-card p-5 flex flex-col gap-4">
|
|
544
|
+
<div className="flex items-start gap-3">
|
|
545
|
+
<span className="mt-0.5 shrink-0 rounded-full bg-blue-500/10 p-1.5 text-blue-600">
|
|
546
|
+
<svg
|
|
547
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
548
|
+
className="size-4"
|
|
549
|
+
viewBox="0 0 24 24"
|
|
550
|
+
fill="none"
|
|
551
|
+
stroke="currentColor"
|
|
552
|
+
strokeWidth="2"
|
|
553
|
+
strokeLinecap="round"
|
|
554
|
+
strokeLinejoin="round"
|
|
555
|
+
aria-hidden="true"
|
|
556
|
+
>
|
|
557
|
+
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" />
|
|
558
|
+
</svg>
|
|
559
|
+
</span>
|
|
560
|
+
<div>
|
|
561
|
+
<p className="text-xs font-semibold uppercase tracking-wider text-muted-foreground">
|
|
562
|
+
Story 2 · Dùng Micro
|
|
563
|
+
</p>
|
|
564
|
+
<h3 className="mt-0.5 text-sm font-semibold text-foreground">
|
|
565
|
+
Radio Ẩn (Hidden Radio Card)
|
|
566
|
+
</h3>
|
|
567
|
+
</div>
|
|
487
568
|
</div>
|
|
569
|
+
<p className="text-xs text-muted-foreground leading-relaxed">
|
|
570
|
+
Bạn muốn người dùng click vào một khối Card lớn
|
|
571
|
+
(chứa ảnh sản phẩm, mô tả) thay vì click vào nút
|
|
572
|
+
tròn. Bạn sẽ dùng Micro để ẩn đi{" "}
|
|
573
|
+
<DocsCode>RadioGroupItem</DocsCode> và style{" "}
|
|
574
|
+
<DocsCode>Label</DocsCode> thành 1 cái thẻ Card.
|
|
575
|
+
</p>
|
|
488
576
|
</div>
|
|
489
|
-
|
|
490
|
-
Bạn muốn người dùng click vào một khối Card lớn (chứa ảnh sản phẩm, mô tả) thay vì click vào nút tròn. Bạn sẽ dùng Micro để ẩn đi <DocsCode>RadioGroupItem</DocsCode> và style <DocsCode>Label</DocsCode> thành 1 cái thẻ Card.
|
|
491
|
-
</p>
|
|
492
|
-
</div>
|
|
493
|
-
</div>
|
|
494
|
-
`}
|
|
577
|
+
</div>`}
|
|
495
578
|
>
|
|
496
579
|
<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
497
580
|
{/* Story 1: Macro wins */}
|
|
@@ -23,21 +23,25 @@ function ResizableMicroShowcase() {
|
|
|
23
23
|
label="Horizontal Split"
|
|
24
24
|
description="Kéo tay cầm để thay đổi kích thước bảng theo chiều ngang."
|
|
25
25
|
codeString={`<ResizablePanelGroup
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
orientation="horizontal"
|
|
27
|
+
className="max-w-md rounded-xl border border-border bg-card"
|
|
28
|
+
>
|
|
29
|
+
<ResizablePanel defaultSize={50}>
|
|
30
|
+
<div className="flex h-[200px] items-center justify-center p-6">
|
|
31
|
+
<span className="font-semibold text-sm">
|
|
32
|
+
Sidebar
|
|
33
|
+
</span>
|
|
34
|
+
</div>
|
|
35
|
+
</ResizablePanel>
|
|
36
|
+
<ResizableHandle withHandle />
|
|
37
|
+
<ResizablePanel defaultSize={50}>
|
|
38
|
+
<div className="flex h-full items-center justify-center p-6">
|
|
39
|
+
<span className="font-semibold text-sm">
|
|
40
|
+
Content
|
|
41
|
+
</span>
|
|
42
|
+
</div>
|
|
43
|
+
</ResizablePanel>
|
|
44
|
+
</ResizablePanelGroup>`}
|
|
41
45
|
>
|
|
42
46
|
<ResizablePanelGroup
|
|
43
47
|
orientation="horizontal"
|
|
@@ -62,21 +66,23 @@ function ResizableMicroShowcase() {
|
|
|
62
66
|
label="Vertical Split"
|
|
63
67
|
description='orientation="vertical" chia bảng theo chiều dọc.'
|
|
64
68
|
codeString={`<ResizablePanelGroup
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
</
|
|
69
|
+
orientation="vertical"
|
|
70
|
+
className="max-w-md rounded-xl border border-border bg-card"
|
|
71
|
+
>
|
|
72
|
+
<ResizablePanel defaultSize={50}>
|
|
73
|
+
<div className="flex h-[120px] items-center justify-center p-6">
|
|
74
|
+
<span className="font-semibold text-sm">Top</span>
|
|
75
|
+
</div>
|
|
76
|
+
</ResizablePanel>
|
|
77
|
+
<ResizableHandle withHandle />
|
|
78
|
+
<ResizablePanel defaultSize={50}>
|
|
79
|
+
<div className="flex h-[120px] items-center justify-center p-6">
|
|
80
|
+
<span className="font-semibold text-sm">
|
|
81
|
+
Bottom
|
|
82
|
+
</span>
|
|
83
|
+
</div>
|
|
84
|
+
</ResizablePanel>
|
|
85
|
+
</ResizablePanelGroup>`}
|
|
80
86
|
>
|
|
81
87
|
<ResizablePanelGroup
|
|
82
88
|
orientation="vertical"
|
|
@@ -150,31 +156,35 @@ function ResizableMicroShowcase() {
|
|
|
150
156
|
label="Nested Layout"
|
|
151
157
|
description="Bố cục phức tạp với các nhóm có thể thay đổi kích thước lồng nhau."
|
|
152
158
|
codeString={`<ResizablePanelGroup
|
|
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
|
-
</
|
|
159
|
+
orientation="horizontal"
|
|
160
|
+
className="max-w-md rounded-xl border border-border bg-card"
|
|
161
|
+
>
|
|
162
|
+
<ResizablePanel defaultSize={25} minSize={15}>
|
|
163
|
+
<div className="flex h-[250px] items-center justify-center p-6">
|
|
164
|
+
<span className="font-semibold text-sm">Nav</span>
|
|
165
|
+
</div>
|
|
166
|
+
</ResizablePanel>
|
|
167
|
+
<ResizableHandle />
|
|
168
|
+
<ResizablePanel defaultSize={75}>
|
|
169
|
+
<ResizablePanelGroup orientation="vertical">
|
|
170
|
+
<ResizablePanel defaultSize={25} minSize={20}>
|
|
171
|
+
<div className="flex h-full items-center justify-center p-6">
|
|
172
|
+
<span className="font-semibold text-sm">
|
|
173
|
+
Top Bar
|
|
174
|
+
</span>
|
|
175
|
+
</div>
|
|
176
|
+
</ResizablePanel>
|
|
177
|
+
<ResizableHandle />
|
|
178
|
+
<ResizablePanel defaultSize={75}>
|
|
179
|
+
<div className="flex h-full items-center justify-center p-6">
|
|
180
|
+
<span className="font-semibold text-sm">
|
|
181
|
+
Main Content
|
|
182
|
+
</span>
|
|
183
|
+
</div>
|
|
184
|
+
</ResizablePanel>
|
|
185
|
+
</ResizablePanelGroup>
|
|
186
|
+
</ResizablePanel>
|
|
187
|
+
</ResizablePanelGroup>`}
|
|
178
188
|
>
|
|
179
189
|
<ResizablePanelGroup
|
|
180
190
|
orientation="horizontal"
|