@baishuyun/ai-design 2.0.37 → 2.1.0-alpha.0
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/.storybook/main.ts +31 -31
- package/.storybook/preview.ts +16 -16
- package/CHANGELOG.md +512 -492
- package/components.json +22 -22
- package/package.json +9 -6
- package/scripts/strip-layers.cjs +41 -41
- package/src/components/abs-fullscreen-gradient-bg.tsx +35 -35
- package/src/components/agent-helper/agent-category-select-menu/index.tsx +57 -57
- package/src/components/agent-helper/agent-entry-card/index.tsx +94 -94
- package/src/components/agent-helper/agent-helper-card/index.tsx +179 -179
- package/src/components/agent-helper/agent-helper-card-list/index.tsx +59 -59
- package/src/components/agent-helper/agent-helper-main-layout/index.tsx +60 -60
- package/src/components/agent-helper/agent-sort-select/index.tsx +89 -89
- package/src/components/agent-helper/agent-tag/index.tsx +29 -29
- package/src/components/agent-helper/app-select/index.tsx +559 -559
- package/src/components/agent-helper/condition-group/index.tsx +75 -75
- package/src/components/agent-helper/condition-input/index.tsx +233 -233
- package/src/components/agent-helper/condition-item/index.tsx +237 -237
- package/src/components/agent-helper/condition-quantifier-select/index.tsx +142 -142
- package/src/components/agent-helper/condition-trigger-description/index.tsx +49 -49
- package/src/components/agent-helper/date-picker/calendar-panel.tsx +164 -164
- package/src/components/agent-helper/date-picker/date-input.tsx +91 -91
- package/src/components/agent-helper/date-picker/date-picker.tsx +327 -327
- package/src/components/agent-helper/date-picker/footer-panel.tsx +44 -44
- package/src/components/agent-helper/date-picker/index.ts +3 -3
- package/src/components/agent-helper/date-picker/month-panel.tsx +82 -82
- package/src/components/agent-helper/date-picker/time-panel.tsx +146 -146
- package/src/components/agent-helper/date-picker/types.ts +37 -37
- package/src/components/agent-helper/date-picker/utils.ts +121 -121
- package/src/components/agent-helper/date-picker/year-panel.tsx +86 -86
- package/src/components/agent-helper/exec-log-filter/index.tsx +232 -232
- package/src/components/agent-helper/field-edit-preference-select/index.tsx +291 -291
- package/src/components/agent-helper/field-select/index.tsx +466 -466
- package/src/components/agent-helper/field-value-input/china-address-data.ts +4117 -4117
- package/src/components/agent-helper/field-value-input/display.tsx +71 -71
- package/src/components/agent-helper/field-value-input/icons.tsx +38 -38
- package/src/components/agent-helper/field-value-input/index.tsx +144 -144
- package/src/components/agent-helper/field-value-input/inputs.tsx +247 -247
- package/src/components/agent-helper/field-value-input/picker-inputs.tsx +1141 -1141
- package/src/components/agent-helper/flow-node-action-trigger-select/index.tsx +57 -57
- package/src/components/agent-helper/form-action-trigger-select/index.tsx +60 -60
- package/src/components/agent-helper/form-divider/index.tsx +44 -44
- package/src/components/agent-helper/form-select/index.tsx +732 -732
- package/src/components/agent-helper/monthdays-select/index.tsx +378 -378
- package/src/components/agent-helper/offset-preference-select/index.tsx +268 -268
- package/src/components/agent-helper/offset-type-select/index.tsx +66 -66
- package/src/components/agent-helper/offset-unit-select/index.tsx +54 -54
- package/src/components/agent-helper/placeholder-card/index.tsx +75 -75
- package/src/components/agent-helper/prompt-input/index.tsx +646 -640
- package/src/components/agent-helper/relational-operator-select/index.tsx +179 -179
- package/src/components/agent-helper/repeat-by-type-select/index.tsx +53 -53
- package/src/components/agent-helper/repeat-preference-select/index.tsx +162 -162
- package/src/components/agent-helper/repeat-preference-type-select/index.tsx +58 -58
- package/src/components/agent-helper/search-input/index.tsx +35 -35
- package/src/components/agent-helper/table/index.tsx +114 -114
- package/src/components/agent-helper/trigger-select/index.tsx +121 -121
- package/src/components/agent-helper/trigger-time-preference-select/index.tsx +189 -189
- package/src/components/agent-helper/trigger-time-source-type-select/index.tsx +53 -53
- package/src/components/agent-helper/weekdays-select/index.tsx +230 -230
- package/src/components/agent-scroll-selector.tsx +193 -193
- package/src/components/agent-select.tsx +154 -154
- package/src/components/attachment-part-group.tsx +35 -35
- package/src/components/attachment-part.tsx +296 -296
- package/src/components/attachments-previewer.tsx +272 -272
- package/src/components/base-button.tsx +49 -49
- package/src/components/border-animation.tsx +107 -107
- package/src/components/border-color-animation.tsx +66 -66
- package/src/components/bot-avatar-name.tsx +36 -36
- package/src/components/bot-icon.tsx +23 -23
- package/src/components/bs-entry-select/app-group-folder.tsx +61 -61
- package/src/components/bs-entry-select/bs-entry-select.tsx +296 -296
- package/src/components/bs-entry-select/build-tree.ts +265 -265
- package/src/components/bs-entry-select/entry-item.tsx +45 -45
- package/src/components/bs-entry-select/entry-popover.tsx +99 -99
- package/src/components/bs-entry-select/index.ts +7 -7
- package/src/components/bs-entry-select/other-app-section.tsx +96 -96
- package/src/components/bs-entry-select/scroll-slider.tsx +872 -872
- package/src/components/bs-entry-select/search-input.tsx +4 -4
- package/src/components/bs-entry-select/tree-item-node.tsx +84 -84
- package/src/components/bs-entry-select/types.ts +46 -46
- package/src/components/bs-icons.tsx +1362 -1362
- package/src/components/card-field.tsx +23 -23
- package/src/components/card.tsx +36 -36
- package/src/components/chat-area-header.tsx +65 -65
- package/src/components/check-card.tsx +77 -77
- package/src/components/circle-checker.tsx +66 -66
- package/src/components/collapsible-txt-msg.tsx +75 -75
- package/src/components/collapsible.tsx +9 -9
- package/src/components/confirm-dialog.tsx +139 -139
- package/src/components/date-range-picker.tsx +91 -91
- package/src/components/fake-bot-msg.tsx +51 -51
- package/src/components/field-checker-list-msg.tsx +146 -146
- package/src/components/field-checker.tsx +185 -185
- package/src/components/field-icon.tsx +13 -13
- package/src/components/field-value-checker.tsx +116 -116
- package/src/components/fields-design-info-table.tsx +160 -160
- package/src/components/fields-generating-indicator.tsx +95 -95
- package/src/components/fields-portal.tsx +18 -18
- package/src/components/fields-previewer.tsx +216 -216
- package/src/components/font-icon.tsx +65 -65
- package/src/components/form-info-editor.tsx +263 -263
- package/src/components/formula-tag.tsx +32 -32
- package/src/components/generate-animation.tsx +56 -56
- package/src/components/icon-btn.tsx +43 -43
- package/src/components/icon-card.tsx +67 -67
- package/src/components/icons/calendar-icon.tsx +5 -5
- package/src/components/icons/clear-all-icon.tsx +5 -5
- package/src/components/icons/empty-agent-icon.tsx +93 -93
- package/src/components/icons/empty-table-icon.tsx +104 -104
- package/src/components/icons/grids-icon.tsx +5 -5
- package/src/components/img-part.tsx +27 -27
- package/src/components/legacy-slot.tsx +110 -110
- package/src/components/line-checker.tsx +168 -168
- package/src/components/linear-gradient-border-btn.tsx +48 -48
- package/src/components/linear-gradient-color-bg-animation.tsx +103 -103
- package/src/components/memoized-markdown.tsx +32 -32
- package/src/components/message-content.tsx +21 -21
- package/src/components/number-part.tsx +46 -46
- package/src/components/office-container.tsx +289 -265
- package/src/components/option-item.tsx +27 -27
- package/src/components/output-config-editor.tsx +478 -478
- package/src/components/previewer-header.tsx +270 -270
- package/src/components/primary-confirm-btn.tsx +58 -58
- package/src/components/primary-entry-btn.tsx +48 -48
- package/src/components/radio-card.tsx +63 -63
- package/src/components/scroll-to-bottom-btn.tsx +28 -28
- package/src/components/split-line.tsx +9 -9
- package/src/components/square-checker.tsx +87 -87
- package/src/components/subform-fields-value-checker.tsx +184 -184
- package/src/components/tab-radio-group.tsx +83 -83
- package/src/components/tooltip.tsx +53 -53
- package/src/components/ui/button.tsx +51 -51
- package/src/components/ui/calendar.tsx +57 -57
- package/src/components/ui/dialog.tsx +104 -104
- package/src/components/ui/drawer.tsx +279 -279
- package/src/components/ui/form.tsx +202 -202
- package/src/components/ui/icons.tsx +1267 -1267
- package/src/components/ui/input.tsx +28 -28
- package/src/components/ui/label.tsx +30 -30
- package/src/components/ui/popover.tsx +85 -85
- package/src/components/ui/select.tsx +236 -236
- package/src/components/ui/spinner.tsx +17 -17
- package/src/components/ui/switch.tsx +33 -33
- package/src/components/ui/tabs.tsx +62 -62
- package/src/components/ui/textarea.tsx +28 -28
- package/src/components/ui/tooltip.tsx +53 -53
- package/src/components/user-txt-msg-bubble.tsx +47 -47
- package/src/components/warning-msg.tsx +27 -27
- package/src/const/ui.ts +119 -119
- package/src/css.d.ts +4 -4
- package/src/hooks/use-column-appear.ts +78 -78
- package/src/hooks/use-portal-container.ts +27 -27
- package/src/hooks/use-resizable-width.ts +129 -129
- package/src/hooks/use-select-popover-position.ts +74 -74
- package/src/hooks/use-shadow.ts +127 -127
- package/src/index.ts +226 -226
- package/src/lib/utils.ts +138 -138
- package/src/stories/AbsFullscreenGradientBg.stories.tsx +36 -36
- package/src/stories/AgentCategorySelectMenu.stories.tsx +33 -33
- package/src/stories/AgentEntryCard.stories.tsx +90 -90
- package/src/stories/AgentHelperCard.stories.tsx +105 -105
- package/src/stories/AgentHelperCardList.stories.tsx +120 -120
- package/src/stories/AgentHelperMainLayout.stories.tsx +71 -71
- package/src/stories/AgentScrollSelector.stories.tsx +95 -95
- package/src/stories/AgentSelect.stories.tsx +134 -134
- package/src/stories/AgentTag.stories.tsx +44 -44
- package/src/stories/AppSelect.stories.tsx +250 -250
- package/src/stories/AttachmentPart.stories.tsx +122 -122
- package/src/stories/AttachmentPartGroup.stories.tsx +152 -152
- package/src/stories/AttachmentsPreviewer.stories.tsx +306 -306
- package/src/stories/BaseButton.stories.tsx +33 -33
- package/src/stories/BorderAnimation.stories.tsx +116 -116
- package/src/stories/BorderColorAnimation.stories.tsx +63 -63
- package/src/stories/BotAvatarAndName.stories.ts +24 -24
- package/src/stories/BotIcon.stories.ts +22 -22
- package/src/stories/BsConditionInput.stories.tsx +460 -460
- package/src/stories/BsEntrySelect.stories.tsx +343 -343
- package/src/stories/BsTooltip.stories.tsx +32 -32
- package/src/stories/Card.stories.tsx +28 -28
- package/src/stories/CardField.stories.tsx +87 -87
- package/src/stories/ChatAreaHeader.stories.ts +26 -26
- package/src/stories/CheckCard.stories.tsx +114 -114
- package/src/stories/CircleChecker.stories.tsx +89 -89
- package/src/stories/CollapsibleTextMsg.stories.ts +44 -44
- package/src/stories/ConditionGroup.stories.tsx +216 -216
- package/src/stories/ConditionInput.stories.tsx +502 -502
- package/src/stories/ConditionItem.stories.tsx +163 -163
- package/src/stories/ConditonQuantifierSelect.stories.tsx +54 -54
- package/src/stories/ConditonTriggerDescription.stories.tsx +61 -61
- package/src/stories/ConfirmDialog.stories.tsx +123 -123
- package/src/stories/DataTable.stories.tsx +191 -191
- package/src/stories/DatePicker.stories.tsx +174 -174
- package/src/stories/ExecLogFilter.stories.tsx +145 -145
- package/src/stories/FakeBotMsg.stories.tsx +36 -36
- package/src/stories/FieldEditPreferenceSelect.stories.tsx +161 -161
- package/src/stories/FieldSelect.stories.tsx +228 -228
- package/src/stories/FieldValueInput.stories.tsx +442 -442
- package/src/stories/FlowNodeActionTriggerSelect.stories.tsx +80 -80
- package/src/stories/Form.stories.tsx +302 -302
- package/src/stories/FormActionTriggerSelect.stories.tsx +80 -80
- package/src/stories/FormDivider.stories.tsx +31 -31
- package/src/stories/FormInfoEditor.stories.tsx +173 -173
- package/src/stories/FormSelect.stories.tsx +222 -222
- package/src/stories/FormulaTag.stories.tsx +68 -68
- package/src/stories/GenerateAnimation.stories.ts +20 -20
- package/src/stories/IconBtn.stories.tsx +32 -32
- package/src/stories/IconCard.stories.tsx +35 -35
- package/src/stories/IconLib.tsx +45 -45
- package/src/stories/Icons.stories.ts +22 -22
- package/src/stories/ImgMsgPart.stories.tsx +42 -42
- package/src/stories/Input.stories.tsx +102 -102
- package/src/stories/Label.stories.tsx +66 -66
- package/src/stories/LegacySlot.stories.tsx +56 -56
- package/src/stories/LineChecker.stories.tsx +133 -133
- package/src/stories/LinearGradientBorderBtn.stories.tsx +86 -86
- package/src/stories/LinearGradientColorBgAnimation.stories.tsx +60 -60
- package/src/stories/MemoizedMarkdown.stories.tsx +102 -102
- package/src/stories/MessageContent.stories.tsx +36 -36
- package/src/stories/MonthdaysSelect.stories.tsx +78 -78
- package/src/stories/NumbersMsgPart.stories.tsx +42 -42
- package/src/stories/OfficeContainer.stories.tsx +287 -287
- package/src/stories/OffsetPreferenceSelect.stories.tsx +118 -118
- package/src/stories/OffsetTypeSelect.stories.tsx +75 -75
- package/src/stories/OffsetUnitSelect.stories.tsx +61 -61
- package/src/stories/OptionItem.stories.tsx +77 -77
- package/src/stories/OutputConfigEditor.stories.tsx +96 -96
- package/src/stories/PlaceholderCard.stories.tsx +35 -35
- package/src/stories/PreviewerHeader.stories.tsx +91 -91
- package/src/stories/PrimaryConfirmBtn.stories.tsx +60 -60
- package/src/stories/PrimaryEntryBtn.stories.tsx +74 -74
- package/src/stories/PromptInput.stories.tsx +228 -228
- package/src/stories/RadioCard.stories.tsx +103 -103
- package/src/stories/RelationalOperatorSelect.stories.tsx +61 -61
- package/src/stories/RepeatByTypeSelect.stories.tsx +58 -58
- package/src/stories/RepeatPreferenceSelect.stories.tsx +107 -107
- package/src/stories/RepeatPreferenceTypeSelect.stories.tsx +58 -58
- package/src/stories/ScrollToBottom.stories.tsx +24 -24
- package/src/stories/SearchInput.stories.tsx +50 -50
- package/src/stories/Select.stories.tsx +128 -128
- package/src/stories/SplitLine.stories.tsx +40 -40
- package/src/stories/SquareChecker.stories.tsx +96 -96
- package/src/stories/TabRadioGroup.stories.tsx +84 -84
- package/src/stories/Textarea.stories.tsx +67 -67
- package/src/stories/TriggerSelect.stories.tsx +48 -48
- package/src/stories/TriggerTimePreferenceSelect.stories.tsx +106 -106
- package/src/stories/TriggerTimeSourceTypeSelect.stories.tsx +68 -68
- package/src/stories/UserTextMsgBubble.stories.ts +24 -24
- package/src/stories/WarningMessage.stories.tsx +23 -23
- package/src/stories/WeekdaysSelect.stories.tsx +66 -66
- package/src/stories/assets/demo.css +539 -539
- package/src/stories/assets/demo_index.html +7988 -7988
- package/src/stories/assets/iconfont.css +1377 -1377
- package/src/stories/assets/iconfont.json +2382 -2382
- package/src/stories/assets/iconfont.svg +697 -697
- package/src/stories/collapsible.stories.tsx +47 -47
- package/src/stories/drawer.stories.tsx +196 -196
- package/src/stories/field-checker-list-msg.stories.tsx +95 -95
- package/src/stories/field-checker.stories.tsx +117 -117
- package/src/stories/field-icon.stories.tsx +70 -70
- package/src/stories/field-value-checker.stories.tsx +113 -113
- package/src/stories/fields-design-info-table.stories.tsx +203 -203
- package/src/stories/fields-generating.stories.tsx +41 -41
- package/src/stories/fields-previewer.stories.tsx +77 -77
- package/src/stories/subform-fields-value-checker.stories.tsx +98 -98
- package/src/style.css +226 -226
- package/src/types.ts +8 -8
- package/style.css +3652 -3652
- package/tsconfig.json +13 -13
- package/vite.config.ts +44 -44
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
-
|
|
3
|
-
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "../components/collapsible";
|
|
4
|
-
|
|
5
|
-
const meta: Meta<typeof Collapsible> = {
|
|
6
|
-
title: "Example/Chat/Collapsible",
|
|
7
|
-
component: Collapsible,
|
|
8
|
-
tags: ["autodocs"],
|
|
9
|
-
parameters: {
|
|
10
|
-
layout: "centered",
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default meta;
|
|
15
|
-
type Story = StoryObj<typeof Collapsible>;
|
|
16
|
-
|
|
17
|
-
export const Default: Story = {
|
|
18
|
-
args: {
|
|
19
|
-
children: (
|
|
20
|
-
<>
|
|
21
|
-
<CollapsibleTrigger className="px-4 py-2 bg-[#EFF0F6] rounded cursor-pointer">
|
|
22
|
-
点击展开/收起
|
|
23
|
-
</CollapsibleTrigger>
|
|
24
|
-
<CollapsibleContent className="px-4 py-2">
|
|
25
|
-
<p>这是可折叠的内容区域。</p>
|
|
26
|
-
<p>可以放置任意内容。</p>
|
|
27
|
-
</CollapsibleContent>
|
|
28
|
-
</>
|
|
29
|
-
),
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const DefaultOpen: Story = {
|
|
34
|
-
args: {
|
|
35
|
-
defaultOpen: true,
|
|
36
|
-
children: (
|
|
37
|
-
<>
|
|
38
|
-
<CollapsibleTrigger className="px-4 py-2 bg-[#EFF0F6] rounded cursor-pointer">
|
|
39
|
-
默认展开状态
|
|
40
|
-
</CollapsibleTrigger>
|
|
41
|
-
<CollapsibleContent className="px-4 py-2">
|
|
42
|
-
<p>默认展开的内容。</p>
|
|
43
|
-
</CollapsibleContent>
|
|
44
|
-
</>
|
|
45
|
-
),
|
|
46
|
-
},
|
|
47
|
-
};
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
|
|
3
|
+
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "../components/collapsible";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Collapsible> = {
|
|
6
|
+
title: "Example/Chat/Collapsible",
|
|
7
|
+
component: Collapsible,
|
|
8
|
+
tags: ["autodocs"],
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: "centered",
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default meta;
|
|
15
|
+
type Story = StoryObj<typeof Collapsible>;
|
|
16
|
+
|
|
17
|
+
export const Default: Story = {
|
|
18
|
+
args: {
|
|
19
|
+
children: (
|
|
20
|
+
<>
|
|
21
|
+
<CollapsibleTrigger className="px-4 py-2 bg-[#EFF0F6] rounded cursor-pointer">
|
|
22
|
+
点击展开/收起
|
|
23
|
+
</CollapsibleTrigger>
|
|
24
|
+
<CollapsibleContent className="px-4 py-2">
|
|
25
|
+
<p>这是可折叠的内容区域。</p>
|
|
26
|
+
<p>可以放置任意内容。</p>
|
|
27
|
+
</CollapsibleContent>
|
|
28
|
+
</>
|
|
29
|
+
),
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const DefaultOpen: Story = {
|
|
34
|
+
args: {
|
|
35
|
+
defaultOpen: true,
|
|
36
|
+
children: (
|
|
37
|
+
<>
|
|
38
|
+
<CollapsibleTrigger className="px-4 py-2 bg-[#EFF0F6] rounded cursor-pointer">
|
|
39
|
+
默认展开状态
|
|
40
|
+
</CollapsibleTrigger>
|
|
41
|
+
<CollapsibleContent className="px-4 py-2">
|
|
42
|
+
<p>默认展开的内容。</p>
|
|
43
|
+
</CollapsibleContent>
|
|
44
|
+
</>
|
|
45
|
+
),
|
|
46
|
+
},
|
|
47
|
+
};
|
|
@@ -1,196 +1,196 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
Drawer,
|
|
5
|
-
DrawerTrigger,
|
|
6
|
-
DrawerContent,
|
|
7
|
-
DrawerHeader,
|
|
8
|
-
DrawerBody,
|
|
9
|
-
DrawerFooter,
|
|
10
|
-
DrawerTitle,
|
|
11
|
-
DrawerCloseButton,
|
|
12
|
-
DrawerClose,
|
|
13
|
-
} from '../components/ui/drawer';
|
|
14
|
-
import { Button } from '../components/ui/button';
|
|
15
|
-
|
|
16
|
-
const meta = {
|
|
17
|
-
title: 'Agent Helper/Drawer',
|
|
18
|
-
component: Drawer,
|
|
19
|
-
tags: ['autodocs'],
|
|
20
|
-
parameters: {
|
|
21
|
-
layout: 'centered',
|
|
22
|
-
},
|
|
23
|
-
} satisfies Meta<typeof Drawer>;
|
|
24
|
-
|
|
25
|
-
export default meta;
|
|
26
|
-
type Story = StoryObj<typeof meta>;
|
|
27
|
-
|
|
28
|
-
const renderDrawer = (children: React.ReactNode, footer?: React.ReactNode) => {
|
|
29
|
-
function DemoDrawer() {
|
|
30
|
-
const [open, setOpen] = useState(false);
|
|
31
|
-
return (
|
|
32
|
-
<Drawer open={open} onOpenChange={setOpen}>
|
|
33
|
-
<DrawerTrigger asChild>
|
|
34
|
-
<Button>打开抽屉</Button>
|
|
35
|
-
</DrawerTrigger>
|
|
36
|
-
<DrawerContent className='h-[calc(100vh-52px)]'>
|
|
37
|
-
<DrawerHeader>
|
|
38
|
-
<DrawerTitle>智能体设置</DrawerTitle>
|
|
39
|
-
<DrawerCloseButton />
|
|
40
|
-
</DrawerHeader>
|
|
41
|
-
<DrawerBody>
|
|
42
|
-
{children}
|
|
43
|
-
</DrawerBody>
|
|
44
|
-
{footer}
|
|
45
|
-
</DrawerContent>
|
|
46
|
-
</Drawer>
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
return <DemoDrawer />;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export const Default: Story = {
|
|
53
|
-
render: () =>
|
|
54
|
-
renderDrawer(
|
|
55
|
-
<div className="space-y-4">
|
|
56
|
-
<p className="text-sm text-muted-foreground">
|
|
57
|
-
智能体可以对表单数据进行XXX,并在表单中再次调用。
|
|
58
|
-
</p>
|
|
59
|
-
<p className="text-sm text-muted-foreground">
|
|
60
|
-
常用于进-销-存等场景。
|
|
61
|
-
<span className="text-[#0265ff] underline cursor-pointer">了解详情</span>
|
|
62
|
-
</p>
|
|
63
|
-
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white">新建智能体</Button>
|
|
64
|
-
</div>,
|
|
65
|
-
<DrawerFooter>
|
|
66
|
-
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white w-[94px]">保存</Button>
|
|
67
|
-
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] w-[94px]">取消</Button>
|
|
68
|
-
</DrawerFooter>
|
|
69
|
-
),
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const WithScrollableContent: Story = {
|
|
73
|
-
render: () =>
|
|
74
|
-
renderDrawer(
|
|
75
|
-
<div className="space-y-4">
|
|
76
|
-
{Array.from({ length: 20 }, (_, i) => (
|
|
77
|
-
<div key={i} className="p-4 border rounded-lg">
|
|
78
|
-
<h4 className="font-medium mb-2">选项 {i + 1}</h4>
|
|
79
|
-
<p className="text-sm text-muted-foreground">
|
|
80
|
-
这是第 {i + 1} 个选项的描述内容,用于演示抽屉内容区域的滚动行为。
|
|
81
|
-
</p>
|
|
82
|
-
</div>
|
|
83
|
-
))}
|
|
84
|
-
</div>,
|
|
85
|
-
<DrawerFooter>
|
|
86
|
-
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
87
|
-
<DrawerClose asChild>
|
|
88
|
-
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
89
|
-
</DrawerClose>
|
|
90
|
-
</DrawerFooter>
|
|
91
|
-
),
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
export const WithoutFooter: Story = {
|
|
95
|
-
render: () =>
|
|
96
|
-
renderDrawer(
|
|
97
|
-
<div className="space-y-4">
|
|
98
|
-
<p className="text-sm text-muted-foreground">
|
|
99
|
-
这是一个没有底部操作栏的抽屉,内容区域会自动填充剩余空间。
|
|
100
|
-
</p>
|
|
101
|
-
<div className="p-4 border rounded-lg">
|
|
102
|
-
<h4 className="font-medium mb-2">说明</h4>
|
|
103
|
-
<p className="text-sm text-muted-foreground">
|
|
104
|
-
当不需要操作按钮时,可以省略 DrawerFooter 组件。
|
|
105
|
-
</p>
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
),
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export const CustomHeight: Story = {
|
|
112
|
-
render: () => {
|
|
113
|
-
function CustomHeightDrawer() {
|
|
114
|
-
const [open, setOpen] = useState(false);
|
|
115
|
-
return (
|
|
116
|
-
<Drawer open={open} onOpenChange={setOpen}>
|
|
117
|
-
<DrawerTrigger asChild>
|
|
118
|
-
<Button>打开抽屉</Button>
|
|
119
|
-
</DrawerTrigger>
|
|
120
|
-
<DrawerContent className="max-h-[600px]">
|
|
121
|
-
<DrawerHeader>
|
|
122
|
-
<DrawerTitle>自定义高度</DrawerTitle>
|
|
123
|
-
<DrawerCloseButton />
|
|
124
|
-
</DrawerHeader>
|
|
125
|
-
<DrawerBody>
|
|
126
|
-
<div className="space-y-4">
|
|
127
|
-
<p className="text-sm text-muted-foreground">
|
|
128
|
-
这个抽屉通过 className 设置了 max-h-[600px],覆盖了默认的 max-h-[90vh]。
|
|
129
|
-
</p>
|
|
130
|
-
</div>
|
|
131
|
-
</DrawerBody>
|
|
132
|
-
<DrawerFooter>
|
|
133
|
-
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
134
|
-
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
135
|
-
</DrawerFooter>
|
|
136
|
-
</DrawerContent>
|
|
137
|
-
</Drawer>
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
return <CustomHeightDrawer />;
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
export const FormContent: Story = {
|
|
145
|
-
render: () => {
|
|
146
|
-
function FormDrawer() {
|
|
147
|
-
const [open, setOpen] = useState(false);
|
|
148
|
-
return (
|
|
149
|
-
<Drawer open={open} onOpenChange={setOpen}>
|
|
150
|
-
<DrawerTrigger asChild>
|
|
151
|
-
<Button>编辑信息</Button>
|
|
152
|
-
</DrawerTrigger>
|
|
153
|
-
<DrawerContent>
|
|
154
|
-
<DrawerHeader>
|
|
155
|
-
<DrawerTitle>编辑智能体信息</DrawerTitle>
|
|
156
|
-
<DrawerCloseButton />
|
|
157
|
-
</DrawerHeader>
|
|
158
|
-
<DrawerBody>
|
|
159
|
-
<div className="space-y-4">
|
|
160
|
-
<div>
|
|
161
|
-
<label className="text-sm font-medium mb-1.5 block">名称</label>
|
|
162
|
-
<input
|
|
163
|
-
className="w-full h-9 rounded-md border border-input bg-transparent px-3 py-1 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
164
|
-
defaultValue="智能体名称"
|
|
165
|
-
/>
|
|
166
|
-
</div>
|
|
167
|
-
<div>
|
|
168
|
-
<label className="text-sm font-medium mb-1.5 block">描述</label>
|
|
169
|
-
<textarea
|
|
170
|
-
className="w-full min-h-[80px] rounded-md border border-input bg-transparent px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
171
|
-
defaultValue="这是一个智能体描述"
|
|
172
|
-
/>
|
|
173
|
-
</div>
|
|
174
|
-
<div>
|
|
175
|
-
<label className="text-sm font-medium mb-1.5 block">类型</label>
|
|
176
|
-
<select className="w-full h-9 rounded-md border border-input bg-transparent px-3 py-1 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
|
|
177
|
-
<option>表单搭建</option>
|
|
178
|
-
<option>数据查询</option>
|
|
179
|
-
<option>表单填写</option>
|
|
180
|
-
</select>
|
|
181
|
-
</div>
|
|
182
|
-
</div>
|
|
183
|
-
</DrawerBody>
|
|
184
|
-
<DrawerFooter>
|
|
185
|
-
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
186
|
-
<DrawerClose asChild>
|
|
187
|
-
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
188
|
-
</DrawerClose>
|
|
189
|
-
</DrawerFooter>
|
|
190
|
-
</DrawerContent>
|
|
191
|
-
</Drawer>
|
|
192
|
-
);
|
|
193
|
-
}
|
|
194
|
-
return <FormDrawer />;
|
|
195
|
-
},
|
|
196
|
-
};
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import {
|
|
4
|
+
Drawer,
|
|
5
|
+
DrawerTrigger,
|
|
6
|
+
DrawerContent,
|
|
7
|
+
DrawerHeader,
|
|
8
|
+
DrawerBody,
|
|
9
|
+
DrawerFooter,
|
|
10
|
+
DrawerTitle,
|
|
11
|
+
DrawerCloseButton,
|
|
12
|
+
DrawerClose,
|
|
13
|
+
} from '../components/ui/drawer';
|
|
14
|
+
import { Button } from '../components/ui/button';
|
|
15
|
+
|
|
16
|
+
const meta = {
|
|
17
|
+
title: 'Agent Helper/Drawer',
|
|
18
|
+
component: Drawer,
|
|
19
|
+
tags: ['autodocs'],
|
|
20
|
+
parameters: {
|
|
21
|
+
layout: 'centered',
|
|
22
|
+
},
|
|
23
|
+
} satisfies Meta<typeof Drawer>;
|
|
24
|
+
|
|
25
|
+
export default meta;
|
|
26
|
+
type Story = StoryObj<typeof meta>;
|
|
27
|
+
|
|
28
|
+
const renderDrawer = (children: React.ReactNode, footer?: React.ReactNode) => {
|
|
29
|
+
function DemoDrawer() {
|
|
30
|
+
const [open, setOpen] = useState(false);
|
|
31
|
+
return (
|
|
32
|
+
<Drawer open={open} onOpenChange={setOpen}>
|
|
33
|
+
<DrawerTrigger asChild>
|
|
34
|
+
<Button>打开抽屉</Button>
|
|
35
|
+
</DrawerTrigger>
|
|
36
|
+
<DrawerContent className='h-[calc(100vh-52px)]'>
|
|
37
|
+
<DrawerHeader>
|
|
38
|
+
<DrawerTitle>智能体设置</DrawerTitle>
|
|
39
|
+
<DrawerCloseButton />
|
|
40
|
+
</DrawerHeader>
|
|
41
|
+
<DrawerBody>
|
|
42
|
+
{children}
|
|
43
|
+
</DrawerBody>
|
|
44
|
+
{footer}
|
|
45
|
+
</DrawerContent>
|
|
46
|
+
</Drawer>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
return <DemoDrawer />;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const Default: Story = {
|
|
53
|
+
render: () =>
|
|
54
|
+
renderDrawer(
|
|
55
|
+
<div className="space-y-4">
|
|
56
|
+
<p className="text-sm text-muted-foreground">
|
|
57
|
+
智能体可以对表单数据进行XXX,并在表单中再次调用。
|
|
58
|
+
</p>
|
|
59
|
+
<p className="text-sm text-muted-foreground">
|
|
60
|
+
常用于进-销-存等场景。
|
|
61
|
+
<span className="text-[#0265ff] underline cursor-pointer">了解详情</span>
|
|
62
|
+
</p>
|
|
63
|
+
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white">新建智能体</Button>
|
|
64
|
+
</div>,
|
|
65
|
+
<DrawerFooter>
|
|
66
|
+
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white w-[94px]">保存</Button>
|
|
67
|
+
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] w-[94px]">取消</Button>
|
|
68
|
+
</DrawerFooter>
|
|
69
|
+
),
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const WithScrollableContent: Story = {
|
|
73
|
+
render: () =>
|
|
74
|
+
renderDrawer(
|
|
75
|
+
<div className="space-y-4">
|
|
76
|
+
{Array.from({ length: 20 }, (_, i) => (
|
|
77
|
+
<div key={i} className="p-4 border rounded-lg">
|
|
78
|
+
<h4 className="font-medium mb-2">选项 {i + 1}</h4>
|
|
79
|
+
<p className="text-sm text-muted-foreground">
|
|
80
|
+
这是第 {i + 1} 个选项的描述内容,用于演示抽屉内容区域的滚动行为。
|
|
81
|
+
</p>
|
|
82
|
+
</div>
|
|
83
|
+
))}
|
|
84
|
+
</div>,
|
|
85
|
+
<DrawerFooter>
|
|
86
|
+
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
87
|
+
<DrawerClose asChild>
|
|
88
|
+
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
89
|
+
</DrawerClose>
|
|
90
|
+
</DrawerFooter>
|
|
91
|
+
),
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const WithoutFooter: Story = {
|
|
95
|
+
render: () =>
|
|
96
|
+
renderDrawer(
|
|
97
|
+
<div className="space-y-4">
|
|
98
|
+
<p className="text-sm text-muted-foreground">
|
|
99
|
+
这是一个没有底部操作栏的抽屉,内容区域会自动填充剩余空间。
|
|
100
|
+
</p>
|
|
101
|
+
<div className="p-4 border rounded-lg">
|
|
102
|
+
<h4 className="font-medium mb-2">说明</h4>
|
|
103
|
+
<p className="text-sm text-muted-foreground">
|
|
104
|
+
当不需要操作按钮时,可以省略 DrawerFooter 组件。
|
|
105
|
+
</p>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
),
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export const CustomHeight: Story = {
|
|
112
|
+
render: () => {
|
|
113
|
+
function CustomHeightDrawer() {
|
|
114
|
+
const [open, setOpen] = useState(false);
|
|
115
|
+
return (
|
|
116
|
+
<Drawer open={open} onOpenChange={setOpen}>
|
|
117
|
+
<DrawerTrigger asChild>
|
|
118
|
+
<Button>打开抽屉</Button>
|
|
119
|
+
</DrawerTrigger>
|
|
120
|
+
<DrawerContent className="max-h-[600px]">
|
|
121
|
+
<DrawerHeader>
|
|
122
|
+
<DrawerTitle>自定义高度</DrawerTitle>
|
|
123
|
+
<DrawerCloseButton />
|
|
124
|
+
</DrawerHeader>
|
|
125
|
+
<DrawerBody>
|
|
126
|
+
<div className="space-y-4">
|
|
127
|
+
<p className="text-sm text-muted-foreground">
|
|
128
|
+
这个抽屉通过 className 设置了 max-h-[600px],覆盖了默认的 max-h-[90vh]。
|
|
129
|
+
</p>
|
|
130
|
+
</div>
|
|
131
|
+
</DrawerBody>
|
|
132
|
+
<DrawerFooter>
|
|
133
|
+
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
134
|
+
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
135
|
+
</DrawerFooter>
|
|
136
|
+
</DrawerContent>
|
|
137
|
+
</Drawer>
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
return <CustomHeightDrawer />;
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export const FormContent: Story = {
|
|
145
|
+
render: () => {
|
|
146
|
+
function FormDrawer() {
|
|
147
|
+
const [open, setOpen] = useState(false);
|
|
148
|
+
return (
|
|
149
|
+
<Drawer open={open} onOpenChange={setOpen}>
|
|
150
|
+
<DrawerTrigger asChild>
|
|
151
|
+
<Button>编辑信息</Button>
|
|
152
|
+
</DrawerTrigger>
|
|
153
|
+
<DrawerContent>
|
|
154
|
+
<DrawerHeader>
|
|
155
|
+
<DrawerTitle>编辑智能体信息</DrawerTitle>
|
|
156
|
+
<DrawerCloseButton />
|
|
157
|
+
</DrawerHeader>
|
|
158
|
+
<DrawerBody>
|
|
159
|
+
<div className="space-y-4">
|
|
160
|
+
<div>
|
|
161
|
+
<label className="text-sm font-medium mb-1.5 block">名称</label>
|
|
162
|
+
<input
|
|
163
|
+
className="w-full h-9 rounded-md border border-input bg-transparent px-3 py-1 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
164
|
+
defaultValue="智能体名称"
|
|
165
|
+
/>
|
|
166
|
+
</div>
|
|
167
|
+
<div>
|
|
168
|
+
<label className="text-sm font-medium mb-1.5 block">描述</label>
|
|
169
|
+
<textarea
|
|
170
|
+
className="w-full min-h-[80px] rounded-md border border-input bg-transparent px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
171
|
+
defaultValue="这是一个智能体描述"
|
|
172
|
+
/>
|
|
173
|
+
</div>
|
|
174
|
+
<div>
|
|
175
|
+
<label className="text-sm font-medium mb-1.5 block">类型</label>
|
|
176
|
+
<select className="w-full h-9 rounded-md border border-input bg-transparent px-3 py-1 text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
|
|
177
|
+
<option>表单搭建</option>
|
|
178
|
+
<option>数据查询</option>
|
|
179
|
+
<option>表单填写</option>
|
|
180
|
+
</select>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</DrawerBody>
|
|
184
|
+
<DrawerFooter>
|
|
185
|
+
<Button className="bg-[#0265ff] hover:bg-[#0265ff]/90 text-white rounded w-[94px]">保存</Button>
|
|
186
|
+
<DrawerClose asChild>
|
|
187
|
+
<Button variant="outline" className="border-[#E0E0E0] text-[#030303] rounded w-[94px]">取消</Button>
|
|
188
|
+
</DrawerClose>
|
|
189
|
+
</DrawerFooter>
|
|
190
|
+
</DrawerContent>
|
|
191
|
+
</Drawer>
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
return <FormDrawer />;
|
|
195
|
+
},
|
|
196
|
+
};
|