@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
|
@@ -1,18 +1,91 @@
|
|
|
1
1
|
/** 表单布局和字段提示的内部上下文,不要求应用转发控件属性。 */
|
|
2
2
|
import type { FormLayoutOptions } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* 表单布局的私有 Svelte Context 键;应用通过 FormLayout 使用。
|
|
5
|
+
*
|
|
6
|
+
* @example 模块内部上下文
|
|
7
|
+
* ```ts
|
|
8
|
+
* const context = getContext<FormLayoutOptions | undefined>(FORM_LAYOUT_CONTEXT)
|
|
9
|
+
* const columns = context?.columns
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
3
12
|
export declare const FORM_LAYOUT_CONTEXT: unique symbol;
|
|
13
|
+
/**
|
|
14
|
+
* 字段标签、错误与主控件关联的私有 Context 键。
|
|
15
|
+
*
|
|
16
|
+
* @example 模块内部上下文
|
|
17
|
+
* ```ts
|
|
18
|
+
* const field = getContext<FormFieldContext | undefined>(FORM_FIELD_CONTEXT)
|
|
19
|
+
* const controlId = field?.controlId
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
4
22
|
export declare const FORM_FIELD_CONTEXT: unique symbol;
|
|
23
|
+
/**
|
|
24
|
+
* Modal/Drawer 向内部表单同步可见性的私有 Context 键。
|
|
25
|
+
*
|
|
26
|
+
* @example 模块内部上下文
|
|
27
|
+
* ```ts
|
|
28
|
+
* const visibility = getContext<FormVisibilityContext | undefined>(FORM_VISIBILITY_CONTEXT)
|
|
29
|
+
* const open = visibility?.open
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
5
32
|
export declare const FORM_VISIBILITY_CONTEXT: unique symbol;
|
|
33
|
+
/**
|
|
34
|
+
* 表单宿主的响应式可见状态,用于关闭时重置触碰校验。
|
|
35
|
+
*
|
|
36
|
+
* @example 模块内部上下文
|
|
37
|
+
* ```ts
|
|
38
|
+
* const example: FormVisibilityContext = { open: true }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
6
41
|
interface FormVisibilityContext {
|
|
7
42
|
readonly open: boolean;
|
|
8
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* 组件初始化阶段读取可见性;没有宿主时返回 undefined。
|
|
46
|
+
* @returns 最近宿主的可见状态;无宿主时为 undefined。
|
|
47
|
+
*
|
|
48
|
+
* @example 模块内部上下文
|
|
49
|
+
* ```ts
|
|
50
|
+
* const visibility = getFormVisibilityContext()
|
|
51
|
+
* const open = visibility?.open ?? true
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
9
54
|
export declare function getFormVisibilityContext(): FormVisibilityContext | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* 标签、消息和主控件的关联状态,只在当前组件树中使用。
|
|
57
|
+
*
|
|
58
|
+
* @example 模块内部上下文
|
|
59
|
+
* ```ts
|
|
60
|
+
* const example: FormFieldContext = { controlId: 'email', labelId: 'email-label', messageId: 'email-error', error: '邮箱不能为空' }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
10
63
|
export interface FormFieldContext {
|
|
11
64
|
readonly controlId: string;
|
|
12
65
|
readonly labelId: string;
|
|
13
66
|
readonly messageId: string | undefined;
|
|
14
67
|
readonly error: string;
|
|
15
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* 组件初始化阶段读取祖先布局;没有祖先时使用控件默认布局。
|
|
71
|
+
* @returns 最近表单布局;无祖先时为 undefined。
|
|
72
|
+
*
|
|
73
|
+
* @example 模块内部上下文
|
|
74
|
+
* ```ts
|
|
75
|
+
* const layout = getFormLayoutContext()
|
|
76
|
+
* const columns = layout?.columns ?? 1
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
16
79
|
export declare function getFormLayoutContext(): FormLayoutOptions | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* 组件初始化阶段读取最近字段的无障碍关联和校验消息。
|
|
82
|
+
* @returns 最近字段的标签、控件和校验消息关联;无字段时为 undefined。
|
|
83
|
+
*
|
|
84
|
+
* @example 模块内部上下文
|
|
85
|
+
* ```ts
|
|
86
|
+
* const field = getFormFieldContext()
|
|
87
|
+
* const descriptionId = field?.messageId
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
17
90
|
export declare function getFormFieldContext(): FormFieldContext | undefined;
|
|
18
91
|
export {};
|
|
@@ -1,13 +1,70 @@
|
|
|
1
1
|
import { getContext } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* 表单布局的私有 Svelte Context 键;应用通过 FormLayout 使用。
|
|
4
|
+
*
|
|
5
|
+
* @example 模块内部上下文
|
|
6
|
+
* ```ts
|
|
7
|
+
* const context = getContext<FormLayoutOptions | undefined>(FORM_LAYOUT_CONTEXT)
|
|
8
|
+
* const columns = context?.columns
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
2
11
|
export const FORM_LAYOUT_CONTEXT = Symbol('hai-form-layout');
|
|
12
|
+
/**
|
|
13
|
+
* 字段标签、错误与主控件关联的私有 Context 键。
|
|
14
|
+
*
|
|
15
|
+
* @example 模块内部上下文
|
|
16
|
+
* ```ts
|
|
17
|
+
* const field = getContext<FormFieldContext | undefined>(FORM_FIELD_CONTEXT)
|
|
18
|
+
* const controlId = field?.controlId
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
3
21
|
export const FORM_FIELD_CONTEXT = Symbol('hai-form-field');
|
|
22
|
+
/**
|
|
23
|
+
* Modal/Drawer 向内部表单同步可见性的私有 Context 键。
|
|
24
|
+
*
|
|
25
|
+
* @example 模块内部上下文
|
|
26
|
+
* ```ts
|
|
27
|
+
* const visibility = getContext<FormVisibilityContext | undefined>(FORM_VISIBILITY_CONTEXT)
|
|
28
|
+
* const open = visibility?.open
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
4
31
|
export const FORM_VISIBILITY_CONTEXT = Symbol('hai-form-visibility');
|
|
32
|
+
/**
|
|
33
|
+
* 组件初始化阶段读取可见性;没有宿主时返回 undefined。
|
|
34
|
+
* @returns 最近宿主的可见状态;无宿主时为 undefined。
|
|
35
|
+
*
|
|
36
|
+
* @example 模块内部上下文
|
|
37
|
+
* ```ts
|
|
38
|
+
* const visibility = getFormVisibilityContext()
|
|
39
|
+
* const open = visibility?.open ?? true
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
5
42
|
export function getFormVisibilityContext() {
|
|
6
43
|
return getContext(FORM_VISIBILITY_CONTEXT);
|
|
7
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* 组件初始化阶段读取祖先布局;没有祖先时使用控件默认布局。
|
|
47
|
+
* @returns 最近表单布局;无祖先时为 undefined。
|
|
48
|
+
*
|
|
49
|
+
* @example 模块内部上下文
|
|
50
|
+
* ```ts
|
|
51
|
+
* const layout = getFormLayoutContext()
|
|
52
|
+
* const columns = layout?.columns ?? 1
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
8
55
|
export function getFormLayoutContext() {
|
|
9
56
|
return getContext(FORM_LAYOUT_CONTEXT);
|
|
10
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* 组件初始化阶段读取最近字段的无障碍关联和校验消息。
|
|
60
|
+
* @returns 最近字段的标签、控件和校验消息关联;无字段时为 undefined。
|
|
61
|
+
*
|
|
62
|
+
* @example 模块内部上下文
|
|
63
|
+
* ```ts
|
|
64
|
+
* const field = getFormFieldContext()
|
|
65
|
+
* const descriptionId = field?.messageId
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
11
68
|
export function getFormFieldContext() {
|
|
12
69
|
return getContext(FORM_FIELD_CONTEXT);
|
|
13
70
|
}
|
|
@@ -1,12 +1,54 @@
|
|
|
1
1
|
/** 将原生校验状态保留为消息键,显示时按当前 UI 语言解析。 */
|
|
2
2
|
import type { UIMessageKey } from '../messages.js';
|
|
3
3
|
import type { FormText } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* 可重新翻译的原生约束错误,不缓存某个语言的最终文案。
|
|
6
|
+
*
|
|
7
|
+
* @example 模块内部上下文
|
|
8
|
+
* ```ts
|
|
9
|
+
* const example: FormValidationIssue = { key: 'form_min_length', params: { min: 12 } }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
4
12
|
export interface FormValidationIssue {
|
|
5
13
|
key: UIMessageKey;
|
|
6
14
|
params?: Record<string, string | number>;
|
|
7
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* 参与原生约束校验的表单控件集合。
|
|
18
|
+
*
|
|
19
|
+
* @example 模块内部上下文
|
|
20
|
+
* ```ts
|
|
21
|
+
* const example: FormControl = document.createElement('input')
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
8
24
|
type FormControl = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
25
|
+
/**
|
|
26
|
+
* 在显示时求值表单提示,语言切换后读取最新业务翻译。
|
|
27
|
+
* @param text - 待处理文本。
|
|
28
|
+
* @returns 当前语言的表单提示,空输入为空字符串。
|
|
29
|
+
*
|
|
30
|
+
* @example 模块内部上下文
|
|
31
|
+
* ```ts
|
|
32
|
+
* const message = resolveFormText(() => '邮箱不能为空')
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
9
35
|
export declare function resolveFormText(text?: FormText): string;
|
|
36
|
+
/**
|
|
37
|
+
* 在组件初始化阶段创建原生约束校验状态;宿主关闭或表单 reset 时清除过期错误。
|
|
38
|
+
* @param getOverride - 读取自定义校验提示的函数。
|
|
39
|
+
* @param getValue - 读取当前控件值以跟踪程序回填的函数。
|
|
40
|
+
* @returns 带响应式 message 和 validate/input/reset 方法的校验状态。
|
|
41
|
+
*
|
|
42
|
+
* @example 模块内部上下文
|
|
43
|
+
* ```ts
|
|
44
|
+
* const validation = createControlValidation(() => '邮箱不能为空')
|
|
45
|
+
* const input = document.createElement('input')
|
|
46
|
+
* input.required = true
|
|
47
|
+
* validation.validate(input)
|
|
48
|
+
* const message = validation.message
|
|
49
|
+
* validation.reset()
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
10
52
|
export declare function createControlValidation(getOverride?: () => FormText | undefined, getValue?: () => unknown): {
|
|
11
53
|
readonly message: string;
|
|
12
54
|
validate(control: FormControl): void;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { untrack } from 'svelte';
|
|
2
2
|
import { getUILocale, uiM } from '../messages.js';
|
|
3
3
|
import { getFormVisibilityContext } from './form-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* 在显示时求值表单提示,语言切换后读取最新业务翻译。
|
|
6
|
+
* @param text - 待处理文本。
|
|
7
|
+
* @returns 当前语言的表单提示,空输入为空字符串。
|
|
8
|
+
*
|
|
9
|
+
* @example 模块内部上下文
|
|
10
|
+
* ```ts
|
|
11
|
+
* const message = resolveFormText(() => '邮箱不能为空')
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
4
14
|
export function resolveFormText(text) {
|
|
5
15
|
if (typeof text !== 'function')
|
|
6
16
|
return text ?? '';
|
|
@@ -35,6 +45,22 @@ function readIssue(control) {
|
|
|
35
45
|
return { key: 'form_pattern' };
|
|
36
46
|
return undefined;
|
|
37
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* 在组件初始化阶段创建原生约束校验状态;宿主关闭或表单 reset 时清除过期错误。
|
|
50
|
+
* @param getOverride - 读取自定义校验提示的函数。
|
|
51
|
+
* @param getValue - 读取当前控件值以跟踪程序回填的函数。
|
|
52
|
+
* @returns 带响应式 message 和 validate/input/reset 方法的校验状态。
|
|
53
|
+
*
|
|
54
|
+
* @example 模块内部上下文
|
|
55
|
+
* ```ts
|
|
56
|
+
* const validation = createControlValidation(() => '邮箱不能为空')
|
|
57
|
+
* const input = document.createElement('input')
|
|
58
|
+
* input.required = true
|
|
59
|
+
* validation.validate(input)
|
|
60
|
+
* const message = validation.message
|
|
61
|
+
* validation.reset()
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
38
64
|
export function createControlValidation(getOverride = () => undefined, getValue) {
|
|
39
65
|
const visibility = getFormVisibilityContext();
|
|
40
66
|
let issue = $state();
|
|
@@ -3,5 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 字符串入口只服务由应用代码内置的简单 path/circle 等图标。涉及链接、外部资源、
|
|
5
5
|
* CSS、动画或可执行事件的 SVG 一律拒绝;复杂图标应使用 Svelte Snippet。
|
|
6
|
+
* @param markup - 候选内联 SVG 文本。
|
|
7
|
+
* @returns 允许标签及属性的 SVG;无效或不安全内容被移除。
|
|
8
|
+
*
|
|
9
|
+
* @example 模块内部上下文
|
|
10
|
+
* ```ts
|
|
11
|
+
* const safe = sanitizeInlineSvg('<svg viewBox="0 0 24 24"><path d="M0 0h24v24"/></svg>')
|
|
12
|
+
* ```
|
|
6
13
|
*/
|
|
7
14
|
export declare function sanitizeInlineSvg(markup: string): string;
|
|
@@ -20,6 +20,13 @@ const unsafeSvgElements = new Set([
|
|
|
20
20
|
*
|
|
21
21
|
* 字符串入口只服务由应用代码内置的简单 path/circle 等图标。涉及链接、外部资源、
|
|
22
22
|
* CSS、动画或可执行事件的 SVG 一律拒绝;复杂图标应使用 Svelte Snippet。
|
|
23
|
+
* @param markup - 候选内联 SVG 文本。
|
|
24
|
+
* @returns 允许标签及属性的 SVG;无效或不安全内容被移除。
|
|
25
|
+
*
|
|
26
|
+
* @example 模块内部上下文
|
|
27
|
+
* ```ts
|
|
28
|
+
* const safe = sanitizeInlineSvg('<svg viewBox="0 0 24 24"><path d="M0 0h24v24"/></svg>')
|
|
29
|
+
* ```
|
|
23
30
|
*/
|
|
24
31
|
export function sanitizeInlineSvg(markup) {
|
|
25
32
|
const trimmed = markup.trim();
|
|
@@ -1,2 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 读取请求/浏览器当前 UI 语言,服务端不跨请求修改全局默认值。
|
|
3
|
+
* @returns 当前请求或浏览器的 UI 语言。
|
|
4
|
+
*
|
|
5
|
+
* @example 模块内部上下文
|
|
6
|
+
* ```ts
|
|
7
|
+
* const locale = readUILocale()
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
1
10
|
export declare function readUILocale(): string;
|
|
11
|
+
/**
|
|
12
|
+
* 同步当前浏览器的 UI 语言;SSR 保持请求级隔离。
|
|
13
|
+
* @param locale - 显式语言代码;省略时使用当前上下文。
|
|
14
|
+
* @returns {void} 无返回值;同步浏览器语言,服务端保持请求隔离。
|
|
15
|
+
*
|
|
16
|
+
* @example 模块内部上下文
|
|
17
|
+
* ```ts
|
|
18
|
+
* changeUILocale('en-US')
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
2
21
|
export declare function changeUILocale(locale: string): void;
|
package/dist/internal/locale.js
CHANGED
|
@@ -9,11 +9,32 @@ const subscribe = createSubscriber((update) => {
|
|
|
9
9
|
notifyLocaleChange = undefined;
|
|
10
10
|
};
|
|
11
11
|
});
|
|
12
|
+
/**
|
|
13
|
+
* 读取请求/浏览器当前 UI 语言,服务端不跨请求修改全局默认值。
|
|
14
|
+
* @returns 当前请求或浏览器的 UI 语言。
|
|
15
|
+
*
|
|
16
|
+
* @example 模块内部上下文
|
|
17
|
+
* ```ts
|
|
18
|
+
* const locale = readUILocale()
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
12
21
|
export function readUILocale() {
|
|
13
22
|
subscribe();
|
|
14
23
|
return core.i18n.getGlobalLocale();
|
|
15
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* 同步当前浏览器的 UI 语言;SSR 保持请求级隔离。
|
|
27
|
+
* @param locale - 显式语言代码;省略时使用当前上下文。
|
|
28
|
+
* @returns {void} 无返回值;同步浏览器语言,服务端保持请求隔离。
|
|
29
|
+
*
|
|
30
|
+
* @example 模块内部上下文
|
|
31
|
+
* ```ts
|
|
32
|
+
* changeUILocale('en-US')
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
16
35
|
export function changeUILocale(locale) {
|
|
36
|
+
if (typeof window === 'undefined')
|
|
37
|
+
return;
|
|
17
38
|
core.i18n.setGlobalLocale(locale);
|
|
18
39
|
// 宿主可能在 $effect 中同步语言,setter 不能反向订阅自身状态。
|
|
19
40
|
untrack(() => {
|
package/dist/message.svelte.d.ts
CHANGED
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
import type { MessageOptions } from './types.js';
|
|
9
9
|
/**
|
|
10
10
|
* 内部消息条目
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import type { MessageItem } from '@h-ai/ui'
|
|
15
|
+
* const example: MessageItem = { id: 'message-1', message: '保存完成', type: 'success', duration: 3000, closable: true }
|
|
16
|
+
* ```
|
|
11
17
|
*/
|
|
12
18
|
export interface MessageItem {
|
|
13
19
|
id: string;
|
|
@@ -24,26 +30,110 @@ declare class MessageState {
|
|
|
24
30
|
private timers;
|
|
25
31
|
/**
|
|
26
32
|
* 添加消息
|
|
33
|
+
* @param options - 本次操作的行为与显示选项。
|
|
34
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { message } from '@h-ai/ui'
|
|
38
|
+
* // 布局中需挂载 MessageContainer。
|
|
39
|
+
* const id = message.add({ message: '保存完成', type: 'success', duration: 3000 })
|
|
40
|
+
* message.remove(id)
|
|
41
|
+
* ```
|
|
27
42
|
*/
|
|
28
43
|
add(options: MessageOptions | string): string;
|
|
29
44
|
/**
|
|
30
45
|
* 移除消息
|
|
46
|
+
* @param id - 待移除的条目 ID。
|
|
47
|
+
* @returns {void} 无返回值;同时清理对应的自动关闭定时器。
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { message } from '@h-ai/ui'
|
|
51
|
+
* // 布局中需挂载 MessageContainer。
|
|
52
|
+
* const id = message.info('同步中', 0)
|
|
53
|
+
* message.remove(id)
|
|
54
|
+
* ```
|
|
31
55
|
*/
|
|
32
56
|
remove(id: string): void;
|
|
33
57
|
/**
|
|
34
58
|
* 清空所有消息
|
|
59
|
+
* @returns {void} 无返回值;同时清理对应的自动关闭定时器。
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { message } from '@h-ai/ui'
|
|
63
|
+
* // 布局中需挂载 MessageContainer。
|
|
64
|
+
* message.info('同步中', 0)
|
|
65
|
+
* message.clear()
|
|
66
|
+
* ```
|
|
35
67
|
*/
|
|
36
68
|
clear(): void;
|
|
37
69
|
/**
|
|
38
70
|
* 快捷方法
|
|
71
|
+
* @param message - 已经本地化的用户提示。
|
|
72
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
73
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* import { message } from '@h-ai/ui'
|
|
77
|
+
* // 布局中需挂载 MessageContainer。
|
|
78
|
+
* const id = message.info('操作结果', 3000)
|
|
79
|
+
* message.remove(id)
|
|
80
|
+
* ```
|
|
39
81
|
*/
|
|
40
82
|
info(message: string, duration?: number): string;
|
|
83
|
+
/**
|
|
84
|
+
* 处理 success 操作。
|
|
85
|
+
* @param message - 已经本地化的用户提示。
|
|
86
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
87
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* import { message } from '@h-ai/ui'
|
|
91
|
+
* // 布局中需挂载 MessageContainer。
|
|
92
|
+
* const id = message.success('操作结果', 3000)
|
|
93
|
+
* message.remove(id)
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
41
96
|
success(message: string, duration?: number): string;
|
|
97
|
+
/**
|
|
98
|
+
* 处理 warning 操作。
|
|
99
|
+
* @param message - 已经本地化的用户提示。
|
|
100
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
101
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { message } from '@h-ai/ui'
|
|
105
|
+
* // 布局中需挂载 MessageContainer。
|
|
106
|
+
* const id = message.warning('操作结果', 3000)
|
|
107
|
+
* message.remove(id)
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
42
110
|
warning(message: string, duration?: number): string;
|
|
111
|
+
/**
|
|
112
|
+
* 处理 error 操作。
|
|
113
|
+
* @param message - 已经本地化的用户提示。
|
|
114
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
115
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* import { message } from '@h-ai/ui'
|
|
119
|
+
* // 布局中需挂载 MessageContainer。
|
|
120
|
+
* const id = message.error('操作结果', 3000)
|
|
121
|
+
* message.remove(id)
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
43
124
|
error(message: string, duration?: number): string;
|
|
44
125
|
}
|
|
45
126
|
/**
|
|
46
127
|
* Message 单例
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* import { message } from '@h-ai/ui'
|
|
132
|
+
* // 页面布局需挂载 MessageContainer。
|
|
133
|
+
* const id = message.success('保存完成', 3000)
|
|
134
|
+
* message.remove(id)
|
|
135
|
+
* message.clear()
|
|
136
|
+
* ```
|
|
47
137
|
*/
|
|
48
138
|
export declare const message: MessageState;
|
|
49
139
|
export {};
|
package/dist/message.svelte.js
CHANGED
|
@@ -13,6 +13,15 @@ class MessageState {
|
|
|
13
13
|
timers = new Map();
|
|
14
14
|
/**
|
|
15
15
|
* 添加消息
|
|
16
|
+
* @param options - 本次操作的行为与显示选项。
|
|
17
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { message } from '@h-ai/ui'
|
|
21
|
+
* // 布局中需挂载 MessageContainer。
|
|
22
|
+
* const id = message.add({ message: '保存完成', type: 'success', duration: 3000 })
|
|
23
|
+
* message.remove(id)
|
|
24
|
+
* ```
|
|
16
25
|
*/
|
|
17
26
|
add(options) {
|
|
18
27
|
const opts = typeof options === 'string' ? { message: options } : options;
|
|
@@ -36,6 +45,15 @@ class MessageState {
|
|
|
36
45
|
}
|
|
37
46
|
/**
|
|
38
47
|
* 移除消息
|
|
48
|
+
* @param id - 待移除的条目 ID。
|
|
49
|
+
* @returns {void} 无返回值;同时清理对应的自动关闭定时器。
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* import { message } from '@h-ai/ui'
|
|
53
|
+
* // 布局中需挂载 MessageContainer。
|
|
54
|
+
* const id = message.info('同步中', 0)
|
|
55
|
+
* message.remove(id)
|
|
56
|
+
* ```
|
|
39
57
|
*/
|
|
40
58
|
remove(id) {
|
|
41
59
|
const timer = this.timers.get(id);
|
|
@@ -47,6 +65,14 @@ class MessageState {
|
|
|
47
65
|
}
|
|
48
66
|
/**
|
|
49
67
|
* 清空所有消息
|
|
68
|
+
* @returns {void} 无返回值;同时清理对应的自动关闭定时器。
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { message } from '@h-ai/ui'
|
|
72
|
+
* // 布局中需挂载 MessageContainer。
|
|
73
|
+
* message.info('同步中', 0)
|
|
74
|
+
* message.clear()
|
|
75
|
+
* ```
|
|
50
76
|
*/
|
|
51
77
|
clear() {
|
|
52
78
|
for (const timer of this.timers.values()) {
|
|
@@ -57,21 +83,79 @@ class MessageState {
|
|
|
57
83
|
}
|
|
58
84
|
/**
|
|
59
85
|
* 快捷方法
|
|
86
|
+
* @param message - 已经本地化的用户提示。
|
|
87
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
88
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import { message } from '@h-ai/ui'
|
|
92
|
+
* // 布局中需挂载 MessageContainer。
|
|
93
|
+
* const id = message.info('操作结果', 3000)
|
|
94
|
+
* message.remove(id)
|
|
95
|
+
* ```
|
|
60
96
|
*/
|
|
61
97
|
info(message, duration) {
|
|
62
98
|
return this.add({ message, type: 'info', duration });
|
|
63
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* 处理 success 操作。
|
|
102
|
+
* @param message - 已经本地化的用户提示。
|
|
103
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
104
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
105
|
+
* @example
|
|
106
|
+
* ```ts
|
|
107
|
+
* import { message } from '@h-ai/ui'
|
|
108
|
+
* // 布局中需挂载 MessageContainer。
|
|
109
|
+
* const id = message.success('操作结果', 3000)
|
|
110
|
+
* message.remove(id)
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
64
113
|
success(message, duration) {
|
|
65
114
|
return this.add({ message, type: 'success', duration });
|
|
66
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* 处理 warning 操作。
|
|
118
|
+
* @param message - 已经本地化的用户提示。
|
|
119
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
120
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* import { message } from '@h-ai/ui'
|
|
124
|
+
* // 布局中需挂载 MessageContainer。
|
|
125
|
+
* const id = message.warning('操作结果', 3000)
|
|
126
|
+
* message.remove(id)
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
67
129
|
warning(message, duration) {
|
|
68
130
|
return this.add({ message, type: 'warning', duration });
|
|
69
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* 处理 error 操作。
|
|
134
|
+
* @param message - 已经本地化的用户提示。
|
|
135
|
+
* @param duration - 提示持续时间,单位毫秒。
|
|
136
|
+
* @returns 新条目的 ID,可用于提前移除。
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* import { message } from '@h-ai/ui'
|
|
140
|
+
* // 布局中需挂载 MessageContainer。
|
|
141
|
+
* const id = message.error('操作结果', 3000)
|
|
142
|
+
* message.remove(id)
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
70
145
|
error(message, duration) {
|
|
71
146
|
return this.add({ message, type: 'error', duration });
|
|
72
147
|
}
|
|
73
148
|
}
|
|
74
149
|
/**
|
|
75
150
|
* Message 单例
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* import { message } from '@h-ai/ui'
|
|
155
|
+
* // 页面布局需挂载 MessageContainer。
|
|
156
|
+
* const id = message.success('保存完成', 3000)
|
|
157
|
+
* message.remove(id)
|
|
158
|
+
* message.clear()
|
|
159
|
+
* ```
|
|
76
160
|
*/
|
|
77
161
|
export const message = new MessageState();
|