@h-ai/ui 0.1.0-alpha.67 → 0.1.0-alpha.68
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/README.en.md +31 -5
- package/README.ja.md +31 -5
- package/README.md +64 -38
- package/dist/components/compounds/Accordion.svelte +24 -0
- package/dist/components/compounds/Accordion.svelte.d.ts +34 -0
- package/dist/components/compounds/ActionSheet.svelte +24 -0
- package/dist/components/compounds/ActionSheet.svelte.d.ts +38 -0
- package/dist/components/compounds/Alert.svelte +15 -4
- package/dist/components/compounds/Alert.svelte.d.ts +10 -0
- package/dist/components/compounds/AppBar.svelte +24 -0
- package/dist/components/compounds/AppBar.svelte.d.ts +33 -0
- package/dist/components/compounds/BottomNav.svelte +37 -0
- package/dist/components/compounds/BottomNav.svelte.d.ts +43 -0
- package/dist/components/compounds/Breadcrumb.svelte +11 -0
- package/dist/components/compounds/Breadcrumb.svelte.d.ts +20 -0
- package/dist/components/compounds/Calendar.svelte +20 -6
- package/dist/components/compounds/Calendar.svelte.d.ts +20 -6
- package/dist/components/compounds/Card.svelte +10 -0
- package/dist/components/compounds/Card.svelte.d.ts +10 -0
- package/dist/components/compounds/Combobox.svelte +35 -18
- package/dist/components/compounds/Combobox.svelte.d.ts +35 -18
- package/dist/components/compounds/Confirm.svelte +11 -0
- package/dist/components/compounds/Confirm.svelte.d.ts +21 -0
- package/dist/components/compounds/DataTable.svelte +40 -17
- package/dist/components/compounds/DataTable.svelte.d.ts +9 -13
- package/dist/components/compounds/DatePicker.svelte +20 -6
- package/dist/components/compounds/DatePicker.svelte.d.ts +20 -6
- package/dist/components/compounds/Drawer.svelte +11 -0
- package/dist/components/compounds/Drawer.svelte.d.ts +21 -0
- package/dist/components/compounds/Dropdown.svelte +10 -0
- package/dist/components/compounds/Dropdown.svelte.d.ts +10 -0
- package/dist/components/compounds/Empty.svelte +16 -5
- package/dist/components/compounds/Empty.svelte.d.ts +20 -0
- package/dist/components/compounds/Form.svelte +37 -2
- package/dist/components/compounds/Form.svelte.d.ts +20 -0
- package/dist/components/compounds/FormField.svelte +11 -0
- package/dist/components/compounds/FormField.svelte.d.ts +20 -0
- package/dist/components/compounds/FormLayout.svelte +13 -1
- package/dist/components/compounds/FormLayout.svelte.d.ts +13 -0
- package/dist/components/compounds/InfiniteScroll.svelte +24 -0
- package/dist/components/compounds/InfiniteScroll.svelte.d.ts +34 -0
- package/dist/components/compounds/MessageBoxContainer.svelte +11 -0
- package/dist/components/compounds/MessageBoxContainer.svelte.d.ts +21 -0
- package/dist/components/compounds/MessageBoxDialog.svelte +14 -0
- package/dist/components/compounds/MessageBoxDialog.svelte.d.ts +21 -0
- package/dist/components/compounds/MessageContainer.svelte +11 -0
- package/dist/components/compounds/MessageContainer.svelte.d.ts +21 -0
- package/dist/components/compounds/Modal.svelte +10 -0
- package/dist/components/compounds/Modal.svelte.d.ts +10 -0
- package/dist/components/compounds/PageHeader.svelte +21 -8
- package/dist/components/compounds/PageHeader.svelte.d.ts +21 -8
- package/dist/components/compounds/Pagination.svelte +34 -8
- package/dist/components/compounds/Pagination.svelte.d.ts +20 -0
- package/dist/components/compounds/Popover.svelte +11 -0
- package/dist/components/compounds/Popover.svelte.d.ts +20 -0
- package/dist/components/compounds/PullRefresh.svelte +24 -0
- package/dist/components/compounds/PullRefresh.svelte.d.ts +32 -0
- package/dist/components/compounds/Result.svelte +11 -0
- package/dist/components/compounds/Result.svelte.d.ts +20 -0
- package/dist/components/compounds/SafeArea.svelte +24 -0
- package/dist/components/compounds/SafeArea.svelte.d.ts +32 -0
- package/dist/components/compounds/Skeleton.svelte +10 -0
- package/dist/components/compounds/Skeleton.svelte.d.ts +10 -0
- package/dist/components/compounds/Steps.svelte +11 -0
- package/dist/components/compounds/Steps.svelte.d.ts +20 -0
- package/dist/components/compounds/SwipeCell.svelte +24 -0
- package/dist/components/compounds/SwipeCell.svelte.d.ts +37 -0
- package/dist/components/compounds/TableToolbar.svelte +66 -28
- package/dist/components/compounds/TableToolbar.svelte.d.ts +29 -19
- package/dist/components/compounds/Tabs.svelte +58 -10
- package/dist/components/compounds/Tabs.svelte.d.ts +10 -0
- package/dist/components/compounds/TagInput.svelte +11 -0
- package/dist/components/compounds/TagInput.svelte.d.ts +20 -0
- package/dist/components/compounds/Timeline.svelte +24 -0
- package/dist/components/compounds/Timeline.svelte.d.ts +34 -0
- package/dist/components/compounds/ToastContainer.svelte +11 -0
- package/dist/components/compounds/ToastContainer.svelte.d.ts +26 -0
- package/dist/components/compounds/Tooltip.svelte +11 -0
- package/dist/components/compounds/Tooltip.svelte.d.ts +22 -0
- package/dist/components/compounds/accordion-types.d.ts +10 -1
- package/dist/components/compounds/action-sheet-types.d.ts +9 -0
- package/dist/components/compounds/bottom-nav-types.d.ts +9 -0
- package/dist/components/compounds/swipe-cell-types.d.ts +9 -0
- package/dist/components/compounds/timeline-types.d.ts +9 -0
- package/dist/components/control-size.d.ts +17 -0
- package/dist/components/control-size.js +8 -0
- package/dist/components/primitives/Avatar.svelte +10 -0
- package/dist/components/primitives/Avatar.svelte.d.ts +10 -0
- package/dist/components/primitives/Badge.svelte +10 -0
- package/dist/components/primitives/Badge.svelte.d.ts +10 -0
- package/dist/components/primitives/BareButton.svelte +11 -0
- package/dist/components/primitives/BareButton.svelte.d.ts +20 -0
- package/dist/components/primitives/BareInput.svelte +11 -0
- package/dist/components/primitives/BareInput.svelte.d.ts +20 -0
- package/dist/components/primitives/Button.svelte +10 -0
- package/dist/components/primitives/Button.svelte.d.ts +10 -0
- package/dist/components/primitives/Checkbox.svelte +11 -0
- package/dist/components/primitives/Checkbox.svelte.d.ts +20 -0
- package/dist/components/primitives/IconButton.svelte +11 -0
- package/dist/components/primitives/IconButton.svelte.d.ts +20 -0
- package/dist/components/primitives/Input.svelte +10 -0
- package/dist/components/primitives/Input.svelte.d.ts +10 -0
- package/dist/components/primitives/Progress.svelte +11 -0
- package/dist/components/primitives/Progress.svelte.d.ts +20 -0
- package/dist/components/primitives/Radio.svelte +11 -0
- package/dist/components/primitives/Radio.svelte.d.ts +20 -0
- package/dist/components/primitives/Range.svelte +24 -0
- package/dist/components/primitives/Range.svelte.d.ts +34 -0
- package/dist/components/primitives/Rating.svelte +24 -0
- package/dist/components/primitives/Rating.svelte.d.ts +34 -0
- package/dist/components/primitives/Select.svelte +11 -0
- package/dist/components/primitives/Select.svelte.d.ts +21 -0
- package/dist/components/primitives/Spinner.svelte +11 -0
- package/dist/components/primitives/Spinner.svelte.d.ts +20 -0
- package/dist/components/primitives/Switch.svelte +11 -0
- package/dist/components/primitives/Switch.svelte.d.ts +20 -0
- package/dist/components/primitives/Tag.svelte +11 -0
- package/dist/components/primitives/Tag.svelte.d.ts +20 -0
- package/dist/components/primitives/Textarea.svelte +11 -0
- package/dist/components/primitives/Textarea.svelte.d.ts +21 -0
- package/dist/components/primitives/ToggleCheckbox.svelte +11 -0
- package/dist/components/primitives/ToggleCheckbox.svelte.d.ts +20 -0
- package/dist/components/primitives/ToggleInput.svelte +11 -0
- package/dist/components/primitives/ToggleInput.svelte.d.ts +20 -0
- package/dist/components/primitives/ToggleRadio.svelte +11 -0
- package/dist/components/primitives/ToggleRadio.svelte.d.ts +20 -0
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte +27 -0
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte.d.ts +27 -0
- package/dist/components/scenes/ai/AiDocumentEditor.svelte +79 -0
- package/dist/components/scenes/ai/AiDocumentEditor.svelte.d.ts +23 -0
- package/dist/components/scenes/ai/MarkdownRenderer.svelte +11 -0
- package/dist/components/scenes/ai/MarkdownRenderer.svelte.d.ts +28 -0
- package/dist/components/scenes/ai/code-preview.d.ts +28 -0
- package/dist/components/scenes/ai/code-preview.js +20 -0
- package/dist/components/scenes/ai/document-download.d.ts +52 -0
- package/dist/components/scenes/ai/document-download.js +30 -2
- package/dist/components/scenes/ai/document-parse.d.ts +71 -14
- package/dist/components/scenes/ai/document-parse.js +19 -9
- package/dist/components/scenes/ai/document-types.d.ts +222 -88
- package/dist/components/scenes/ai/editor-markdown-extensions.d.ts +16 -0
- package/dist/components/scenes/ai/editor-markdown-extensions.js +16 -0
- package/dist/components/scenes/ai/highlight.d.ts +11 -0
- package/dist/components/scenes/ai/highlight.js +11 -0
- package/dist/components/scenes/ai/markdown-parse.d.ts +8 -2
- package/dist/components/scenes/ai/markdown-parse.js +2 -2
- package/dist/components/scenes/ai/mermaid-host-sync.d.ts +38 -0
- package/dist/components/scenes/ai/mermaid-host-sync.js +30 -0
- package/dist/components/scenes/ai/mermaid-render.d.ts +23 -0
- package/dist/components/scenes/ai/mermaid-render.js +23 -0
- package/dist/components/scenes/ai/safe-html.d.ts +54 -6
- package/dist/components/scenes/ai/safe-html.js +54 -6
- package/dist/components/scenes/ai/table/AiTableEditor.svelte +48 -0
- package/dist/components/scenes/ai/table/AiTableEditor.svelte.d.ts +24 -0
- package/dist/components/scenes/ai/table/table-types.d.ts +79 -0
- package/dist/components/scenes/app/FeedbackModal.svelte +45 -5
- package/dist/components/scenes/app/FeedbackModal.svelte.d.ts +45 -5
- package/dist/components/scenes/app/LanguageSwitch.svelte +29 -19
- package/dist/components/scenes/app/LanguageSwitch.svelte.d.ts +28 -19
- package/dist/components/scenes/app/SettingsLayout.svelte +21 -9
- package/dist/components/scenes/app/SettingsLayout.svelte.d.ts +21 -9
- package/dist/components/scenes/app/SettingsModal.svelte +23 -0
- package/dist/components/scenes/app/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/scenes/app/ThemeColorPicker.svelte +31 -0
- package/dist/components/scenes/app/ThemeColorPicker.svelte.d.ts +31 -0
- package/dist/components/scenes/app/ThemeSelector.svelte +21 -6
- package/dist/components/scenes/app/ThemeSelector.svelte.d.ts +21 -6
- package/dist/components/scenes/app/ThemeToggle.svelte +21 -4
- package/dist/components/scenes/app/ThemeToggle.svelte.d.ts +21 -4
- package/dist/components/scenes/app/index.d.ts +1 -1
- package/dist/components/scenes/app/index.js +1 -1
- package/dist/components/scenes/charts/Chart.svelte +11 -0
- package/dist/components/scenes/charts/Chart.svelte.d.ts +20 -0
- package/dist/components/scenes/charts/chart-theme.d.ts +25 -1
- package/dist/components/scenes/charts/chart-theme.js +25 -1
- package/dist/components/scenes/charts/chart-types.d.ts +83 -7
- package/dist/components/scenes/charts/renderers/LineChart.svelte +53 -0
- package/dist/components/scenes/charts/renderers/LineChart.svelte.d.ts +13 -0
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte +10 -0
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte.d.ts +10 -0
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte +8 -0
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte.d.ts +8 -0
- package/dist/components/scenes/crud/CrudDetailPanel.svelte +18 -0
- package/dist/components/scenes/crud/CrudDetailPanel.svelte.d.ts +18 -0
- package/dist/components/scenes/crud/CrudEditPanel.svelte +10 -0
- package/dist/components/scenes/crud/CrudEditPanel.svelte.d.ts +10 -0
- package/dist/components/scenes/crud/CrudFilterBar.svelte +18 -0
- package/dist/components/scenes/crud/CrudFilterBar.svelte.d.ts +18 -0
- package/dist/components/scenes/crud/CrudPage.svelte +37 -5
- package/dist/components/scenes/crud/CrudPage.svelte.d.ts +35 -3
- package/dist/components/scenes/crud/crud-controller.svelte.d.ts +142 -23
- package/dist/components/scenes/crud/crud-controller.svelte.js +22 -11
- package/dist/components/scenes/crud/crud-form-validation.d.ts +12 -0
- package/dist/components/scenes/crud/crud-form-validation.js +12 -0
- package/dist/components/scenes/crud/crud-types.d.ts +79 -8
- package/dist/components/scenes/crud/nav-adapter.d.ts +14 -0
- package/dist/components/scenes/crud/nav-adapter.js +8 -0
- package/dist/components/scenes/crypto/EncryptedInput.svelte +24 -0
- package/dist/components/scenes/crypto/EncryptedInput.svelte.d.ts +34 -0
- package/dist/components/scenes/crypto/HashDisplay.svelte +11 -0
- package/dist/components/scenes/crypto/HashDisplay.svelte.d.ts +21 -0
- package/dist/components/scenes/crypto/SignatureDisplay.svelte +11 -0
- package/dist/components/scenes/crypto/SignatureDisplay.svelte.d.ts +21 -0
- package/dist/components/scenes/error/ErrorPage.svelte +8 -1
- package/dist/components/scenes/error/ErrorPage.svelte.d.ts +8 -1
- package/dist/components/scenes/error/error-presets.d.ts +40 -4
- package/dist/components/scenes/error/error-presets.js +22 -2
- package/dist/components/scenes/guide/GuideHost.svelte +27 -0
- package/dist/components/scenes/guide/GuideHost.svelte.d.ts +27 -0
- package/dist/components/scenes/guide/HelpCenter.svelte +27 -0
- package/dist/components/scenes/guide/HelpCenter.svelte.d.ts +27 -0
- package/dist/components/scenes/iam/AuthPanel.svelte +26 -2
- package/dist/components/scenes/iam/AuthPanel.svelte.d.ts +25 -0
- package/dist/components/scenes/iam/AuthShell.svelte +8 -3
- package/dist/components/scenes/iam/AuthShell.svelte.d.ts +8 -3
- package/dist/components/scenes/iam/ChangePasswordForm.svelte +10 -0
- package/dist/components/scenes/iam/ChangePasswordForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte +11 -0
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte.d.ts +21 -0
- package/dist/components/scenes/iam/LoginForm.svelte +24 -31
- package/dist/components/scenes/iam/LoginForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/PasswordInput.svelte +23 -0
- package/dist/components/scenes/iam/PasswordInput.svelte.d.ts +23 -0
- package/dist/components/scenes/iam/PermGuard.svelte +21 -11
- package/dist/components/scenes/iam/PermGuard.svelte.d.ts +30 -0
- package/dist/components/scenes/iam/RegisterForm.svelte +10 -0
- package/dist/components/scenes/iam/RegisterForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/ResetPasswordForm.svelte +10 -0
- package/dist/components/scenes/iam/ResetPasswordForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/UserProfile.svelte +11 -0
- package/dist/components/scenes/iam/UserProfile.svelte.d.ts +21 -0
- package/dist/components/scenes/iam/auth-error-message.d.ts +10 -0
- package/dist/components/scenes/iam/auth-error-message.js +10 -0
- package/dist/components/scenes/iam/password-utils.d.ts +39 -1
- package/dist/components/scenes/iam/password-utils.js +39 -1
- package/dist/components/scenes/iam/permission-context.svelte.d.ts +33 -23
- package/dist/components/scenes/iam/permission-context.svelte.js +20 -22
- package/dist/components/scenes/storage/AvatarUpload.svelte +11 -0
- package/dist/components/scenes/storage/AvatarUpload.svelte.d.ts +20 -0
- package/dist/components/scenes/storage/FileList.svelte +13 -2
- package/dist/components/scenes/storage/FileList.svelte.d.ts +20 -0
- package/dist/components/scenes/storage/FileUpload.svelte +37 -2
- package/dist/components/scenes/storage/FileUpload.svelte.d.ts +21 -0
- package/dist/components/scenes/storage/ImageUpload.svelte +11 -0
- package/dist/components/scenes/storage/ImageUpload.svelte.d.ts +21 -0
- package/dist/components/scenes/types.d.ts +352 -11
- package/dist/guide-storage.d.ts +13 -1
- package/dist/guide-storage.js +13 -1
- package/dist/guide-types.d.ts +67 -2
- package/dist/guide.svelte.d.ts +22 -1
- package/dist/guide.svelte.js +22 -1
- package/dist/i18n.svelte.d.ts +64 -3
- package/dist/i18n.svelte.js +99 -18
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -2
- package/dist/internal/browser-safety.d.ts +51 -2
- package/dist/internal/browser-safety.js +45 -7
- package/dist/internal/form-context.d.ts +73 -0
- package/dist/internal/form-context.js +57 -0
- package/dist/internal/form-validation.svelte.d.ts +42 -0
- package/dist/internal/form-validation.svelte.js +26 -0
- package/dist/internal/icon-safety.d.ts +7 -0
- package/dist/internal/icon-safety.js +7 -0
- package/dist/internal/locale.d.ts +19 -0
- package/dist/internal/locale.js +21 -0
- package/dist/message.svelte.d.ts +90 -0
- package/dist/message.svelte.js +84 -0
- package/dist/messagebox.svelte.d.ts +61 -13
- package/dist/messagebox.svelte.js +55 -13
- package/dist/messages/en-US.json +6 -1
- package/dist/messages/ja-JP.json +389 -0
- package/dist/messages/zh-CN.json +6 -1
- package/dist/messages.d.ts +24 -3
- package/dist/messages.js +18 -3
- package/dist/styles/design-tokens.css +4 -2
- package/dist/styles/global.css +28 -8
- package/dist/styles/theme.css +2 -0
- package/dist/theme-config.d.ts +173 -0
- package/dist/theme-config.js +143 -0
- package/dist/toast.svelte.d.ts +114 -4
- package/dist/toast.svelte.js +108 -4
- package/dist/types.d.ts +526 -9
- package/dist/utils/platform.svelte.d.ts +28 -15
- package/dist/utils/platform.svelte.js +19 -14
- package/dist/utils.d.ts +102 -0
- package/dist/utils.js +93 -0
- package/package.json +66 -6
package/dist/types.d.ts
CHANGED
|
@@ -7,30 +7,79 @@
|
|
|
7
7
|
import type { Snippet } from 'svelte';
|
|
8
8
|
/**
|
|
9
9
|
* 可转发到组件根节点或主交互节点的 data-* 属性。
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import type { DataAttributeValue } from '@h-ai/ui'
|
|
14
|
+
* const example: DataAttributeValue = 'profile-save'
|
|
15
|
+
* ```
|
|
10
16
|
*/
|
|
11
17
|
export type DataAttributeValue = string | number | boolean | null | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* 可转发到 DOM 的 data-* 字段集合;null/undefined 在转发时被忽略。
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import type { DataAttributes } from '@h-ai/ui'
|
|
24
|
+
* const example: DataAttributes = { 'data-testid': 'profile-save', 'data-loading': false }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
12
27
|
export interface DataAttributes {
|
|
13
28
|
[key: `data-${string}`]: DataAttributeValue;
|
|
14
29
|
}
|
|
15
30
|
export type { ChartDataItem, ChartProps, ChartSeries, ChartSize, ChartType } from './components/scenes/charts/chart-types.js';
|
|
16
31
|
/**
|
|
17
32
|
* 基础变体类型
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import type { Variant } from '@h-ai/ui'
|
|
37
|
+
* const example: Variant = 'primary'
|
|
38
|
+
* ```
|
|
18
39
|
*/
|
|
19
40
|
export type Variant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'ghost' | 'link' | 'outline';
|
|
20
41
|
/**
|
|
21
42
|
* 尺寸类型
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import type { Size } from '@h-ai/ui'
|
|
47
|
+
* const example: Size = 'lg'
|
|
48
|
+
* ```
|
|
22
49
|
*/
|
|
23
50
|
export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
|
|
24
51
|
/**
|
|
25
52
|
* 位置类型
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* import type { Position } from '@h-ai/ui'
|
|
57
|
+
* const example: Position = 'right'
|
|
58
|
+
* ```
|
|
26
59
|
*/
|
|
27
60
|
export type Position = 'top' | 'right' | 'bottom' | 'left';
|
|
28
61
|
/**
|
|
29
62
|
* 对齐类型
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import type { Alignment } from '@h-ai/ui'
|
|
67
|
+
* const example: Alignment = 'end'
|
|
68
|
+
* ```
|
|
30
69
|
*/
|
|
31
70
|
export type Alignment = 'start' | 'center' | 'end';
|
|
32
71
|
/**
|
|
33
72
|
* 按钮属性
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```svelte
|
|
76
|
+
* <script lang="ts">
|
|
77
|
+
* import { Button } from '@h-ai/ui'
|
|
78
|
+
* import type { ButtonProps } from '@h-ai/ui'
|
|
79
|
+
* const props: ButtonProps = { variant: 'primary', type: 'submit' }
|
|
80
|
+
* </script>
|
|
81
|
+
* <Button {...props}>保存</Button>
|
|
82
|
+
* ```
|
|
34
83
|
*/
|
|
35
84
|
export interface ButtonProps extends DataAttributes {
|
|
36
85
|
/** 变体 */
|
|
@@ -60,6 +109,16 @@ export interface ButtonProps extends DataAttributes {
|
|
|
60
109
|
}
|
|
61
110
|
/**
|
|
62
111
|
* 无样式按钮属性
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```svelte
|
|
115
|
+
* <script lang="ts">
|
|
116
|
+
* import { BareButton } from '@h-ai/ui'
|
|
117
|
+
* import type { BareButtonProps } from '@h-ai/ui'
|
|
118
|
+
* const props: BareButtonProps = { type: 'button', ariaLabel: '关闭' }
|
|
119
|
+
* </script>
|
|
120
|
+
* <BareButton {...props}>关闭</BareButton>
|
|
121
|
+
* ```
|
|
63
122
|
*/
|
|
64
123
|
export interface BareButtonProps extends DataAttributes {
|
|
65
124
|
/** 按钮类型 */
|
|
@@ -85,6 +144,16 @@ export interface BareButtonProps extends DataAttributes {
|
|
|
85
144
|
}
|
|
86
145
|
/**
|
|
87
146
|
* 输入框属性
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```svelte
|
|
150
|
+
* <script lang="ts">
|
|
151
|
+
* import { Input } from '@h-ai/ui'
|
|
152
|
+
* import type { InputProps } from '@h-ai/ui'
|
|
153
|
+
* const props: InputProps = { name: 'email', type: 'email', required: true }
|
|
154
|
+
* </script>
|
|
155
|
+
* <Input {...props} />
|
|
156
|
+
* ```
|
|
88
157
|
*/
|
|
89
158
|
export interface InputProps extends DataAttributes {
|
|
90
159
|
/** 值 */
|
|
@@ -158,6 +227,16 @@ export interface InputProps extends DataAttributes {
|
|
|
158
227
|
}
|
|
159
228
|
/**
|
|
160
229
|
* 无样式输入框属性
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```svelte
|
|
233
|
+
* <script lang="ts">
|
|
234
|
+
* import { BareInput } from '@h-ai/ui'
|
|
235
|
+
* import type { BareInputProps } from '@h-ai/ui'
|
|
236
|
+
* const props: BareInputProps = { name: 'query', type: 'search' }
|
|
237
|
+
* </script>
|
|
238
|
+
* <BareInput {...props} />
|
|
239
|
+
* ```
|
|
161
240
|
*/
|
|
162
241
|
export interface BareInputProps extends DataAttributes {
|
|
163
242
|
/** 文本值;file 类型通过事件读取 files,不绑定文件路径。 */
|
|
@@ -241,6 +320,16 @@ export interface BareInputProps extends DataAttributes {
|
|
|
241
320
|
}
|
|
242
321
|
/**
|
|
243
322
|
* 文本域属性
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```svelte
|
|
326
|
+
* <script lang="ts">
|
|
327
|
+
* import { Textarea } from '@h-ai/ui'
|
|
328
|
+
* import type { TextareaProps } from '@h-ai/ui'
|
|
329
|
+
* const props: TextareaProps = { name: 'description', rows: 4, maxlength: 500 }
|
|
330
|
+
* </script>
|
|
331
|
+
* <Textarea {...props} />
|
|
332
|
+
* ```
|
|
244
333
|
*/
|
|
245
334
|
export interface TextareaProps extends DataAttributes {
|
|
246
335
|
/** 值 */
|
|
@@ -285,6 +374,13 @@ export interface TextareaProps extends DataAttributes {
|
|
|
285
374
|
}
|
|
286
375
|
/**
|
|
287
376
|
* 选择框选项
|
|
377
|
+
* @typeParam T - 字段值或资源条目的数据类型。
|
|
378
|
+
*
|
|
379
|
+
* @example
|
|
380
|
+
* ```ts
|
|
381
|
+
* import type { SelectOption } from '@h-ai/ui'
|
|
382
|
+
* const example: SelectOption = { value: 'active', label: '启用' }
|
|
383
|
+
* ```
|
|
288
384
|
*/
|
|
289
385
|
export interface SelectOption<T = string> {
|
|
290
386
|
/** 值 */
|
|
@@ -296,6 +392,17 @@ export interface SelectOption<T = string> {
|
|
|
296
392
|
}
|
|
297
393
|
/**
|
|
298
394
|
* 选择框属性
|
|
395
|
+
* @typeParam T - 字段值或资源条目的数据类型。
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
* ```svelte
|
|
399
|
+
* <script lang="ts">
|
|
400
|
+
* import { Select } from '@h-ai/ui'
|
|
401
|
+
* import type { SelectProps } from '@h-ai/ui'
|
|
402
|
+
* const props: SelectProps = { options: [{ value: 'active', label: '启用' }], value: 'active' }
|
|
403
|
+
* </script>
|
|
404
|
+
* <Select {...props} />
|
|
405
|
+
* ```
|
|
299
406
|
*/
|
|
300
407
|
export interface SelectProps<T = string> extends DataAttributes {
|
|
301
408
|
/** 值 */
|
|
@@ -329,6 +436,16 @@ export interface SelectProps<T = string> extends DataAttributes {
|
|
|
329
436
|
}
|
|
330
437
|
/**
|
|
331
438
|
* 复选框属性
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```svelte
|
|
442
|
+
* <script lang="ts">
|
|
443
|
+
* import { Checkbox } from '@h-ai/ui'
|
|
444
|
+
* import type { CheckboxProps } from '@h-ai/ui'
|
|
445
|
+
* const props: CheckboxProps = { label: '同意条款', checked: true }
|
|
446
|
+
* </script>
|
|
447
|
+
* <Checkbox {...props} />
|
|
448
|
+
* ```
|
|
332
449
|
*/
|
|
333
450
|
export interface CheckboxProps extends DataAttributes {
|
|
334
451
|
/** 元素 ID;用于 FormField 标签关联。 */
|
|
@@ -352,6 +469,16 @@ export interface CheckboxProps extends DataAttributes {
|
|
|
352
469
|
}
|
|
353
470
|
/**
|
|
354
471
|
* 开关属性
|
|
472
|
+
*
|
|
473
|
+
* @example
|
|
474
|
+
* ```svelte
|
|
475
|
+
* <script lang="ts">
|
|
476
|
+
* import { Switch } from '@h-ai/ui'
|
|
477
|
+
* import type { SwitchProps } from '@h-ai/ui'
|
|
478
|
+
* const props: SwitchProps = { label: '开启通知', checked: true }
|
|
479
|
+
* </script>
|
|
480
|
+
* <Switch {...props} />
|
|
481
|
+
* ```
|
|
355
482
|
*/
|
|
356
483
|
export interface SwitchProps extends DataAttributes {
|
|
357
484
|
/** 是否开启 */
|
|
@@ -369,6 +496,16 @@ export interface SwitchProps extends DataAttributes {
|
|
|
369
496
|
}
|
|
370
497
|
/**
|
|
371
498
|
* 原生开关输入(用于折叠/抽屉等结构要求 input 直系子元素的场景)
|
|
499
|
+
*
|
|
500
|
+
* @example
|
|
501
|
+
* ```svelte
|
|
502
|
+
* <script lang="ts">
|
|
503
|
+
* import { ToggleCheckbox } from '@h-ai/ui'
|
|
504
|
+
* import type { ToggleCheckboxProps } from '@h-ai/ui'
|
|
505
|
+
* const props: ToggleCheckboxProps = { name: 'expanded', checked: true }
|
|
506
|
+
* </script>
|
|
507
|
+
* <ToggleCheckbox {...props} />
|
|
508
|
+
* ```
|
|
372
509
|
*/
|
|
373
510
|
export interface ToggleCheckboxProps extends DataAttributes {
|
|
374
511
|
/** 是否选中 */
|
|
@@ -384,6 +521,19 @@ export interface ToggleCheckboxProps extends DataAttributes {
|
|
|
384
521
|
/** 变化事件 */
|
|
385
522
|
onchange?: (checked: boolean) => void;
|
|
386
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* 用于手风琴等结构的原生单选控件属性;同一 name 的选项互斥。
|
|
526
|
+
*
|
|
527
|
+
* @example
|
|
528
|
+
* ```svelte
|
|
529
|
+
* <script lang="ts">
|
|
530
|
+
* import { ToggleRadio } from '@h-ai/ui'
|
|
531
|
+
* import type { ToggleRadioProps } from '@h-ai/ui'
|
|
532
|
+
* const props: ToggleRadioProps = { name: 'section', checked: true }
|
|
533
|
+
* </script>
|
|
534
|
+
* <ToggleRadio {...props} />
|
|
535
|
+
* ```
|
|
536
|
+
*/
|
|
387
537
|
export interface ToggleRadioProps extends DataAttributes {
|
|
388
538
|
/** 是否选中 */
|
|
389
539
|
checked?: boolean;
|
|
@@ -400,6 +550,17 @@ export interface ToggleRadioProps extends DataAttributes {
|
|
|
400
550
|
}
|
|
401
551
|
/**
|
|
402
552
|
* 单选框属性
|
|
553
|
+
* @typeParam T - 字段值或资源条目的数据类型。
|
|
554
|
+
*
|
|
555
|
+
* @example
|
|
556
|
+
* ```svelte
|
|
557
|
+
* <script lang="ts">
|
|
558
|
+
* import { Radio } from '@h-ai/ui'
|
|
559
|
+
* import type { RadioProps } from '@h-ai/ui'
|
|
560
|
+
* const props: RadioProps = { options: [{ value: 'email', label: '邮件' }], value: 'email' }
|
|
561
|
+
* </script>
|
|
562
|
+
* <Radio {...props} />
|
|
563
|
+
* ```
|
|
403
564
|
*/
|
|
404
565
|
export interface RadioProps<T = string> extends DataAttributes {
|
|
405
566
|
/** 值 */
|
|
@@ -421,6 +582,16 @@ export interface RadioProps<T = string> extends DataAttributes {
|
|
|
421
582
|
}
|
|
422
583
|
/**
|
|
423
584
|
* 徽章属性
|
|
585
|
+
*
|
|
586
|
+
* @example
|
|
587
|
+
* ```svelte
|
|
588
|
+
* <script lang="ts">
|
|
589
|
+
* import { Badge } from '@h-ai/ui'
|
|
590
|
+
* import type { BadgeProps } from '@h-ai/ui'
|
|
591
|
+
* const props: BadgeProps = { variant: 'success' }
|
|
592
|
+
* </script>
|
|
593
|
+
* <Badge {...props}>已启用</Badge>
|
|
594
|
+
* ```
|
|
424
595
|
*/
|
|
425
596
|
export interface BadgeProps extends DataAttributes {
|
|
426
597
|
/** 变体 */
|
|
@@ -436,6 +607,16 @@ export interface BadgeProps extends DataAttributes {
|
|
|
436
607
|
}
|
|
437
608
|
/**
|
|
438
609
|
* 卡片属性
|
|
610
|
+
*
|
|
611
|
+
* @example
|
|
612
|
+
* ```svelte
|
|
613
|
+
* <script lang="ts">
|
|
614
|
+
* import { Card } from '@h-ai/ui'
|
|
615
|
+
* import type { CardProps } from '@h-ai/ui'
|
|
616
|
+
* const props: CardProps = { title: '个人资料', bordered: true }
|
|
617
|
+
* </script>
|
|
618
|
+
* <Card {...props}>资料内容</Card>
|
|
619
|
+
* ```
|
|
439
620
|
*/
|
|
440
621
|
export interface CardProps extends DataAttributes {
|
|
441
622
|
/** 标题 */
|
|
@@ -457,6 +638,16 @@ export interface CardProps extends DataAttributes {
|
|
|
457
638
|
}
|
|
458
639
|
/**
|
|
459
640
|
* 模态框属性
|
|
641
|
+
*
|
|
642
|
+
* @example
|
|
643
|
+
* ```svelte
|
|
644
|
+
* <script lang="ts">
|
|
645
|
+
* import { Modal } from '@h-ai/ui'
|
|
646
|
+
* import type { ModalProps } from '@h-ai/ui'
|
|
647
|
+
* const props: ModalProps = { open: true, title: '编辑资料', closeOnBackdrop: false }
|
|
648
|
+
* </script>
|
|
649
|
+
* <Modal {...props}>表单内容</Modal>
|
|
650
|
+
* ```
|
|
460
651
|
*/
|
|
461
652
|
export interface ModalProps extends DataAttributes {
|
|
462
653
|
/** 是否打开 */
|
|
@@ -494,6 +685,16 @@ export interface ModalProps extends DataAttributes {
|
|
|
494
685
|
}
|
|
495
686
|
/**
|
|
496
687
|
* 抽屉属性
|
|
688
|
+
*
|
|
689
|
+
* @example
|
|
690
|
+
* ```svelte
|
|
691
|
+
* <script lang="ts">
|
|
692
|
+
* import { Drawer } from '@h-ai/ui'
|
|
693
|
+
* import type { DrawerProps } from '@h-ai/ui'
|
|
694
|
+
* const props: DrawerProps = { open: true, title: '详情', position: 'right', width: '28rem' }
|
|
695
|
+
* </script>
|
|
696
|
+
* <Drawer {...props}>详情内容</Drawer>
|
|
697
|
+
* ```
|
|
497
698
|
*/
|
|
498
699
|
export interface DrawerProps extends DataAttributes {
|
|
499
700
|
/** 是否打开 */
|
|
@@ -523,6 +724,16 @@ export interface DrawerProps extends DataAttributes {
|
|
|
523
724
|
}
|
|
524
725
|
/**
|
|
525
726
|
* 提示框属性
|
|
727
|
+
*
|
|
728
|
+
* @example
|
|
729
|
+
* ```svelte
|
|
730
|
+
* <script lang="ts">
|
|
731
|
+
* import { Tooltip } from '@h-ai/ui'
|
|
732
|
+
* import type { TooltipProps } from '@h-ai/ui'
|
|
733
|
+
* const props: TooltipProps = { content: '复制链接', position: 'top' }
|
|
734
|
+
* </script>
|
|
735
|
+
* <Tooltip {...props}><span>复制</span></Tooltip>
|
|
736
|
+
* ```
|
|
526
737
|
*/
|
|
527
738
|
export interface TooltipProps extends DataAttributes {
|
|
528
739
|
/** 提示内容 */
|
|
@@ -543,6 +754,16 @@ export interface TooltipProps extends DataAttributes {
|
|
|
543
754
|
}
|
|
544
755
|
/**
|
|
545
756
|
* 加载属性
|
|
757
|
+
*
|
|
758
|
+
* @example
|
|
759
|
+
* ```svelte
|
|
760
|
+
* <script lang="ts">
|
|
761
|
+
* import { Spinner } from '@h-ai/ui'
|
|
762
|
+
* import type { SpinnerProps } from '@h-ai/ui'
|
|
763
|
+
* const props: SpinnerProps = { size: 'sm', variant: 'primary' }
|
|
764
|
+
* </script>
|
|
765
|
+
* <Spinner {...props} />
|
|
766
|
+
* ```
|
|
546
767
|
*/
|
|
547
768
|
export interface SpinnerProps extends DataAttributes {
|
|
548
769
|
/** 尺寸 */
|
|
@@ -554,9 +775,19 @@ export interface SpinnerProps extends DataAttributes {
|
|
|
554
775
|
}
|
|
555
776
|
/**
|
|
556
777
|
* 进度条属性
|
|
778
|
+
*
|
|
779
|
+
* @example
|
|
780
|
+
* ```svelte
|
|
781
|
+
* <script lang="ts">
|
|
782
|
+
* import { Progress } from '@h-ai/ui'
|
|
783
|
+
* import type { ProgressProps } from '@h-ai/ui'
|
|
784
|
+
* const props: ProgressProps = { value: 65, max: 100, showLabel: true }
|
|
785
|
+
* </script>
|
|
786
|
+
* <Progress {...props} />
|
|
787
|
+
* ```
|
|
557
788
|
*/
|
|
558
789
|
export interface ProgressProps extends DataAttributes {
|
|
559
|
-
/**
|
|
790
|
+
/** 当前进度值,按 max 解释;max 默认 100。 */
|
|
560
791
|
value: number;
|
|
561
792
|
/** 最大值 */
|
|
562
793
|
max?: number;
|
|
@@ -577,6 +808,16 @@ export interface ProgressProps extends DataAttributes {
|
|
|
577
808
|
}
|
|
578
809
|
/**
|
|
579
810
|
* 警告框属性
|
|
811
|
+
*
|
|
812
|
+
* @example
|
|
813
|
+
* ```svelte
|
|
814
|
+
* <script lang="ts">
|
|
815
|
+
* import { Alert } from '@h-ai/ui'
|
|
816
|
+
* import type { AlertProps } from '@h-ai/ui'
|
|
817
|
+
* const props: AlertProps = { title: '保存成功', variant: 'success' }
|
|
818
|
+
* </script>
|
|
819
|
+
* <Alert {...props}>操作已经完成。</Alert>
|
|
820
|
+
* ```
|
|
580
821
|
*/
|
|
581
822
|
export interface AlertProps extends DataAttributes {
|
|
582
823
|
/** 变体 */
|
|
@@ -594,6 +835,15 @@ export interface AlertProps extends DataAttributes {
|
|
|
594
835
|
}
|
|
595
836
|
/**
|
|
596
837
|
* Toast 属性
|
|
838
|
+
*
|
|
839
|
+
* @example
|
|
840
|
+
* ```ts
|
|
841
|
+
* import { toast } from '@h-ai/ui'
|
|
842
|
+
* import type { ToastProps } from '@h-ai/ui'
|
|
843
|
+
* const options: ToastProps = { message: '保存完成', variant: 'success', duration: 3000 }
|
|
844
|
+
* const id = toast.add(options)
|
|
845
|
+
* toast.remove(id)
|
|
846
|
+
* ```
|
|
597
847
|
*/
|
|
598
848
|
export interface ToastProps extends DataAttributes {
|
|
599
849
|
/** 消息 */
|
|
@@ -611,6 +861,16 @@ export interface ToastProps extends DataAttributes {
|
|
|
611
861
|
}
|
|
612
862
|
/**
|
|
613
863
|
* 分页属性
|
|
864
|
+
*
|
|
865
|
+
* @example
|
|
866
|
+
* ```svelte
|
|
867
|
+
* <script lang="ts">
|
|
868
|
+
* import { Pagination } from '@h-ai/ui'
|
|
869
|
+
* import type { PaginationProps } from '@h-ai/ui'
|
|
870
|
+
* const props: PaginationProps = { page: 1, total: 42, pageSize: 10 }
|
|
871
|
+
* </script>
|
|
872
|
+
* <Pagination {...props} />
|
|
873
|
+
* ```
|
|
614
874
|
*/
|
|
615
875
|
export interface PaginationProps extends DataAttributes {
|
|
616
876
|
/** 当前页 */
|
|
@@ -657,6 +917,12 @@ export interface PaginationProps extends DataAttributes {
|
|
|
657
917
|
}
|
|
658
918
|
/**
|
|
659
919
|
* 面包屑项
|
|
920
|
+
*
|
|
921
|
+
* @example
|
|
922
|
+
* ```ts
|
|
923
|
+
* import type { BreadcrumbItem } from '@h-ai/ui'
|
|
924
|
+
* const example: BreadcrumbItem = { label: '设置', href: '/settings' }
|
|
925
|
+
* ```
|
|
660
926
|
*/
|
|
661
927
|
export interface BreadcrumbItem {
|
|
662
928
|
/** 显示文本 */
|
|
@@ -668,6 +934,16 @@ export interface BreadcrumbItem {
|
|
|
668
934
|
}
|
|
669
935
|
/**
|
|
670
936
|
* 面包屑属性
|
|
937
|
+
*
|
|
938
|
+
* @example
|
|
939
|
+
* ```svelte
|
|
940
|
+
* <script lang="ts">
|
|
941
|
+
* import { Breadcrumb } from '@h-ai/ui'
|
|
942
|
+
* import type { BreadcrumbProps } from '@h-ai/ui'
|
|
943
|
+
* const props: BreadcrumbProps = { items: [{ label: '首页', href: '/' }, { label: '设置' }] }
|
|
944
|
+
* </script>
|
|
945
|
+
* <Breadcrumb {...props} />
|
|
946
|
+
* ```
|
|
671
947
|
*/
|
|
672
948
|
export interface BreadcrumbProps extends DataAttributes {
|
|
673
949
|
/** 项目 */
|
|
@@ -679,6 +955,12 @@ export interface BreadcrumbProps extends DataAttributes {
|
|
|
679
955
|
}
|
|
680
956
|
/**
|
|
681
957
|
* 标签页项
|
|
958
|
+
*
|
|
959
|
+
* @example
|
|
960
|
+
* ```ts
|
|
961
|
+
* import type { TabItem } from '@h-ai/ui'
|
|
962
|
+
* const example: TabItem = { key: 'security', label: '安全' }
|
|
963
|
+
* ```
|
|
682
964
|
*/
|
|
683
965
|
export interface TabItem {
|
|
684
966
|
/** 唯一标识 */
|
|
@@ -695,6 +977,12 @@ export interface TabItem {
|
|
|
695
977
|
*
|
|
696
978
|
* 传给 `Tabs` 的 `children` 插槽,支持惰性挂载:只渲染已激活过的页签内容,
|
|
697
979
|
* 不预加载不可见页签。
|
|
980
|
+
*
|
|
981
|
+
* @example
|
|
982
|
+
* ```ts
|
|
983
|
+
* import type { TabsContentContext } from '@h-ai/ui'
|
|
984
|
+
* const example: TabsContentContext = { active: 'profile', isActivated: key => key === 'profile' }
|
|
985
|
+
* ```
|
|
698
986
|
*/
|
|
699
987
|
export interface TabsContentContext {
|
|
700
988
|
/** 当前激活的标签 key */
|
|
@@ -704,6 +992,16 @@ export interface TabsContentContext {
|
|
|
704
992
|
}
|
|
705
993
|
/**
|
|
706
994
|
* 标签页属性
|
|
995
|
+
*
|
|
996
|
+
* @example
|
|
997
|
+
* ```svelte
|
|
998
|
+
* <script lang="ts">
|
|
999
|
+
* import { Tabs } from '@h-ai/ui'
|
|
1000
|
+
* import type { TabsProps } from '@h-ai/ui'
|
|
1001
|
+
* const props: TabsProps = { items: [{ key: 'profile', label: '资料' }, { key: 'security', label: '安全' }], active: 'profile', lazy: true }
|
|
1002
|
+
* </script>
|
|
1003
|
+
* <Tabs {...props} />
|
|
1004
|
+
* ```
|
|
707
1005
|
*/
|
|
708
1006
|
export interface TabsProps extends DataAttributes {
|
|
709
1007
|
/** 标签项 */
|
|
@@ -727,6 +1025,16 @@ export interface TabsProps extends DataAttributes {
|
|
|
727
1025
|
}
|
|
728
1026
|
/**
|
|
729
1027
|
* 头像属性
|
|
1028
|
+
*
|
|
1029
|
+
* @example
|
|
1030
|
+
* ```svelte
|
|
1031
|
+
* <script lang="ts">
|
|
1032
|
+
* import { Avatar } from '@h-ai/ui'
|
|
1033
|
+
* import type { AvatarProps } from '@h-ai/ui'
|
|
1034
|
+
* const props: AvatarProps = { name: 'Ada', alt: '用户头像', size: 'md' }
|
|
1035
|
+
* </script>
|
|
1036
|
+
* <Avatar {...props} />
|
|
1037
|
+
* ```
|
|
730
1038
|
*/
|
|
731
1039
|
export interface AvatarProps extends DataAttributes {
|
|
732
1040
|
/** 图片地址 */
|
|
@@ -748,6 +1056,12 @@ export interface AvatarProps extends DataAttributes {
|
|
|
748
1056
|
}
|
|
749
1057
|
/**
|
|
750
1058
|
* 下拉菜单项
|
|
1059
|
+
*
|
|
1060
|
+
* @example
|
|
1061
|
+
* ```ts
|
|
1062
|
+
* import type { DropdownItem } from '@h-ai/ui'
|
|
1063
|
+
* const example: DropdownItem = { key: 'edit', label: '编辑' }
|
|
1064
|
+
* ```
|
|
751
1065
|
*/
|
|
752
1066
|
export interface DropdownItem {
|
|
753
1067
|
/** 唯一标识 */
|
|
@@ -763,6 +1077,16 @@ export interface DropdownItem {
|
|
|
763
1077
|
}
|
|
764
1078
|
/**
|
|
765
1079
|
* 下拉菜单属性
|
|
1080
|
+
*
|
|
1081
|
+
* @example
|
|
1082
|
+
* ```svelte
|
|
1083
|
+
* <script lang="ts">
|
|
1084
|
+
* import { Dropdown } from '@h-ai/ui'
|
|
1085
|
+
* import type { DropdownProps } from '@h-ai/ui'
|
|
1086
|
+
* const props: DropdownProps = { items: [{ key: 'edit', label: '编辑' }], position: 'bottom' }
|
|
1087
|
+
* </script>
|
|
1088
|
+
* <Dropdown {...props} />
|
|
1089
|
+
* ```
|
|
766
1090
|
*/
|
|
767
1091
|
export interface DropdownProps extends DataAttributes {
|
|
768
1092
|
/** 菜单项 */
|
|
@@ -785,13 +1109,45 @@ export interface DropdownProps extends DataAttributes {
|
|
|
785
1109
|
/**
|
|
786
1110
|
* 表单属性
|
|
787
1111
|
*/
|
|
788
|
-
/**
|
|
1112
|
+
/**
|
|
1113
|
+
* 表单标签位置:独立成行或与控件同行。
|
|
1114
|
+
*
|
|
1115
|
+
* @example
|
|
1116
|
+
* ```ts
|
|
1117
|
+
* import type { FormLabelPosition } from '@h-ai/ui'
|
|
1118
|
+
* const example: FormLabelPosition = 'top'
|
|
1119
|
+
* ```
|
|
1120
|
+
*/
|
|
789
1121
|
export type FormLabelPosition = 'top' | 'left';
|
|
790
|
-
/**
|
|
1122
|
+
/**
|
|
1123
|
+
* 双列表单字段占用列数;auto 根据控件类型判断。
|
|
1124
|
+
*
|
|
1125
|
+
* @example
|
|
1126
|
+
* ```ts
|
|
1127
|
+
* import type { FormColSpan } from '@h-ai/ui'
|
|
1128
|
+
* const example: FormColSpan = 2
|
|
1129
|
+
* ```
|
|
1130
|
+
*/
|
|
791
1131
|
export type FormColSpan = 'auto' | 1 | 2;
|
|
792
|
-
/**
|
|
1132
|
+
/**
|
|
1133
|
+
* 支持延迟求值的表单文案,切换语言时重新解析。
|
|
1134
|
+
*
|
|
1135
|
+
* @example
|
|
1136
|
+
* ```ts
|
|
1137
|
+
* import type { FormText } from '@h-ai/ui'
|
|
1138
|
+
* const example: FormText = () => '邮箱不能为空'
|
|
1139
|
+
* ```
|
|
1140
|
+
*/
|
|
793
1141
|
export type FormText = string | (() => string);
|
|
794
|
-
/**
|
|
1142
|
+
/**
|
|
1143
|
+
* 表单布局配置;窄容器自动收为单列。
|
|
1144
|
+
*
|
|
1145
|
+
* @example
|
|
1146
|
+
* ```ts
|
|
1147
|
+
* import type { FormLayoutOptions } from '@h-ai/ui'
|
|
1148
|
+
* const example: FormLayoutOptions = { columns: 2, labelPosition: 'top', labelWidth: '8rem' }
|
|
1149
|
+
* ```
|
|
1150
|
+
*/
|
|
795
1151
|
export interface FormLayoutOptions {
|
|
796
1152
|
/** 字段列数,默认 1。 */
|
|
797
1153
|
columns?: 1 | 2;
|
|
@@ -800,11 +1156,36 @@ export interface FormLayoutOptions {
|
|
|
800
1156
|
/** 同行标签宽度(CSS 值),默认 8rem。 */
|
|
801
1157
|
labelWidth?: string;
|
|
802
1158
|
}
|
|
803
|
-
/**
|
|
1159
|
+
/**
|
|
1160
|
+
* 可嵌入原生 form 的布局容器。
|
|
1161
|
+
*
|
|
1162
|
+
* @example
|
|
1163
|
+
* ```svelte
|
|
1164
|
+
* <script lang="ts">
|
|
1165
|
+
* import { FormLayout } from '@h-ai/ui'
|
|
1166
|
+
* import type { FormLayoutProps } from '@h-ai/ui'
|
|
1167
|
+
* const props: FormLayoutProps = { columns: 2, labelPosition: 'top' }
|
|
1168
|
+
* </script>
|
|
1169
|
+
* <FormLayout {...props}><span>表单字段</span></FormLayout>
|
|
1170
|
+
* ```
|
|
1171
|
+
*/
|
|
804
1172
|
export interface FormLayoutProps extends FormLayoutOptions, DataAttributes {
|
|
805
1173
|
class?: string;
|
|
806
1174
|
children?: Snippet;
|
|
807
1175
|
}
|
|
1176
|
+
/**
|
|
1177
|
+
* 表单容器属性;接管提交和重置,并向后代提供布局与禁用状态。
|
|
1178
|
+
*
|
|
1179
|
+
* @example
|
|
1180
|
+
* ```svelte
|
|
1181
|
+
* <script lang="ts">
|
|
1182
|
+
* import { Form } from '@h-ai/ui'
|
|
1183
|
+
* import type { FormProps } from '@h-ai/ui'
|
|
1184
|
+
* const props: FormProps = { id: 'profile-form', columns: 2 }
|
|
1185
|
+
* </script>
|
|
1186
|
+
* <Form {...props}><input name="email" type="email" value="ada@example.com" /></Form>
|
|
1187
|
+
* ```
|
|
1188
|
+
*/
|
|
808
1189
|
export interface FormProps extends FormLayoutOptions, DataAttributes {
|
|
809
1190
|
/** 表单 ID */
|
|
810
1191
|
id?: string;
|
|
@@ -825,6 +1206,16 @@ export interface FormProps extends FormLayoutOptions, DataAttributes {
|
|
|
825
1206
|
}
|
|
826
1207
|
/**
|
|
827
1208
|
* 表单字段属性
|
|
1209
|
+
*
|
|
1210
|
+
* @example
|
|
1211
|
+
* ```svelte
|
|
1212
|
+
* <script lang="ts">
|
|
1213
|
+
* import { FormField } from '@h-ai/ui'
|
|
1214
|
+
* import type { FormFieldProps } from '@h-ai/ui'
|
|
1215
|
+
* const props: FormFieldProps = { label: '邮箱', name: 'email', required: true }
|
|
1216
|
+
* </script>
|
|
1217
|
+
* <FormField {...props}><input name="email" type="email" /></FormField>
|
|
1218
|
+
* ```
|
|
828
1219
|
*/
|
|
829
1220
|
export interface FormFieldProps extends DataAttributes {
|
|
830
1221
|
/** 标签 */
|
|
@@ -852,6 +1243,16 @@ export interface FormFieldProps extends DataAttributes {
|
|
|
852
1243
|
}
|
|
853
1244
|
/**
|
|
854
1245
|
* 骨架屏属性
|
|
1246
|
+
*
|
|
1247
|
+
* @example
|
|
1248
|
+
* ```svelte
|
|
1249
|
+
* <script lang="ts">
|
|
1250
|
+
* import { Skeleton } from '@h-ai/ui'
|
|
1251
|
+
* import type { SkeletonProps } from '@h-ai/ui'
|
|
1252
|
+
* const props: SkeletonProps = { variant: 'text', count: 3 }
|
|
1253
|
+
* </script>
|
|
1254
|
+
* <Skeleton {...props} />
|
|
1255
|
+
* ```
|
|
855
1256
|
*/
|
|
856
1257
|
export interface SkeletonProps extends DataAttributes {
|
|
857
1258
|
/** 变体 */
|
|
@@ -871,6 +1272,16 @@ export interface SkeletonProps extends DataAttributes {
|
|
|
871
1272
|
}
|
|
872
1273
|
/**
|
|
873
1274
|
* 空状态属性
|
|
1275
|
+
*
|
|
1276
|
+
* @example
|
|
1277
|
+
* ```svelte
|
|
1278
|
+
* <script lang="ts">
|
|
1279
|
+
* import { Empty } from '@h-ai/ui'
|
|
1280
|
+
* import type { EmptyProps } from '@h-ai/ui'
|
|
1281
|
+
* const props: EmptyProps = { title: '暂无记录', icon: 'inbox' }
|
|
1282
|
+
* </script>
|
|
1283
|
+
* <Empty {...props} />
|
|
1284
|
+
* ```
|
|
874
1285
|
*/
|
|
875
1286
|
export interface EmptyProps extends DataAttributes {
|
|
876
1287
|
/** 标题 */
|
|
@@ -890,6 +1301,16 @@ export interface EmptyProps extends DataAttributes {
|
|
|
890
1301
|
}
|
|
891
1302
|
/**
|
|
892
1303
|
* 结果页属性
|
|
1304
|
+
*
|
|
1305
|
+
* @example
|
|
1306
|
+
* ```svelte
|
|
1307
|
+
* <script lang="ts">
|
|
1308
|
+
* import { Result } from '@h-ai/ui'
|
|
1309
|
+
* import type { ResultProps } from '@h-ai/ui'
|
|
1310
|
+
* const props: ResultProps = { status: 'success', title: '提交完成' }
|
|
1311
|
+
* </script>
|
|
1312
|
+
* <Result {...props} />
|
|
1313
|
+
* ```
|
|
893
1314
|
*/
|
|
894
1315
|
export interface ResultProps extends DataAttributes {
|
|
895
1316
|
/** 状态 */
|
|
@@ -909,6 +1330,16 @@ export interface ResultProps extends DataAttributes {
|
|
|
909
1330
|
}
|
|
910
1331
|
/**
|
|
911
1332
|
* 确认对话框属性
|
|
1333
|
+
*
|
|
1334
|
+
* @example
|
|
1335
|
+
* ```svelte
|
|
1336
|
+
* <script lang="ts">
|
|
1337
|
+
* import { Confirm } from '@h-ai/ui'
|
|
1338
|
+
* import type { ConfirmProps } from '@h-ai/ui'
|
|
1339
|
+
* const props: ConfirmProps = { open: true, title: '删除记录', message: '确定删除这条记录?', variant: 'warning' }
|
|
1340
|
+
* </script>
|
|
1341
|
+
* <Confirm {...props} />
|
|
1342
|
+
* ```
|
|
912
1343
|
*/
|
|
913
1344
|
export interface ConfirmProps extends DataAttributes {
|
|
914
1345
|
/** 是否打开 */
|
|
@@ -934,6 +1365,16 @@ export interface ConfirmProps extends DataAttributes {
|
|
|
934
1365
|
}
|
|
935
1366
|
/**
|
|
936
1367
|
* 标签属性
|
|
1368
|
+
*
|
|
1369
|
+
* @example
|
|
1370
|
+
* ```svelte
|
|
1371
|
+
* <script lang="ts">
|
|
1372
|
+
* import { Tag } from '@h-ai/ui'
|
|
1373
|
+
* import type { TagProps } from '@h-ai/ui'
|
|
1374
|
+
* const props: TagProps = { text: '已启用', variant: 'success', closable: true }
|
|
1375
|
+
* </script>
|
|
1376
|
+
* <Tag {...props} />
|
|
1377
|
+
* ```
|
|
937
1378
|
*/
|
|
938
1379
|
export interface TagProps extends DataAttributes {
|
|
939
1380
|
/** 文本 */
|
|
@@ -957,6 +1398,16 @@ export interface TagProps extends DataAttributes {
|
|
|
957
1398
|
}
|
|
958
1399
|
/**
|
|
959
1400
|
* 标签输入框属性
|
|
1401
|
+
*
|
|
1402
|
+
* @example
|
|
1403
|
+
* ```svelte
|
|
1404
|
+
* <script lang="ts">
|
|
1405
|
+
* import { TagInput } from '@h-ai/ui'
|
|
1406
|
+
* import type { TagInputProps } from '@h-ai/ui'
|
|
1407
|
+
* const props: TagInputProps = { tags: ['Svelte'], maxTags: 5 }
|
|
1408
|
+
* </script>
|
|
1409
|
+
* <TagInput {...props} />
|
|
1410
|
+
* ```
|
|
960
1411
|
*/
|
|
961
1412
|
export interface TagInputProps extends DataAttributes {
|
|
962
1413
|
/** 标签列表 */
|
|
@@ -978,6 +1429,12 @@ export interface TagInputProps extends DataAttributes {
|
|
|
978
1429
|
}
|
|
979
1430
|
/**
|
|
980
1431
|
* 步骤项
|
|
1432
|
+
*
|
|
1433
|
+
* @example
|
|
1434
|
+
* ```ts
|
|
1435
|
+
* import type { StepItem } from '@h-ai/ui'
|
|
1436
|
+
* const example: StepItem = { title: '确认资料', description: '核对后提交' }
|
|
1437
|
+
* ```
|
|
981
1438
|
*/
|
|
982
1439
|
export interface StepItem {
|
|
983
1440
|
/** 标题 */
|
|
@@ -989,6 +1446,16 @@ export interface StepItem {
|
|
|
989
1446
|
}
|
|
990
1447
|
/**
|
|
991
1448
|
* 步骤条属性
|
|
1449
|
+
*
|
|
1450
|
+
* @example
|
|
1451
|
+
* ```svelte
|
|
1452
|
+
* <script lang="ts">
|
|
1453
|
+
* import { Steps } from '@h-ai/ui'
|
|
1454
|
+
* import type { StepsProps } from '@h-ai/ui'
|
|
1455
|
+
* const props: StepsProps = { items: [{ title: '填写资料' }, { title: '确认' }], current: 0 }
|
|
1456
|
+
* </script>
|
|
1457
|
+
* <Steps {...props} />
|
|
1458
|
+
* ```
|
|
992
1459
|
*/
|
|
993
1460
|
export interface StepsProps extends DataAttributes {
|
|
994
1461
|
/** 步骤列表 */
|
|
@@ -1008,6 +1475,16 @@ export interface StepsProps extends DataAttributes {
|
|
|
1008
1475
|
}
|
|
1009
1476
|
/**
|
|
1010
1477
|
* 图标按钮属性
|
|
1478
|
+
*
|
|
1479
|
+
* @example
|
|
1480
|
+
* ```svelte
|
|
1481
|
+
* <script lang="ts">
|
|
1482
|
+
* import { IconButton } from '@h-ai/ui'
|
|
1483
|
+
* import type { IconButtonProps } from '@h-ai/ui'
|
|
1484
|
+
* const props: IconButtonProps = { label: '关闭', tooltip: '关闭面板' }
|
|
1485
|
+
* </script>
|
|
1486
|
+
* <IconButton {...props}>×</IconButton>
|
|
1487
|
+
* ```
|
|
1011
1488
|
*/
|
|
1012
1489
|
export interface IconButtonProps extends DataAttributes {
|
|
1013
1490
|
/** 图标(受信任的内联 SVG 字符串或 Snippet) */
|
|
@@ -1035,6 +1512,16 @@ export interface IconButtonProps extends DataAttributes {
|
|
|
1035
1512
|
}
|
|
1036
1513
|
/**
|
|
1037
1514
|
* 弹出层属性
|
|
1515
|
+
*
|
|
1516
|
+
* @example
|
|
1517
|
+
* ```svelte
|
|
1518
|
+
* <script lang="ts">
|
|
1519
|
+
* import { Popover } from '@h-ai/ui'
|
|
1520
|
+
* import type { PopoverProps } from '@h-ai/ui'
|
|
1521
|
+
* const props: PopoverProps = { position: 'bottom', portal: true }
|
|
1522
|
+
* </script>
|
|
1523
|
+
* <Popover {...props}>提示内容</Popover>
|
|
1524
|
+
* ```
|
|
1038
1525
|
*/
|
|
1039
1526
|
export interface PopoverProps extends DataAttributes {
|
|
1040
1527
|
/** 是否打开 */
|
|
@@ -1063,19 +1550,37 @@ export interface PopoverProps extends DataAttributes {
|
|
|
1063
1550
|
* - confirm: 双按钮(确认 / 取消)
|
|
1064
1551
|
* - alert: 单按钮(仅确认)
|
|
1065
1552
|
* - prompt: 带输入框的确认(预留)
|
|
1553
|
+
*
|
|
1554
|
+
* @example
|
|
1555
|
+
* ```ts
|
|
1556
|
+
* import type { MessageBoxAction } from '@h-ai/ui'
|
|
1557
|
+
* const example: MessageBoxAction = 'confirm'
|
|
1558
|
+
* ```
|
|
1066
1559
|
*/
|
|
1067
1560
|
export type MessageBoxAction = 'confirm' | 'cancel' | 'close';
|
|
1068
1561
|
/**
|
|
1069
1562
|
* MessageBox 图标类型
|
|
1563
|
+
*
|
|
1564
|
+
* @example
|
|
1565
|
+
* ```ts
|
|
1566
|
+
* import type { MessageBoxIconType } from '@h-ai/ui'
|
|
1567
|
+
* const example: MessageBoxIconType = 'warning'
|
|
1568
|
+
* ```
|
|
1070
1569
|
*/
|
|
1071
1570
|
export type MessageBoxIconType = 'info' | 'success' | 'warning' | 'error';
|
|
1072
1571
|
/**
|
|
1073
1572
|
* MessageBox 配置项
|
|
1573
|
+
*
|
|
1574
|
+
* @example
|
|
1575
|
+
* ```ts
|
|
1576
|
+
* import type { MessageBoxOptions } from '@h-ai/ui'
|
|
1577
|
+
* const example: MessageBoxOptions = { title: '删除记录', message: '确认删除?', showCancel: true, closeOnClickModal: false }
|
|
1578
|
+
* ```
|
|
1074
1579
|
*/
|
|
1075
1580
|
export interface MessageBoxOptions {
|
|
1076
1581
|
/** 标题 */
|
|
1077
1582
|
title?: string;
|
|
1078
|
-
/**
|
|
1583
|
+
/** 消息纯文本;HTML 标签按文字展示,不作为 HTML 执行。 */
|
|
1079
1584
|
message: string;
|
|
1080
1585
|
/** 类型:confirm 双按钮 / alert 单按钮 */
|
|
1081
1586
|
type?: 'confirm' | 'alert';
|
|
@@ -1089,15 +1594,21 @@ export interface MessageBoxOptions {
|
|
|
1089
1594
|
confirmVariant?: 'default' | 'primary' | 'warning' | 'error';
|
|
1090
1595
|
/** 是否显示取消按钮(alert 模式下默认 false) */
|
|
1091
1596
|
showCancel?: boolean;
|
|
1092
|
-
/**
|
|
1597
|
+
/** 点击遮罩是否关闭,默认 true;需要明确确认时显式设置 false。 */
|
|
1093
1598
|
closeOnClickModal?: boolean;
|
|
1094
|
-
/**
|
|
1599
|
+
/** 是否显示右上角关闭按钮,默认 true。 */
|
|
1095
1600
|
showClose?: boolean;
|
|
1096
1601
|
/** 确认前回调(返回 false 可阻止关闭) */
|
|
1097
1602
|
beforeClose?: (action: MessageBoxAction, instance: MessageBoxInstance) => boolean | Promise<boolean>;
|
|
1098
1603
|
}
|
|
1099
1604
|
/**
|
|
1100
1605
|
* MessageBox 实例(供 beforeClose 回调使用)
|
|
1606
|
+
*
|
|
1607
|
+
* @example
|
|
1608
|
+
* ```ts
|
|
1609
|
+
* import type { MessageBoxInstance } from '@h-ai/ui'
|
|
1610
|
+
* const example: MessageBoxInstance = { setLoading: loading => document.body.toggleAttribute('aria-busy', loading) }
|
|
1611
|
+
* ```
|
|
1101
1612
|
*/
|
|
1102
1613
|
export interface MessageBoxInstance {
|
|
1103
1614
|
/** 设置加载态 */
|
|
@@ -1105,6 +1616,12 @@ export interface MessageBoxInstance {
|
|
|
1105
1616
|
}
|
|
1106
1617
|
/**
|
|
1107
1618
|
* Message 消息提示配置项
|
|
1619
|
+
*
|
|
1620
|
+
* @example
|
|
1621
|
+
* ```ts
|
|
1622
|
+
* import type { MessageOptions } from '@h-ai/ui'
|
|
1623
|
+
* const example: MessageOptions = { message: '保存完成', type: 'success', duration: 3000 }
|
|
1624
|
+
* ```
|
|
1108
1625
|
*/
|
|
1109
1626
|
export interface MessageOptions {
|
|
1110
1627
|
/** 消息文本 */
|