@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.
Files changed (286) hide show
  1. package/README.en.md +31 -5
  2. package/README.ja.md +31 -5
  3. package/README.md +64 -38
  4. package/dist/components/compounds/Accordion.svelte +24 -0
  5. package/dist/components/compounds/Accordion.svelte.d.ts +34 -0
  6. package/dist/components/compounds/ActionSheet.svelte +24 -0
  7. package/dist/components/compounds/ActionSheet.svelte.d.ts +38 -0
  8. package/dist/components/compounds/Alert.svelte +15 -4
  9. package/dist/components/compounds/Alert.svelte.d.ts +10 -0
  10. package/dist/components/compounds/AppBar.svelte +24 -0
  11. package/dist/components/compounds/AppBar.svelte.d.ts +33 -0
  12. package/dist/components/compounds/BottomNav.svelte +37 -0
  13. package/dist/components/compounds/BottomNav.svelte.d.ts +43 -0
  14. package/dist/components/compounds/Breadcrumb.svelte +11 -0
  15. package/dist/components/compounds/Breadcrumb.svelte.d.ts +20 -0
  16. package/dist/components/compounds/Calendar.svelte +20 -6
  17. package/dist/components/compounds/Calendar.svelte.d.ts +20 -6
  18. package/dist/components/compounds/Card.svelte +10 -0
  19. package/dist/components/compounds/Card.svelte.d.ts +10 -0
  20. package/dist/components/compounds/Combobox.svelte +35 -18
  21. package/dist/components/compounds/Combobox.svelte.d.ts +35 -18
  22. package/dist/components/compounds/Confirm.svelte +11 -0
  23. package/dist/components/compounds/Confirm.svelte.d.ts +21 -0
  24. package/dist/components/compounds/DataTable.svelte +40 -17
  25. package/dist/components/compounds/DataTable.svelte.d.ts +9 -13
  26. package/dist/components/compounds/DatePicker.svelte +20 -6
  27. package/dist/components/compounds/DatePicker.svelte.d.ts +20 -6
  28. package/dist/components/compounds/Drawer.svelte +11 -0
  29. package/dist/components/compounds/Drawer.svelte.d.ts +21 -0
  30. package/dist/components/compounds/Dropdown.svelte +10 -0
  31. package/dist/components/compounds/Dropdown.svelte.d.ts +10 -0
  32. package/dist/components/compounds/Empty.svelte +16 -5
  33. package/dist/components/compounds/Empty.svelte.d.ts +20 -0
  34. package/dist/components/compounds/Form.svelte +37 -2
  35. package/dist/components/compounds/Form.svelte.d.ts +20 -0
  36. package/dist/components/compounds/FormField.svelte +11 -0
  37. package/dist/components/compounds/FormField.svelte.d.ts +20 -0
  38. package/dist/components/compounds/FormLayout.svelte +13 -1
  39. package/dist/components/compounds/FormLayout.svelte.d.ts +13 -0
  40. package/dist/components/compounds/InfiniteScroll.svelte +24 -0
  41. package/dist/components/compounds/InfiniteScroll.svelte.d.ts +34 -0
  42. package/dist/components/compounds/MessageBoxContainer.svelte +11 -0
  43. package/dist/components/compounds/MessageBoxContainer.svelte.d.ts +21 -0
  44. package/dist/components/compounds/MessageBoxDialog.svelte +14 -0
  45. package/dist/components/compounds/MessageBoxDialog.svelte.d.ts +21 -0
  46. package/dist/components/compounds/MessageContainer.svelte +11 -0
  47. package/dist/components/compounds/MessageContainer.svelte.d.ts +21 -0
  48. package/dist/components/compounds/Modal.svelte +10 -0
  49. package/dist/components/compounds/Modal.svelte.d.ts +10 -0
  50. package/dist/components/compounds/PageHeader.svelte +21 -8
  51. package/dist/components/compounds/PageHeader.svelte.d.ts +21 -8
  52. package/dist/components/compounds/Pagination.svelte +34 -8
  53. package/dist/components/compounds/Pagination.svelte.d.ts +20 -0
  54. package/dist/components/compounds/Popover.svelte +11 -0
  55. package/dist/components/compounds/Popover.svelte.d.ts +20 -0
  56. package/dist/components/compounds/PullRefresh.svelte +24 -0
  57. package/dist/components/compounds/PullRefresh.svelte.d.ts +32 -0
  58. package/dist/components/compounds/Result.svelte +11 -0
  59. package/dist/components/compounds/Result.svelte.d.ts +20 -0
  60. package/dist/components/compounds/SafeArea.svelte +24 -0
  61. package/dist/components/compounds/SafeArea.svelte.d.ts +32 -0
  62. package/dist/components/compounds/Skeleton.svelte +10 -0
  63. package/dist/components/compounds/Skeleton.svelte.d.ts +10 -0
  64. package/dist/components/compounds/Steps.svelte +11 -0
  65. package/dist/components/compounds/Steps.svelte.d.ts +20 -0
  66. package/dist/components/compounds/SwipeCell.svelte +24 -0
  67. package/dist/components/compounds/SwipeCell.svelte.d.ts +37 -0
  68. package/dist/components/compounds/TableToolbar.svelte +66 -28
  69. package/dist/components/compounds/TableToolbar.svelte.d.ts +29 -19
  70. package/dist/components/compounds/Tabs.svelte +58 -10
  71. package/dist/components/compounds/Tabs.svelte.d.ts +10 -0
  72. package/dist/components/compounds/TagInput.svelte +11 -0
  73. package/dist/components/compounds/TagInput.svelte.d.ts +20 -0
  74. package/dist/components/compounds/Timeline.svelte +24 -0
  75. package/dist/components/compounds/Timeline.svelte.d.ts +34 -0
  76. package/dist/components/compounds/ToastContainer.svelte +11 -0
  77. package/dist/components/compounds/ToastContainer.svelte.d.ts +26 -0
  78. package/dist/components/compounds/Tooltip.svelte +11 -0
  79. package/dist/components/compounds/Tooltip.svelte.d.ts +22 -0
  80. package/dist/components/compounds/accordion-types.d.ts +10 -1
  81. package/dist/components/compounds/action-sheet-types.d.ts +9 -0
  82. package/dist/components/compounds/bottom-nav-types.d.ts +9 -0
  83. package/dist/components/compounds/swipe-cell-types.d.ts +9 -0
  84. package/dist/components/compounds/timeline-types.d.ts +9 -0
  85. package/dist/components/control-size.d.ts +17 -0
  86. package/dist/components/control-size.js +8 -0
  87. package/dist/components/primitives/Avatar.svelte +10 -0
  88. package/dist/components/primitives/Avatar.svelte.d.ts +10 -0
  89. package/dist/components/primitives/Badge.svelte +10 -0
  90. package/dist/components/primitives/Badge.svelte.d.ts +10 -0
  91. package/dist/components/primitives/BareButton.svelte +11 -0
  92. package/dist/components/primitives/BareButton.svelte.d.ts +20 -0
  93. package/dist/components/primitives/BareInput.svelte +11 -0
  94. package/dist/components/primitives/BareInput.svelte.d.ts +20 -0
  95. package/dist/components/primitives/Button.svelte +10 -0
  96. package/dist/components/primitives/Button.svelte.d.ts +10 -0
  97. package/dist/components/primitives/Checkbox.svelte +11 -0
  98. package/dist/components/primitives/Checkbox.svelte.d.ts +20 -0
  99. package/dist/components/primitives/IconButton.svelte +11 -0
  100. package/dist/components/primitives/IconButton.svelte.d.ts +20 -0
  101. package/dist/components/primitives/Input.svelte +10 -0
  102. package/dist/components/primitives/Input.svelte.d.ts +10 -0
  103. package/dist/components/primitives/Progress.svelte +11 -0
  104. package/dist/components/primitives/Progress.svelte.d.ts +20 -0
  105. package/dist/components/primitives/Radio.svelte +11 -0
  106. package/dist/components/primitives/Radio.svelte.d.ts +20 -0
  107. package/dist/components/primitives/Range.svelte +24 -0
  108. package/dist/components/primitives/Range.svelte.d.ts +34 -0
  109. package/dist/components/primitives/Rating.svelte +24 -0
  110. package/dist/components/primitives/Rating.svelte.d.ts +34 -0
  111. package/dist/components/primitives/Select.svelte +11 -0
  112. package/dist/components/primitives/Select.svelte.d.ts +21 -0
  113. package/dist/components/primitives/Spinner.svelte +11 -0
  114. package/dist/components/primitives/Spinner.svelte.d.ts +20 -0
  115. package/dist/components/primitives/Switch.svelte +11 -0
  116. package/dist/components/primitives/Switch.svelte.d.ts +20 -0
  117. package/dist/components/primitives/Tag.svelte +11 -0
  118. package/dist/components/primitives/Tag.svelte.d.ts +20 -0
  119. package/dist/components/primitives/Textarea.svelte +11 -0
  120. package/dist/components/primitives/Textarea.svelte.d.ts +21 -0
  121. package/dist/components/primitives/ToggleCheckbox.svelte +11 -0
  122. package/dist/components/primitives/ToggleCheckbox.svelte.d.ts +20 -0
  123. package/dist/components/primitives/ToggleInput.svelte +11 -0
  124. package/dist/components/primitives/ToggleInput.svelte.d.ts +20 -0
  125. package/dist/components/primitives/ToggleRadio.svelte +11 -0
  126. package/dist/components/primitives/ToggleRadio.svelte.d.ts +20 -0
  127. package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte +27 -0
  128. package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte.d.ts +27 -0
  129. package/dist/components/scenes/ai/AiDocumentEditor.svelte +79 -0
  130. package/dist/components/scenes/ai/AiDocumentEditor.svelte.d.ts +23 -0
  131. package/dist/components/scenes/ai/MarkdownRenderer.svelte +11 -0
  132. package/dist/components/scenes/ai/MarkdownRenderer.svelte.d.ts +28 -0
  133. package/dist/components/scenes/ai/code-preview.d.ts +28 -0
  134. package/dist/components/scenes/ai/code-preview.js +20 -0
  135. package/dist/components/scenes/ai/document-download.d.ts +52 -0
  136. package/dist/components/scenes/ai/document-download.js +30 -2
  137. package/dist/components/scenes/ai/document-parse.d.ts +71 -14
  138. package/dist/components/scenes/ai/document-parse.js +19 -9
  139. package/dist/components/scenes/ai/document-types.d.ts +222 -88
  140. package/dist/components/scenes/ai/editor-markdown-extensions.d.ts +16 -0
  141. package/dist/components/scenes/ai/editor-markdown-extensions.js +16 -0
  142. package/dist/components/scenes/ai/highlight.d.ts +11 -0
  143. package/dist/components/scenes/ai/highlight.js +11 -0
  144. package/dist/components/scenes/ai/markdown-parse.d.ts +8 -2
  145. package/dist/components/scenes/ai/markdown-parse.js +2 -2
  146. package/dist/components/scenes/ai/mermaid-host-sync.d.ts +38 -0
  147. package/dist/components/scenes/ai/mermaid-host-sync.js +30 -0
  148. package/dist/components/scenes/ai/mermaid-render.d.ts +23 -0
  149. package/dist/components/scenes/ai/mermaid-render.js +23 -0
  150. package/dist/components/scenes/ai/safe-html.d.ts +54 -6
  151. package/dist/components/scenes/ai/safe-html.js +54 -6
  152. package/dist/components/scenes/ai/table/AiTableEditor.svelte +48 -0
  153. package/dist/components/scenes/ai/table/AiTableEditor.svelte.d.ts +24 -0
  154. package/dist/components/scenes/ai/table/table-types.d.ts +79 -0
  155. package/dist/components/scenes/app/FeedbackModal.svelte +45 -5
  156. package/dist/components/scenes/app/FeedbackModal.svelte.d.ts +45 -5
  157. package/dist/components/scenes/app/LanguageSwitch.svelte +29 -19
  158. package/dist/components/scenes/app/LanguageSwitch.svelte.d.ts +28 -19
  159. package/dist/components/scenes/app/SettingsLayout.svelte +21 -9
  160. package/dist/components/scenes/app/SettingsLayout.svelte.d.ts +21 -9
  161. package/dist/components/scenes/app/SettingsModal.svelte +23 -0
  162. package/dist/components/scenes/app/SettingsModal.svelte.d.ts +23 -0
  163. package/dist/components/scenes/app/ThemeColorPicker.svelte +31 -0
  164. package/dist/components/scenes/app/ThemeColorPicker.svelte.d.ts +31 -0
  165. package/dist/components/scenes/app/ThemeSelector.svelte +21 -6
  166. package/dist/components/scenes/app/ThemeSelector.svelte.d.ts +21 -6
  167. package/dist/components/scenes/app/ThemeToggle.svelte +21 -4
  168. package/dist/components/scenes/app/ThemeToggle.svelte.d.ts +21 -4
  169. package/dist/components/scenes/app/index.d.ts +1 -1
  170. package/dist/components/scenes/app/index.js +1 -1
  171. package/dist/components/scenes/charts/Chart.svelte +11 -0
  172. package/dist/components/scenes/charts/Chart.svelte.d.ts +20 -0
  173. package/dist/components/scenes/charts/chart-theme.d.ts +25 -1
  174. package/dist/components/scenes/charts/chart-theme.js +25 -1
  175. package/dist/components/scenes/charts/chart-types.d.ts +83 -7
  176. package/dist/components/scenes/charts/renderers/LineChart.svelte +53 -0
  177. package/dist/components/scenes/charts/renderers/LineChart.svelte.d.ts +13 -0
  178. package/dist/components/scenes/crud/CrudDeleteConfirm.svelte +10 -0
  179. package/dist/components/scenes/crud/CrudDeleteConfirm.svelte.d.ts +10 -0
  180. package/dist/components/scenes/crud/CrudDetailDrawer.svelte +8 -0
  181. package/dist/components/scenes/crud/CrudDetailDrawer.svelte.d.ts +8 -0
  182. package/dist/components/scenes/crud/CrudDetailPanel.svelte +18 -0
  183. package/dist/components/scenes/crud/CrudDetailPanel.svelte.d.ts +18 -0
  184. package/dist/components/scenes/crud/CrudEditPanel.svelte +10 -0
  185. package/dist/components/scenes/crud/CrudEditPanel.svelte.d.ts +10 -0
  186. package/dist/components/scenes/crud/CrudFilterBar.svelte +18 -0
  187. package/dist/components/scenes/crud/CrudFilterBar.svelte.d.ts +18 -0
  188. package/dist/components/scenes/crud/CrudPage.svelte +37 -5
  189. package/dist/components/scenes/crud/CrudPage.svelte.d.ts +35 -3
  190. package/dist/components/scenes/crud/crud-controller.svelte.d.ts +142 -23
  191. package/dist/components/scenes/crud/crud-controller.svelte.js +22 -11
  192. package/dist/components/scenes/crud/crud-form-validation.d.ts +12 -0
  193. package/dist/components/scenes/crud/crud-form-validation.js +12 -0
  194. package/dist/components/scenes/crud/crud-types.d.ts +79 -8
  195. package/dist/components/scenes/crud/nav-adapter.d.ts +14 -0
  196. package/dist/components/scenes/crud/nav-adapter.js +8 -0
  197. package/dist/components/scenes/crypto/EncryptedInput.svelte +24 -0
  198. package/dist/components/scenes/crypto/EncryptedInput.svelte.d.ts +34 -0
  199. package/dist/components/scenes/crypto/HashDisplay.svelte +11 -0
  200. package/dist/components/scenes/crypto/HashDisplay.svelte.d.ts +21 -0
  201. package/dist/components/scenes/crypto/SignatureDisplay.svelte +11 -0
  202. package/dist/components/scenes/crypto/SignatureDisplay.svelte.d.ts +21 -0
  203. package/dist/components/scenes/error/ErrorPage.svelte +8 -1
  204. package/dist/components/scenes/error/ErrorPage.svelte.d.ts +8 -1
  205. package/dist/components/scenes/error/error-presets.d.ts +40 -4
  206. package/dist/components/scenes/error/error-presets.js +22 -2
  207. package/dist/components/scenes/guide/GuideHost.svelte +27 -0
  208. package/dist/components/scenes/guide/GuideHost.svelte.d.ts +27 -0
  209. package/dist/components/scenes/guide/HelpCenter.svelte +27 -0
  210. package/dist/components/scenes/guide/HelpCenter.svelte.d.ts +27 -0
  211. package/dist/components/scenes/iam/AuthPanel.svelte +26 -2
  212. package/dist/components/scenes/iam/AuthPanel.svelte.d.ts +25 -0
  213. package/dist/components/scenes/iam/AuthShell.svelte +8 -3
  214. package/dist/components/scenes/iam/AuthShell.svelte.d.ts +8 -3
  215. package/dist/components/scenes/iam/ChangePasswordForm.svelte +10 -0
  216. package/dist/components/scenes/iam/ChangePasswordForm.svelte.d.ts +10 -0
  217. package/dist/components/scenes/iam/ForgotPasswordForm.svelte +11 -0
  218. package/dist/components/scenes/iam/ForgotPasswordForm.svelte.d.ts +21 -0
  219. package/dist/components/scenes/iam/LoginForm.svelte +24 -31
  220. package/dist/components/scenes/iam/LoginForm.svelte.d.ts +10 -0
  221. package/dist/components/scenes/iam/PasswordInput.svelte +23 -0
  222. package/dist/components/scenes/iam/PasswordInput.svelte.d.ts +23 -0
  223. package/dist/components/scenes/iam/PermGuard.svelte +21 -11
  224. package/dist/components/scenes/iam/PermGuard.svelte.d.ts +30 -0
  225. package/dist/components/scenes/iam/RegisterForm.svelte +10 -0
  226. package/dist/components/scenes/iam/RegisterForm.svelte.d.ts +10 -0
  227. package/dist/components/scenes/iam/ResetPasswordForm.svelte +10 -0
  228. package/dist/components/scenes/iam/ResetPasswordForm.svelte.d.ts +10 -0
  229. package/dist/components/scenes/iam/UserProfile.svelte +11 -0
  230. package/dist/components/scenes/iam/UserProfile.svelte.d.ts +21 -0
  231. package/dist/components/scenes/iam/auth-error-message.d.ts +10 -0
  232. package/dist/components/scenes/iam/auth-error-message.js +10 -0
  233. package/dist/components/scenes/iam/password-utils.d.ts +39 -1
  234. package/dist/components/scenes/iam/password-utils.js +39 -1
  235. package/dist/components/scenes/iam/permission-context.svelte.d.ts +33 -23
  236. package/dist/components/scenes/iam/permission-context.svelte.js +20 -22
  237. package/dist/components/scenes/storage/AvatarUpload.svelte +11 -0
  238. package/dist/components/scenes/storage/AvatarUpload.svelte.d.ts +20 -0
  239. package/dist/components/scenes/storage/FileList.svelte +13 -2
  240. package/dist/components/scenes/storage/FileList.svelte.d.ts +20 -0
  241. package/dist/components/scenes/storage/FileUpload.svelte +37 -2
  242. package/dist/components/scenes/storage/FileUpload.svelte.d.ts +21 -0
  243. package/dist/components/scenes/storage/ImageUpload.svelte +11 -0
  244. package/dist/components/scenes/storage/ImageUpload.svelte.d.ts +21 -0
  245. package/dist/components/scenes/types.d.ts +352 -11
  246. package/dist/guide-storage.d.ts +13 -1
  247. package/dist/guide-storage.js +13 -1
  248. package/dist/guide-types.d.ts +67 -2
  249. package/dist/guide.svelte.d.ts +22 -1
  250. package/dist/guide.svelte.js +22 -1
  251. package/dist/i18n.svelte.d.ts +64 -3
  252. package/dist/i18n.svelte.js +99 -18
  253. package/dist/index.d.ts +2 -1
  254. package/dist/index.js +1 -2
  255. package/dist/internal/browser-safety.d.ts +51 -2
  256. package/dist/internal/browser-safety.js +45 -7
  257. package/dist/internal/form-context.d.ts +73 -0
  258. package/dist/internal/form-context.js +57 -0
  259. package/dist/internal/form-validation.svelte.d.ts +42 -0
  260. package/dist/internal/form-validation.svelte.js +26 -0
  261. package/dist/internal/icon-safety.d.ts +7 -0
  262. package/dist/internal/icon-safety.js +7 -0
  263. package/dist/internal/locale.d.ts +19 -0
  264. package/dist/internal/locale.js +21 -0
  265. package/dist/message.svelte.d.ts +90 -0
  266. package/dist/message.svelte.js +84 -0
  267. package/dist/messagebox.svelte.d.ts +61 -13
  268. package/dist/messagebox.svelte.js +55 -13
  269. package/dist/messages/en-US.json +6 -1
  270. package/dist/messages/ja-JP.json +389 -0
  271. package/dist/messages/zh-CN.json +6 -1
  272. package/dist/messages.d.ts +24 -3
  273. package/dist/messages.js +18 -3
  274. package/dist/styles/design-tokens.css +4 -2
  275. package/dist/styles/global.css +28 -8
  276. package/dist/styles/theme.css +2 -0
  277. package/dist/theme-config.d.ts +173 -0
  278. package/dist/theme-config.js +143 -0
  279. package/dist/toast.svelte.d.ts +114 -4
  280. package/dist/toast.svelte.js +108 -4
  281. package/dist/types.d.ts +526 -9
  282. package/dist/utils/platform.svelte.d.ts +28 -15
  283. package/dist/utils/platform.svelte.js +19 -14
  284. package/dist/utils.d.ts +102 -0
  285. package/dist/utils.js +93 -0
  286. 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
- /** 值 (0-100) */
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
- /** 双列表单字段占用列数;auto 根据控件类型判断。 */
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
- /** 可嵌入原生 form 的布局容器。 */
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
- /** 消息内容(纯文本或 HTML 字符串) */
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
- /** 点击遮罩是否关闭(默认 false,需要显式操作) */
1597
+ /** 点击遮罩是否关闭,默认 true;需要明确确认时显式设置 false。 */
1093
1598
  closeOnClickModal?: boolean;
1094
- /** 是否显示右上角关闭按钮(默认 false) */
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
  /** 消息文本 */