@h-ai/ui 0.1.0-alpha.29 → 0.1.0-alpha.31
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.md +50 -3
- package/dist/components/compounds/Accordion.svelte +6 -3
- package/dist/components/compounds/Accordion.svelte.d.ts +3 -1
- package/dist/components/compounds/ActionSheet.svelte +11 -8
- package/dist/components/compounds/ActionSheet.svelte.d.ts +3 -1
- package/dist/components/compounds/Alert.svelte +6 -4
- package/dist/components/compounds/Alert.svelte.d.ts +3 -2
- package/dist/components/compounds/AppBar.svelte +13 -9
- package/dist/components/compounds/AppBar.svelte.d.ts +3 -1
- package/dist/components/compounds/BottomNav.svelte +13 -10
- package/dist/components/compounds/BottomNav.svelte.d.ts +3 -1
- package/dist/components/compounds/Breadcrumb.svelte +6 -4
- package/dist/components/compounds/Breadcrumb.svelte.d.ts +3 -2
- package/dist/components/compounds/Calendar.svelte +7 -2
- package/dist/components/compounds/Calendar.svelte.d.ts +3 -1
- package/dist/components/compounds/Card.svelte +6 -4
- package/dist/components/compounds/Card.svelte.d.ts +3 -2
- package/dist/components/compounds/Combobox.svelte +6 -2
- package/dist/components/compounds/Combobox.svelte.d.ts +3 -1
- package/dist/components/compounds/Confirm.svelte +9 -7
- package/dist/components/compounds/Confirm.svelte.d.ts +3 -2
- package/dist/components/compounds/DataTable.svelte +6 -2
- package/dist/components/compounds/DataTable.svelte.d.ts +2 -1
- package/dist/components/compounds/DatePicker.svelte +7 -2
- package/dist/components/compounds/DatePicker.svelte.d.ts +3 -1
- package/dist/components/compounds/Drawer.svelte +6 -4
- package/dist/components/compounds/Drawer.svelte.d.ts +3 -2
- package/dist/components/compounds/Dropdown.svelte +6 -4
- package/dist/components/compounds/Dropdown.svelte.d.ts +3 -2
- package/dist/components/compounds/Empty.svelte +6 -4
- package/dist/components/compounds/Empty.svelte.d.ts +3 -2
- package/dist/components/compounds/Form.svelte +11 -9
- package/dist/components/compounds/Form.svelte.d.ts +3 -2
- package/dist/components/compounds/FormField.svelte +6 -4
- package/dist/components/compounds/FormField.svelte.d.ts +3 -2
- package/dist/components/compounds/InfiniteScroll.svelte +10 -7
- package/dist/components/compounds/InfiniteScroll.svelte.d.ts +3 -1
- package/dist/components/compounds/MessageBoxContainer.svelte +6 -1
- package/dist/components/compounds/MessageBoxContainer.svelte.d.ts +3 -17
- package/dist/components/compounds/MessageBoxDialog.svelte +9 -7
- package/dist/components/compounds/MessageBoxDialog.svelte.d.ts +2 -1
- package/dist/components/compounds/MessageContainer.svelte +43 -66
- package/dist/components/compounds/MessageContainer.svelte.d.ts +2 -1
- package/dist/components/compounds/Modal.svelte +29 -43
- package/dist/components/compounds/Modal.svelte.d.ts +3 -2
- package/dist/components/compounds/PageHeader.svelte +6 -2
- package/dist/components/compounds/PageHeader.svelte.d.ts +3 -1
- package/dist/components/compounds/Pagination.svelte +6 -4
- package/dist/components/compounds/Pagination.svelte.d.ts +3 -2
- package/dist/components/compounds/Popover.svelte +10 -8
- package/dist/components/compounds/Popover.svelte.d.ts +3 -2
- package/dist/components/compounds/PullRefresh.svelte +11 -8
- package/dist/components/compounds/PullRefresh.svelte.d.ts +3 -1
- package/dist/components/compounds/Result.svelte +6 -4
- package/dist/components/compounds/Result.svelte.d.ts +3 -2
- package/dist/components/compounds/SafeArea.svelte +6 -3
- package/dist/components/compounds/SafeArea.svelte.d.ts +3 -1
- package/dist/components/compounds/Skeleton.svelte +6 -4
- package/dist/components/compounds/Skeleton.svelte.d.ts +3 -2
- package/dist/components/compounds/Steps.svelte +6 -4
- package/dist/components/compounds/Steps.svelte.d.ts +3 -2
- package/dist/components/compounds/SwipeCell.svelte +6 -3
- package/dist/components/compounds/SwipeCell.svelte.d.ts +3 -1
- package/dist/components/compounds/Tabs.svelte +6 -4
- package/dist/components/compounds/Tabs.svelte.d.ts +3 -2
- package/dist/components/compounds/TagInput.svelte +11 -9
- package/dist/components/compounds/TagInput.svelte.d.ts +3 -2
- package/dist/components/compounds/Timeline.svelte +6 -3
- package/dist/components/compounds/Timeline.svelte.d.ts +3 -1
- package/dist/components/compounds/ToastContainer.svelte +6 -2
- package/dist/components/compounds/ToastContainer.svelte.d.ts +2 -1
- package/dist/components/compounds/Tooltip.svelte +6 -4
- package/dist/components/compounds/Tooltip.svelte.d.ts +3 -2
- package/dist/components/primitives/Avatar.svelte +6 -4
- package/dist/components/primitives/Avatar.svelte.d.ts +3 -2
- package/dist/components/primitives/Badge.svelte +6 -4
- package/dist/components/primitives/Badge.svelte.d.ts +3 -2
- package/dist/components/primitives/BareButton.svelte +15 -12
- package/dist/components/primitives/BareButton.svelte.d.ts +3 -2
- package/dist/components/primitives/BareInput.svelte +37 -34
- package/dist/components/primitives/BareInput.svelte.d.ts +3 -2
- package/dist/components/primitives/Button.svelte +12 -10
- package/dist/components/primitives/Button.svelte.d.ts +3 -2
- package/dist/components/primitives/Checkbox.svelte +6 -4
- package/dist/components/primitives/Checkbox.svelte.d.ts +3 -2
- package/dist/components/primitives/IconButton.svelte +6 -4
- package/dist/components/primitives/IconButton.svelte.d.ts +3 -2
- package/dist/components/primitives/Input.svelte +6 -4
- package/dist/components/primitives/Input.svelte.d.ts +3 -2
- package/dist/components/primitives/Progress.svelte +6 -4
- package/dist/components/primitives/Progress.svelte.d.ts +3 -2
- package/dist/components/primitives/Radio.svelte +6 -4
- package/dist/components/primitives/Radio.svelte.d.ts +2 -2
- package/dist/components/primitives/Range.svelte +6 -3
- package/dist/components/primitives/Range.svelte.d.ts +3 -1
- package/dist/components/primitives/Rating.svelte +6 -3
- package/dist/components/primitives/Rating.svelte.d.ts +3 -1
- package/dist/components/primitives/Select.svelte +255 -48
- package/dist/components/primitives/Select.svelte.d.ts +2 -2
- package/dist/components/primitives/Spinner.svelte +6 -4
- package/dist/components/primitives/Spinner.svelte.d.ts +3 -2
- package/dist/components/primitives/Switch.svelte +6 -4
- package/dist/components/primitives/Switch.svelte.d.ts +3 -2
- package/dist/components/primitives/Tag.svelte +6 -4
- package/dist/components/primitives/Tag.svelte.d.ts +3 -2
- package/dist/components/primitives/Textarea.svelte +34 -19
- package/dist/components/primitives/Textarea.svelte.d.ts +3 -2
- package/dist/components/primitives/ToggleCheckbox.svelte +13 -10
- package/dist/components/primitives/ToggleCheckbox.svelte.d.ts +3 -2
- package/dist/components/primitives/ToggleInput.svelte +13 -10
- package/dist/components/primitives/ToggleInput.svelte.d.ts +3 -2
- package/dist/components/primitives/ToggleRadio.svelte +13 -10
- package/dist/components/primitives/ToggleRadio.svelte.d.ts +3 -2
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte +8 -5
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte.d.ts +3 -1
- package/dist/components/scenes/ai/AiDocumentEditor.svelte +40 -10
- package/dist/components/scenes/ai/AiDocumentEditor.svelte.d.ts +3 -1
- package/dist/components/scenes/ai/MarkdownRenderer.svelte +49 -7
- package/dist/components/scenes/ai/MarkdownRenderer.svelte.d.ts +3 -1
- package/dist/components/scenes/ai/document-parse.d.ts +2 -0
- package/dist/components/scenes/ai/document-parse.js +16 -17
- package/dist/components/scenes/ai/document-types.d.ts +6 -1
- package/dist/components/scenes/ai/markdown-parse.d.ts +2 -0
- package/dist/components/scenes/ai/markdown-parse.js +17 -20
- package/dist/components/scenes/ai/safe-html.d.ts +16 -0
- package/dist/components/scenes/ai/safe-html.js +284 -0
- package/dist/components/scenes/ai/table/AiTableEditor.svelte +6 -3
- package/dist/components/scenes/ai/table/AiTableEditor.svelte.d.ts +3 -1
- package/dist/components/scenes/ai/table/table-types.d.ts +2 -1
- package/dist/components/scenes/app/FeedbackModal.svelte +5 -2
- package/dist/components/scenes/app/FeedbackModal.svelte.d.ts +3 -1
- package/dist/components/scenes/app/LanguageSwitch.svelte +6 -2
- package/dist/components/scenes/app/LanguageSwitch.svelte.d.ts +3 -1
- package/dist/components/scenes/app/SettingsLayout.svelte +6 -3
- package/dist/components/scenes/app/SettingsLayout.svelte.d.ts +2 -1
- package/dist/components/scenes/app/SettingsModal.svelte +6 -3
- package/dist/components/scenes/app/SettingsModal.svelte.d.ts +3 -1
- package/dist/components/scenes/app/ThemeColorPicker.svelte +6 -3
- package/dist/components/scenes/app/ThemeColorPicker.svelte.d.ts +3 -1
- package/dist/components/scenes/app/ThemeSelector.svelte +6 -3
- package/dist/components/scenes/app/ThemeSelector.svelte.d.ts +3 -1
- package/dist/components/scenes/app/ThemeToggle.svelte +6 -2
- package/dist/components/scenes/app/ThemeToggle.svelte.d.ts +3 -1
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte +16 -11
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte.d.ts +2 -1
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte +6 -3
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte.d.ts +2 -2
- package/dist/components/scenes/crud/CrudDetailPanel.svelte +6 -3
- package/dist/components/scenes/crud/CrudDetailPanel.svelte.d.ts +2 -2
- package/dist/components/scenes/crud/CrudEditPanel.svelte +6 -3
- package/dist/components/scenes/crud/CrudEditPanel.svelte.d.ts +2 -2
- package/dist/components/scenes/crud/CrudFilterBar.svelte +6 -2
- package/dist/components/scenes/crud/CrudFilterBar.svelte.d.ts +2 -1
- package/dist/components/scenes/crud/CrudPage.svelte +6 -2
- package/dist/components/scenes/crud/CrudPage.svelte.d.ts +2 -1
- package/dist/components/scenes/crud/crud-types.d.ts +2 -2
- package/dist/components/scenes/crypto/EncryptedInput.svelte +6 -3
- package/dist/components/scenes/crypto/EncryptedInput.svelte.d.ts +3 -2
- package/dist/components/scenes/crypto/HashDisplay.svelte +6 -3
- package/dist/components/scenes/crypto/HashDisplay.svelte.d.ts +3 -1
- package/dist/components/scenes/crypto/SignatureDisplay.svelte +6 -3
- package/dist/components/scenes/crypto/SignatureDisplay.svelte.d.ts +3 -1
- package/dist/components/scenes/error/ErrorPage.svelte +6 -3
- package/dist/components/scenes/error/ErrorPage.svelte.d.ts +2 -1
- package/dist/components/scenes/iam/AuthShell.svelte +6 -3
- package/dist/components/scenes/iam/AuthShell.svelte.d.ts +2 -1
- package/dist/components/scenes/iam/ChangePasswordForm.svelte +6 -3
- package/dist/components/scenes/iam/ChangePasswordForm.svelte.d.ts +3 -1
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte +6 -3
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte.d.ts +3 -1
- package/dist/components/scenes/iam/LoginForm.svelte +6 -3
- package/dist/components/scenes/iam/LoginForm.svelte.d.ts +3 -1
- package/dist/components/scenes/iam/PasswordInput.svelte +6 -4
- package/dist/components/scenes/iam/PasswordInput.svelte.d.ts +3 -2
- package/dist/components/scenes/iam/RegisterForm.svelte +6 -4
- package/dist/components/scenes/iam/RegisterForm.svelte.d.ts +3 -1
- package/dist/components/scenes/iam/ResetPasswordForm.svelte +6 -3
- package/dist/components/scenes/iam/ResetPasswordForm.svelte.d.ts +3 -1
- package/dist/components/scenes/iam/UserProfile.svelte +6 -3
- package/dist/components/scenes/iam/UserProfile.svelte.d.ts +3 -1
- package/dist/components/scenes/storage/AvatarUpload.svelte +11 -8
- package/dist/components/scenes/storage/AvatarUpload.svelte.d.ts +3 -1
- package/dist/components/scenes/storage/FileList.svelte +6 -3
- package/dist/components/scenes/storage/FileList.svelte.d.ts +3 -1
- package/dist/components/scenes/storage/FileUpload.svelte +6 -3
- package/dist/components/scenes/storage/FileUpload.svelte.d.ts +3 -1
- package/dist/components/scenes/storage/ImageUpload.svelte +12 -9
- package/dist/components/scenes/storage/ImageUpload.svelte.d.ts +3 -1
- package/dist/components/scenes/types.d.ts +20 -16
- package/dist/styles/global.css +5 -0
- package/dist/types.d.ts +48 -41
- package/dist/utils.d.ts +6 -1
- package/dist/utils.js +16 -1
- package/package.json +2 -2
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* @module types
|
|
6
6
|
*/
|
|
7
7
|
import type { Snippet } from 'svelte';
|
|
8
|
-
import type { Size } from '../../types.js';
|
|
8
|
+
import type { DataAttributes, Size } from '../../types.js';
|
|
9
9
|
/**
|
|
10
10
|
* 密码输入框属性
|
|
11
11
|
*/
|
|
12
|
-
export interface PasswordInputProps {
|
|
12
|
+
export interface PasswordInputProps extends DataAttributes {
|
|
13
13
|
/** 元素 ID */
|
|
14
14
|
id?: string;
|
|
15
15
|
/** 值 */
|
|
@@ -65,7 +65,7 @@ export interface LoginFormData {
|
|
|
65
65
|
/**
|
|
66
66
|
* 登录表单属性
|
|
67
67
|
*/
|
|
68
|
-
export interface LoginFormProps {
|
|
68
|
+
export interface LoginFormProps extends DataAttributes {
|
|
69
69
|
/** 加载状态 */
|
|
70
70
|
loading?: boolean;
|
|
71
71
|
/** 禁用状态 */
|
|
@@ -117,7 +117,7 @@ export interface RegisterFormData {
|
|
|
117
117
|
/**
|
|
118
118
|
* 注册表单属性
|
|
119
119
|
*/
|
|
120
|
-
export interface RegisterFormProps {
|
|
120
|
+
export interface RegisterFormProps extends DataAttributes {
|
|
121
121
|
/** 加载状态 */
|
|
122
122
|
loading?: boolean;
|
|
123
123
|
/** 禁用状态 */
|
|
@@ -162,7 +162,7 @@ export interface ChangePasswordFormData {
|
|
|
162
162
|
/**
|
|
163
163
|
* 修改密码表单属性
|
|
164
164
|
*/
|
|
165
|
-
export interface ChangePasswordFormProps {
|
|
165
|
+
export interface ChangePasswordFormProps extends DataAttributes {
|
|
166
166
|
/** 加载状态 */
|
|
167
167
|
loading?: boolean;
|
|
168
168
|
/** 禁用状态 */
|
|
@@ -192,7 +192,7 @@ export interface ForgotPasswordFormData {
|
|
|
192
192
|
/**
|
|
193
193
|
* 找回密码表单属性
|
|
194
194
|
*/
|
|
195
|
-
export interface ForgotPasswordFormProps {
|
|
195
|
+
export interface ForgotPasswordFormProps extends DataAttributes {
|
|
196
196
|
/** 加载状态 */
|
|
197
197
|
loading?: boolean;
|
|
198
198
|
/** 禁用状态 */
|
|
@@ -231,7 +231,7 @@ export interface ResetPasswordFormData {
|
|
|
231
231
|
/**
|
|
232
232
|
* 重置密码表单属性
|
|
233
233
|
*/
|
|
234
|
-
export interface ResetPasswordFormProps {
|
|
234
|
+
export interface ResetPasswordFormProps extends DataAttributes {
|
|
235
235
|
/** 加载状态 */
|
|
236
236
|
loading?: boolean;
|
|
237
237
|
/** 禁用状态 */
|
|
@@ -287,7 +287,7 @@ export interface UserProfileSubmitData {
|
|
|
287
287
|
/**
|
|
288
288
|
* 用户个人信息属性
|
|
289
289
|
*/
|
|
290
|
-
export interface UserProfileProps {
|
|
290
|
+
export interface UserProfileProps extends DataAttributes {
|
|
291
291
|
/** 用户信息 */
|
|
292
292
|
user?: UserProfileData;
|
|
293
293
|
/** 是否可编辑 */
|
|
@@ -338,7 +338,7 @@ export interface UploadFile {
|
|
|
338
338
|
/**
|
|
339
339
|
* 文件上传属性
|
|
340
340
|
*/
|
|
341
|
-
export interface FileUploadProps {
|
|
341
|
+
export interface FileUploadProps extends DataAttributes {
|
|
342
342
|
/** 接受的文件类型 */
|
|
343
343
|
accept?: string;
|
|
344
344
|
/** 最大文件大小 (bytes) */
|
|
@@ -394,7 +394,7 @@ export interface FileItem {
|
|
|
394
394
|
/**
|
|
395
395
|
* 文件列表属性
|
|
396
396
|
*/
|
|
397
|
-
export interface FileListProps {
|
|
397
|
+
export interface FileListProps extends DataAttributes {
|
|
398
398
|
/** 文件列表 */
|
|
399
399
|
files?: FileItem[];
|
|
400
400
|
/** 加载状态 */
|
|
@@ -423,7 +423,7 @@ export interface FileListProps {
|
|
|
423
423
|
/**
|
|
424
424
|
* 图片上传属性
|
|
425
425
|
*/
|
|
426
|
-
export interface ImageUploadProps {
|
|
426
|
+
export interface ImageUploadProps extends DataAttributes {
|
|
427
427
|
/** 图片 URL */
|
|
428
428
|
value?: string;
|
|
429
429
|
/** 接受的文件类型 */
|
|
@@ -456,7 +456,7 @@ export interface ImageUploadProps {
|
|
|
456
456
|
/**
|
|
457
457
|
* 头像上传属性
|
|
458
458
|
*/
|
|
459
|
-
export interface AvatarUploadProps {
|
|
459
|
+
export interface AvatarUploadProps extends DataAttributes {
|
|
460
460
|
/** 头像 URL */
|
|
461
461
|
value?: string;
|
|
462
462
|
/** 尺寸 */
|
|
@@ -485,7 +485,7 @@ export interface AvatarUploadProps {
|
|
|
485
485
|
/**
|
|
486
486
|
* 加密输入框属性
|
|
487
487
|
*/
|
|
488
|
-
export interface EncryptedInputProps {
|
|
488
|
+
export interface EncryptedInputProps extends DataAttributes {
|
|
489
489
|
/** 原始值 */
|
|
490
490
|
value?: string;
|
|
491
491
|
/** 加密后的值 */
|
|
@@ -518,7 +518,7 @@ export interface EncryptedInputProps {
|
|
|
518
518
|
/**
|
|
519
519
|
* 哈希展示属性
|
|
520
520
|
*/
|
|
521
|
-
export interface HashDisplayProps {
|
|
521
|
+
export interface HashDisplayProps extends DataAttributes {
|
|
522
522
|
/** 哈希值 */
|
|
523
523
|
value?: string;
|
|
524
524
|
/** 算法 */
|
|
@@ -541,9 +541,11 @@ export interface HashDisplayProps {
|
|
|
541
541
|
/**
|
|
542
542
|
* Markdown 渲染器属性
|
|
543
543
|
*/
|
|
544
|
-
export interface MarkdownRendererProps {
|
|
544
|
+
export interface MarkdownRendererProps extends DataAttributes {
|
|
545
545
|
/** Markdown 源文本 */
|
|
546
546
|
content?: string;
|
|
547
|
+
/** 文本字号,支持 number(按 px)或任意 CSS 长度字符串 */
|
|
548
|
+
fontSize?: string | number;
|
|
547
549
|
/** 自定义类名 */
|
|
548
550
|
class?: string;
|
|
549
551
|
/** 是否显示代码块复制按钮(默认 true) */
|
|
@@ -552,11 +554,13 @@ export interface MarkdownRendererProps {
|
|
|
552
554
|
enableHighlight?: boolean;
|
|
553
555
|
/** 是否将换行符转换为 <br>(默认 true,适合 AI 输出) */
|
|
554
556
|
breaks?: boolean;
|
|
557
|
+
/** 是否按安全白名单解析原始 HTML 标签(默认 false) */
|
|
558
|
+
allowHtmlTags?: boolean;
|
|
555
559
|
}
|
|
556
560
|
/**
|
|
557
561
|
* 签名展示属性
|
|
558
562
|
*/
|
|
559
|
-
export interface SignatureDisplayProps {
|
|
563
|
+
export interface SignatureDisplayProps extends DataAttributes {
|
|
560
564
|
/** 签名值 */
|
|
561
565
|
signature?: string;
|
|
562
566
|
/** 公钥 */
|
package/dist/styles/global.css
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
* @module types
|
|
6
6
|
*/
|
|
7
7
|
import type { Snippet } from 'svelte';
|
|
8
|
+
/**
|
|
9
|
+
* 可转发到组件根节点或主交互节点的 data-* 属性。
|
|
10
|
+
*/
|
|
11
|
+
export type DataAttributeValue = string | number | boolean | null | undefined;
|
|
12
|
+
export interface DataAttributes {
|
|
13
|
+
[key: `data-${string}`]: DataAttributeValue;
|
|
14
|
+
}
|
|
8
15
|
/**
|
|
9
16
|
* 基础变体类型
|
|
10
17
|
*/
|
|
@@ -24,7 +31,7 @@ export type Alignment = 'start' | 'center' | 'end';
|
|
|
24
31
|
/**
|
|
25
32
|
* 按钮属性
|
|
26
33
|
*/
|
|
27
|
-
export interface ButtonProps {
|
|
34
|
+
export interface ButtonProps extends DataAttributes {
|
|
28
35
|
/** 变体 */
|
|
29
36
|
variant?: Variant;
|
|
30
37
|
/** 尺寸 */
|
|
@@ -53,7 +60,7 @@ export interface ButtonProps {
|
|
|
53
60
|
/**
|
|
54
61
|
* 无样式按钮属性
|
|
55
62
|
*/
|
|
56
|
-
export interface BareButtonProps {
|
|
63
|
+
export interface BareButtonProps extends DataAttributes {
|
|
57
64
|
/** 按钮类型 */
|
|
58
65
|
type?: 'button' | 'submit' | 'reset';
|
|
59
66
|
/** 是否禁用 */
|
|
@@ -78,7 +85,7 @@ export interface BareButtonProps {
|
|
|
78
85
|
/**
|
|
79
86
|
* 输入框属性
|
|
80
87
|
*/
|
|
81
|
-
export interface InputProps {
|
|
88
|
+
export interface InputProps extends DataAttributes {
|
|
82
89
|
/** 值 */
|
|
83
90
|
value?: string;
|
|
84
91
|
/** 占位符 */
|
|
@@ -151,7 +158,7 @@ export interface InputProps {
|
|
|
151
158
|
/**
|
|
152
159
|
* 无样式输入框属性
|
|
153
160
|
*/
|
|
154
|
-
export interface BareInputProps {
|
|
161
|
+
export interface BareInputProps extends DataAttributes {
|
|
155
162
|
/** 值 */
|
|
156
163
|
value?: string;
|
|
157
164
|
/** 占位符 */
|
|
@@ -230,7 +237,7 @@ export interface BareInputProps {
|
|
|
230
237
|
/**
|
|
231
238
|
* 文本域属性
|
|
232
239
|
*/
|
|
233
|
-
export interface TextareaProps {
|
|
240
|
+
export interface TextareaProps extends DataAttributes {
|
|
234
241
|
/** 值 */
|
|
235
242
|
value?: string;
|
|
236
243
|
/** 占位符 */
|
|
@@ -276,10 +283,10 @@ export interface SelectOption<T = string> {
|
|
|
276
283
|
/**
|
|
277
284
|
* 选择框属性
|
|
278
285
|
*/
|
|
279
|
-
export interface SelectProps<T = string> {
|
|
286
|
+
export interface SelectProps<T = string> extends DataAttributes {
|
|
280
287
|
/** 值 */
|
|
281
288
|
value?: T;
|
|
282
|
-
/**
|
|
289
|
+
/** 选项 */
|
|
283
290
|
options?: SelectOption<T>[];
|
|
284
291
|
/** 占位符 */
|
|
285
292
|
placeholder?: string;
|
|
@@ -289,23 +296,23 @@ export interface SelectProps<T = string> {
|
|
|
289
296
|
disabled?: boolean;
|
|
290
297
|
/** 是否必填 */
|
|
291
298
|
required?: boolean;
|
|
299
|
+
/** 是否可清空 */
|
|
300
|
+
clearable?: boolean;
|
|
301
|
+
/** 是否可筛选(启用后可在输入框内输入过滤选项) */
|
|
302
|
+
filterable?: boolean;
|
|
292
303
|
/** 错误消息 */
|
|
293
304
|
error?: string;
|
|
294
|
-
/** 自定义验证消息(用于覆盖浏览器原生验证提示) */
|
|
295
|
-
validationMessage?: string;
|
|
296
305
|
/** 自定义类名 */
|
|
297
306
|
class?: string;
|
|
298
307
|
/** 元素 ID */
|
|
299
308
|
id?: string;
|
|
300
309
|
/** 变化事件 */
|
|
301
310
|
onchange?: (value: T) => void;
|
|
302
|
-
/** 子元素(原生 option 元素) */
|
|
303
|
-
children?: Snippet;
|
|
304
311
|
}
|
|
305
312
|
/**
|
|
306
313
|
* 复选框属性
|
|
307
314
|
*/
|
|
308
|
-
export interface CheckboxProps {
|
|
315
|
+
export interface CheckboxProps extends DataAttributes {
|
|
309
316
|
/** 是否选中 */
|
|
310
317
|
checked?: boolean;
|
|
311
318
|
/** 标签 */
|
|
@@ -326,7 +333,7 @@ export interface CheckboxProps {
|
|
|
326
333
|
/**
|
|
327
334
|
* 开关属性
|
|
328
335
|
*/
|
|
329
|
-
export interface SwitchProps {
|
|
336
|
+
export interface SwitchProps extends DataAttributes {
|
|
330
337
|
/** 是否开启 */
|
|
331
338
|
checked?: boolean;
|
|
332
339
|
/** 标签 */
|
|
@@ -343,7 +350,7 @@ export interface SwitchProps {
|
|
|
343
350
|
/**
|
|
344
351
|
* 原生开关输入(用于折叠/抽屉等结构要求 input 直系子元素的场景)
|
|
345
352
|
*/
|
|
346
|
-
export interface ToggleCheckboxProps {
|
|
353
|
+
export interface ToggleCheckboxProps extends DataAttributes {
|
|
347
354
|
/** 是否选中 */
|
|
348
355
|
checked?: boolean;
|
|
349
356
|
/** 表单字段名称 */
|
|
@@ -357,7 +364,7 @@ export interface ToggleCheckboxProps {
|
|
|
357
364
|
/** 变化事件 */
|
|
358
365
|
onchange?: (checked: boolean) => void;
|
|
359
366
|
}
|
|
360
|
-
export interface ToggleRadioProps {
|
|
367
|
+
export interface ToggleRadioProps extends DataAttributes {
|
|
361
368
|
/** 是否选中 */
|
|
362
369
|
checked?: boolean;
|
|
363
370
|
/** 表单字段名称 */
|
|
@@ -374,7 +381,7 @@ export interface ToggleRadioProps {
|
|
|
374
381
|
/**
|
|
375
382
|
* 单选框属性
|
|
376
383
|
*/
|
|
377
|
-
export interface RadioProps<T = string> {
|
|
384
|
+
export interface RadioProps<T = string> extends DataAttributes {
|
|
378
385
|
/** 值 */
|
|
379
386
|
value?: T;
|
|
380
387
|
/** 选项 */
|
|
@@ -395,7 +402,7 @@ export interface RadioProps<T = string> {
|
|
|
395
402
|
/**
|
|
396
403
|
* 徽章属性
|
|
397
404
|
*/
|
|
398
|
-
export interface BadgeProps {
|
|
405
|
+
export interface BadgeProps extends DataAttributes {
|
|
399
406
|
/** 变体 */
|
|
400
407
|
variant?: Variant;
|
|
401
408
|
/** 尺寸 */
|
|
@@ -410,7 +417,7 @@ export interface BadgeProps {
|
|
|
410
417
|
/**
|
|
411
418
|
* 卡片属性
|
|
412
419
|
*/
|
|
413
|
-
export interface CardProps {
|
|
420
|
+
export interface CardProps extends DataAttributes {
|
|
414
421
|
/** 标题 */
|
|
415
422
|
title?: string;
|
|
416
423
|
/** 是否有边框 */
|
|
@@ -431,7 +438,7 @@ export interface CardProps {
|
|
|
431
438
|
/**
|
|
432
439
|
* 模态框属性
|
|
433
440
|
*/
|
|
434
|
-
export interface ModalProps {
|
|
441
|
+
export interface ModalProps extends DataAttributes {
|
|
435
442
|
/** 是否打开 */
|
|
436
443
|
open?: boolean;
|
|
437
444
|
/** 标题 */
|
|
@@ -468,7 +475,7 @@ export interface ModalProps {
|
|
|
468
475
|
/**
|
|
469
476
|
* 抽屉属性
|
|
470
477
|
*/
|
|
471
|
-
export interface DrawerProps {
|
|
478
|
+
export interface DrawerProps extends DataAttributes {
|
|
472
479
|
/** 是否打开 */
|
|
473
480
|
open?: boolean;
|
|
474
481
|
/** 标题 */
|
|
@@ -493,7 +500,7 @@ export interface DrawerProps {
|
|
|
493
500
|
/**
|
|
494
501
|
* 提示框属性
|
|
495
502
|
*/
|
|
496
|
-
export interface TooltipProps {
|
|
503
|
+
export interface TooltipProps extends DataAttributes {
|
|
497
504
|
/** 提示内容 */
|
|
498
505
|
content: string;
|
|
499
506
|
/** 位置 */
|
|
@@ -508,7 +515,7 @@ export interface TooltipProps {
|
|
|
508
515
|
/**
|
|
509
516
|
* 加载属性
|
|
510
517
|
*/
|
|
511
|
-
export interface SpinnerProps {
|
|
518
|
+
export interface SpinnerProps extends DataAttributes {
|
|
512
519
|
/** 尺寸 */
|
|
513
520
|
size?: Size;
|
|
514
521
|
/** 变体 */
|
|
@@ -519,7 +526,7 @@ export interface SpinnerProps {
|
|
|
519
526
|
/**
|
|
520
527
|
* 进度条属性
|
|
521
528
|
*/
|
|
522
|
-
export interface ProgressProps {
|
|
529
|
+
export interface ProgressProps extends DataAttributes {
|
|
523
530
|
/** 值 (0-100) */
|
|
524
531
|
value: number;
|
|
525
532
|
/** 最大值 */
|
|
@@ -542,7 +549,7 @@ export interface ProgressProps {
|
|
|
542
549
|
/**
|
|
543
550
|
* 警告框属性
|
|
544
551
|
*/
|
|
545
|
-
export interface AlertProps {
|
|
552
|
+
export interface AlertProps extends DataAttributes {
|
|
546
553
|
/** 变体 */
|
|
547
554
|
variant?: Variant;
|
|
548
555
|
/** 标题 */
|
|
@@ -559,7 +566,7 @@ export interface AlertProps {
|
|
|
559
566
|
/**
|
|
560
567
|
* Toast 属性
|
|
561
568
|
*/
|
|
562
|
-
export interface ToastProps {
|
|
569
|
+
export interface ToastProps extends DataAttributes {
|
|
563
570
|
/** 消息 */
|
|
564
571
|
message: string;
|
|
565
572
|
/** 变体 */
|
|
@@ -576,7 +583,7 @@ export interface ToastProps {
|
|
|
576
583
|
/**
|
|
577
584
|
* 分页属性
|
|
578
585
|
*/
|
|
579
|
-
export interface PaginationProps {
|
|
586
|
+
export interface PaginationProps extends DataAttributes {
|
|
580
587
|
/** 当前页 */
|
|
581
588
|
page: number;
|
|
582
589
|
/** 总数 */
|
|
@@ -629,7 +636,7 @@ export interface BreadcrumbItem {
|
|
|
629
636
|
/**
|
|
630
637
|
* 面包屑属性
|
|
631
638
|
*/
|
|
632
|
-
export interface BreadcrumbProps {
|
|
639
|
+
export interface BreadcrumbProps extends DataAttributes {
|
|
633
640
|
/** 项目 */
|
|
634
641
|
items: BreadcrumbItem[];
|
|
635
642
|
/** 分隔符 */
|
|
@@ -653,7 +660,7 @@ export interface TabItem {
|
|
|
653
660
|
/**
|
|
654
661
|
* 标签页属性
|
|
655
662
|
*/
|
|
656
|
-
export interface TabsProps {
|
|
663
|
+
export interface TabsProps extends DataAttributes {
|
|
657
664
|
/** 标签项 */
|
|
658
665
|
items: TabItem[];
|
|
659
666
|
/** 当前激活的标签 */
|
|
@@ -672,7 +679,7 @@ export interface TabsProps {
|
|
|
672
679
|
/**
|
|
673
680
|
* 头像属性
|
|
674
681
|
*/
|
|
675
|
-
export interface AvatarProps {
|
|
682
|
+
export interface AvatarProps extends DataAttributes {
|
|
676
683
|
/** 图片地址 */
|
|
677
684
|
src?: string;
|
|
678
685
|
/** 替代文本 */
|
|
@@ -708,7 +715,7 @@ export interface DropdownItem {
|
|
|
708
715
|
/**
|
|
709
716
|
* 下拉菜单属性
|
|
710
717
|
*/
|
|
711
|
-
export interface DropdownProps {
|
|
718
|
+
export interface DropdownProps extends DataAttributes {
|
|
712
719
|
/** 菜单项 */
|
|
713
720
|
items: DropdownItem[];
|
|
714
721
|
/** 触发方式 */
|
|
@@ -727,7 +734,7 @@ export interface DropdownProps {
|
|
|
727
734
|
/**
|
|
728
735
|
* 表单属性
|
|
729
736
|
*/
|
|
730
|
-
export interface FormProps {
|
|
737
|
+
export interface FormProps extends DataAttributes {
|
|
731
738
|
/** 表单 ID */
|
|
732
739
|
id?: string;
|
|
733
740
|
/** 自定义类名 */
|
|
@@ -748,7 +755,7 @@ export interface FormProps {
|
|
|
748
755
|
/**
|
|
749
756
|
* 表单字段属性
|
|
750
757
|
*/
|
|
751
|
-
export interface FormFieldProps {
|
|
758
|
+
export interface FormFieldProps extends DataAttributes {
|
|
752
759
|
/** 标签 */
|
|
753
760
|
label?: string;
|
|
754
761
|
/** 字段名 */
|
|
@@ -767,7 +774,7 @@ export interface FormFieldProps {
|
|
|
767
774
|
/**
|
|
768
775
|
* 骨架屏属性
|
|
769
776
|
*/
|
|
770
|
-
export interface SkeletonProps {
|
|
777
|
+
export interface SkeletonProps extends DataAttributes {
|
|
771
778
|
/** 变体 */
|
|
772
779
|
variant?: 'text' | 'title' | 'avatar' | 'thumbnail' | 'button' | 'input';
|
|
773
780
|
/** 宽度 */
|
|
@@ -786,7 +793,7 @@ export interface SkeletonProps {
|
|
|
786
793
|
/**
|
|
787
794
|
* 空状态属性
|
|
788
795
|
*/
|
|
789
|
-
export interface EmptyProps {
|
|
796
|
+
export interface EmptyProps extends DataAttributes {
|
|
790
797
|
/** 标题 */
|
|
791
798
|
title?: string;
|
|
792
799
|
/** 描述 */
|
|
@@ -805,7 +812,7 @@ export interface EmptyProps {
|
|
|
805
812
|
/**
|
|
806
813
|
* 结果页属性
|
|
807
814
|
*/
|
|
808
|
-
export interface ResultProps {
|
|
815
|
+
export interface ResultProps extends DataAttributes {
|
|
809
816
|
/** 状态 */
|
|
810
817
|
status?: 'success' | 'error' | 'warning' | 'info';
|
|
811
818
|
/** 标题 */
|
|
@@ -824,7 +831,7 @@ export interface ResultProps {
|
|
|
824
831
|
/**
|
|
825
832
|
* 确认对话框属性
|
|
826
833
|
*/
|
|
827
|
-
export interface ConfirmProps {
|
|
834
|
+
export interface ConfirmProps extends DataAttributes {
|
|
828
835
|
/** 是否打开 */
|
|
829
836
|
open?: boolean;
|
|
830
837
|
/** 标题 */
|
|
@@ -849,7 +856,7 @@ export interface ConfirmProps {
|
|
|
849
856
|
/**
|
|
850
857
|
* 标签属性
|
|
851
858
|
*/
|
|
852
|
-
export interface TagProps {
|
|
859
|
+
export interface TagProps extends DataAttributes {
|
|
853
860
|
/** 文本 */
|
|
854
861
|
text?: string;
|
|
855
862
|
/** 变体 */
|
|
@@ -872,7 +879,7 @@ export interface TagProps {
|
|
|
872
879
|
/**
|
|
873
880
|
* 标签输入框属性
|
|
874
881
|
*/
|
|
875
|
-
export interface TagInputProps {
|
|
882
|
+
export interface TagInputProps extends DataAttributes {
|
|
876
883
|
/** 标签列表 */
|
|
877
884
|
tags?: string[];
|
|
878
885
|
/** 占位符 */
|
|
@@ -904,7 +911,7 @@ export interface StepItem {
|
|
|
904
911
|
/**
|
|
905
912
|
* 步骤条属性
|
|
906
913
|
*/
|
|
907
|
-
export interface StepsProps {
|
|
914
|
+
export interface StepsProps extends DataAttributes {
|
|
908
915
|
/** 步骤列表 */
|
|
909
916
|
items?: StepItem[];
|
|
910
917
|
/** 当前步骤 */
|
|
@@ -923,7 +930,7 @@ export interface StepsProps {
|
|
|
923
930
|
/**
|
|
924
931
|
* 图标按钮属性
|
|
925
932
|
*/
|
|
926
|
-
export interface IconButtonProps {
|
|
933
|
+
export interface IconButtonProps extends DataAttributes {
|
|
927
934
|
/** 图标(受信任的内联 SVG 字符串或 Snippet) */
|
|
928
935
|
icon?: string | Snippet;
|
|
929
936
|
/** 标签(无障碍) */
|
|
@@ -950,7 +957,7 @@ export interface IconButtonProps {
|
|
|
950
957
|
/**
|
|
951
958
|
* 弹出层属性
|
|
952
959
|
*/
|
|
953
|
-
export interface PopoverProps {
|
|
960
|
+
export interface PopoverProps extends DataAttributes {
|
|
954
961
|
/** 是否打开 */
|
|
955
962
|
open?: boolean;
|
|
956
963
|
/** 位置 */
|
package/dist/utils.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CSS 类名处理工具
|
|
5
5
|
* @module utils
|
|
6
6
|
*/
|
|
7
|
-
import type { Size, Variant } from './types.js';
|
|
7
|
+
import type { DataAttributes, Size, Variant } from './types.js';
|
|
8
8
|
/**
|
|
9
9
|
* 合并类名(支持 Tailwind 类冲突消解)
|
|
10
10
|
*
|
|
@@ -12,6 +12,11 @@ import type { Size, Variant } from './types.js';
|
|
|
12
12
|
* @returns 合并后的类名字符串
|
|
13
13
|
*/
|
|
14
14
|
export declare function cn(...classes: (string | boolean | undefined | null)[]): string;
|
|
15
|
+
export type ForwardedDataAttributes = Record<`data-${string}`, string | number | boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* 从组件未声明 props 中提取 data-* 属性,避免把普通未知属性透传到 DOM。
|
|
18
|
+
*/
|
|
19
|
+
export declare function getDataAttributes(props: DataAttributes | Record<string, unknown>): ForwardedDataAttributes;
|
|
15
20
|
/**
|
|
16
21
|
* 获取变体类名
|
|
17
22
|
*/
|
package/dist/utils.js
CHANGED
|
@@ -14,6 +14,21 @@ import { twMerge } from 'tailwind-merge';
|
|
|
14
14
|
export function cn(...classes) {
|
|
15
15
|
return twMerge(classes.filter(Boolean).join(' '));
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* 从组件未声明 props 中提取 data-* 属性,避免把普通未知属性透传到 DOM。
|
|
19
|
+
*/
|
|
20
|
+
export function getDataAttributes(props) {
|
|
21
|
+
const dataAttributes = {};
|
|
22
|
+
for (const [key, value] of Object.entries(props)) {
|
|
23
|
+
if (!key.startsWith('data-') || value === null || value === undefined) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
27
|
+
dataAttributes[key] = value;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return dataAttributes;
|
|
31
|
+
}
|
|
17
32
|
/**
|
|
18
33
|
* 已知前缀的变体类名静态映射
|
|
19
34
|
*
|
|
@@ -21,7 +36,7 @@ export function cn(...classes) {
|
|
|
21
36
|
*/
|
|
22
37
|
const VARIANT_MAPS = {
|
|
23
38
|
btn: {
|
|
24
|
-
default: '
|
|
39
|
+
default: '',
|
|
25
40
|
primary: 'btn-primary',
|
|
26
41
|
secondary: 'btn-secondary',
|
|
27
42
|
success: 'btn-success',
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h-ai/ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.31",
|
|
5
5
|
"description": "Hai Framework UI component library for Svelte 5 Runes.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"svelte": "./dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"mermaid": "^11.12.0",
|
|
52
52
|
"shiki": "^4.0.2",
|
|
53
53
|
"tailwind-merge": "^3.5.0",
|
|
54
|
-
"@h-ai/core": "0.1.0-alpha.
|
|
54
|
+
"@h-ai/core": "0.1.0-alpha.31"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@sveltejs/package": "^2.5.7",
|