@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
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component Timeline
2
3
  =============================================================================
3
4
  @h-ai/ui - Timeline 组件
4
5
  =============================================================================
@@ -7,6 +8,16 @@
7
8
  使用 Svelte 5 Runes ($props, $derived)
8
9
  使用 DaisyUI timeline 类
9
10
  =============================================================================
11
+
12
+ @example
13
+ ```ts
14
+ import { mount, unmount } from 'svelte'
15
+ import type { ComponentProps } from 'svelte'
16
+ import { Timeline } from '@h-ai/ui'
17
+ const props: ComponentProps<typeof Timeline> = { items: [{ id: 'created', title: '已创建', time: '2026-01-01', completed: true }] }
18
+ const component = mount(Timeline, { target: document.body, props })
19
+ await unmount(component)
20
+ ```
10
21
  -->
11
22
 
12
23
  <script lang='ts'>
@@ -15,6 +26,19 @@
15
26
  import type { TimelineItem } from './timeline-types.js'
16
27
  import { cn, getDataAttributes } from '../../utils.js'
17
28
 
29
+ /**
30
+ * Timeline 组件的属性契约;通过公开组件配置使用。
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { mount, unmount } from 'svelte'
35
+ * import type { ComponentProps } from 'svelte'
36
+ * import { Timeline } from '@h-ai/ui'
37
+ * const props: ComponentProps<typeof Timeline> = { items: [{ id: 'created', title: '已创建', time: '2026-01-01', completed: true }] }
38
+ * const component = mount(Timeline, { target: document.body, props })
39
+ * await unmount(component)
40
+ * ```
41
+ */
18
42
  interface Props {
19
43
  /** 时间线项数据 */
20
44
  items: TimelineItem[]
@@ -1,6 +1,19 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { DataAttributes } from '../../types.js';
3
3
  import type { TimelineItem } from './timeline-types.js';
4
+ /**
5
+ * Timeline 组件的属性契约;通过公开组件配置使用。
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Timeline } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Timeline> = { items: [{ id: 'created', title: '已创建', time: '2026-01-01', completed: true }] }
13
+ * const component = mount(Timeline, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
16
+ */
4
17
  interface Props {
5
18
  /** 时间线项数据 */
6
19
  items: TimelineItem[];
@@ -22,6 +35,27 @@ interface Props {
22
35
  children?: Snippet<[TimelineItem, number]>;
23
36
  }
24
37
  type $$ComponentProps = Props & DataAttributes;
38
+ /**
39
+ * Timeline
40
+ * =============================================================================
41
+ * @h-ai/ui - Timeline 组件
42
+ * =============================================================================
43
+ * 时间线组件,支持垂直/水平方向、多种样式变体
44
+ *
45
+ * 使用 Svelte 5 Runes ($props, $derived)
46
+ * 使用 DaisyUI timeline 类
47
+ * =============================================================================
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * import { mount, unmount } from 'svelte'
52
+ * import type { ComponentProps } from 'svelte'
53
+ * import { Timeline } from '@h-ai/ui'
54
+ * const props: ComponentProps<typeof Timeline> = { items: [{ id: 'created', title: '已创建', time: '2026-01-01', completed: true }] }
55
+ * const component = mount(Timeline, { target: document.body, props })
56
+ * await unmount(component)
57
+ * ```
58
+ */
25
59
  declare const Timeline: import("svelte").Component<$$ComponentProps, {}, "">;
26
60
  type Timeline = ReturnType<typeof Timeline>;
27
61
  export default Timeline;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component ToastContainer
2
3
  =============================================================================
3
4
  @h-ai/ui - ToastContainer 组件
4
5
  =============================================================================
@@ -12,6 +13,16 @@
12
13
  作为最后子节点渲染在其内容之上);
13
14
  - 否则寄宿到 <body> 并以 Popover 进入 top layer,叠加在普通内容之上。
14
15
  =============================================================================
16
+
17
+ @example
18
+ ```ts
19
+ import { mount, unmount } from 'svelte'
20
+ import type { ComponentProps } from 'svelte'
21
+ import { ToastContainer } from '@h-ai/ui'
22
+ const props: ComponentProps<typeof ToastContainer> = { 'data-testid': 'toasts' }
23
+ const component = mount(ToastContainer, { target: document.body, props })
24
+ await unmount(component)
25
+ ```
15
26
  -->
16
27
  <script lang='ts'>
17
28
  import type { DataAttributes } from '../../types.js'
@@ -1,4 +1,30 @@
1
1
  import type { DataAttributes } from '../../types.js';
2
+ /**
3
+ * ToastContainer
4
+ * =============================================================================
5
+ * @h-ai/ui - ToastContainer 组件
6
+ * =============================================================================
7
+ * Toast 容器组件,显示所有 Toast 通知
8
+ *
9
+ * 使用 Svelte 5 Runes ($derived / $effect)
10
+ *
11
+ * 叠加策略(关键):原生 <dialog>.showModal() 处于浏览器 top layer,且在 Chromium 中
12
+ * 始终渲染在 Popover 之上。为保证 Toast 永远可见、不被弹窗遮挡:
13
+ * - 当存在已打开的 modal dialog 时,将 Toast 层寄宿到该 dialog 内部(同处 top layer,
14
+ * 作为最后子节点渲染在其内容之上);
15
+ * - 否则寄宿到 <body> 并以 Popover 进入 top layer,叠加在普通内容之上。
16
+ * =============================================================================
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { mount, unmount } from 'svelte'
21
+ * import type { ComponentProps } from 'svelte'
22
+ * import { ToastContainer } from '@h-ai/ui'
23
+ * const props: ComponentProps<typeof ToastContainer> = { 'data-testid': 'toasts' }
24
+ * const component = mount(ToastContainer, { target: document.body, props })
25
+ * await unmount(component)
26
+ * ```
27
+ */
2
28
  declare const ToastContainer: import("svelte").Component<DataAttributes, {}, "">;
3
29
  type ToastContainer = ReturnType<typeof ToastContainer>;
4
30
  export default ToastContainer;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component Tooltip
2
3
  =============================================================================
3
4
  @h-ai/ui - Tooltip 组件
4
5
  =============================================================================
@@ -8,6 +9,16 @@
8
9
 
9
10
  使用 Svelte 5 Runes ($props, $derived)
10
11
  =============================================================================
12
+
13
+ @example
14
+ ```ts
15
+ import { mount, unmount, createRawSnippet } from 'svelte'
16
+ import type { ComponentProps } from 'svelte'
17
+ import { Tooltip } from '@h-ai/ui'
18
+ const props: ComponentProps<typeof Tooltip> = { content: '复制链接', position: 'top', children: createRawSnippet(() => ({ render: () => "<span>复制</span>" })) }
19
+ const component = mount(Tooltip, { target: document.body, props })
20
+ await unmount(component)
21
+ ```
11
22
  -->
12
23
  <script lang='ts'>
13
24
  import type { DataAttributes, TooltipProps } from '../../types.js'
@@ -1,5 +1,27 @@
1
1
  import type { DataAttributes, TooltipProps } from '../../types.js';
2
2
  type $$ComponentProps = TooltipProps & DataAttributes;
3
+ /**
4
+ * Tooltip
5
+ * =============================================================================
6
+ * @h-ai/ui - Tooltip 组件
7
+ * =============================================================================
8
+ * 提示框组件,支持两种渲染模式:
9
+ * - 默认:DaisyUI CSS 伪元素(::before),轻量无 JS 开销
10
+ * - portal:通过 document.body 渲染,不受父容器 overflow 裁剪
11
+ *
12
+ * 使用 Svelte 5 Runes ($props, $derived)
13
+ * =============================================================================
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { mount, unmount, createRawSnippet } from 'svelte'
18
+ * import type { ComponentProps } from 'svelte'
19
+ * import { Tooltip } from '@h-ai/ui'
20
+ * const props: ComponentProps<typeof Tooltip> = { content: '复制链接', position: 'top', children: createRawSnippet(() => ({ render: () => "<span>复制</span>" })) }
21
+ * const component = mount(Tooltip, { target: document.body, props })
22
+ * await unmount(component)
23
+ * ```
24
+ */
3
25
  declare const Tooltip: import("svelte").Component<$$ComponentProps, {}, "">;
4
26
  type Tooltip = ReturnType<typeof Tooltip>;
5
27
  export default Tooltip;
@@ -2,12 +2,21 @@
2
2
  * @h-ai/ui — Accordion 类型定义
3
3
  * @module accordion-types
4
4
  */
5
+ /**
6
+ * 手风琴条目;id 应在当前条目集合内稳定且唯一。
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import type { AccordionItem } from '@h-ai/ui'
11
+ * const example: AccordionItem = { id: 'intro', title: '简介', content: '操作说明' }
12
+ * ```
13
+ */
5
14
  export interface AccordionItem {
6
15
  /** 唯一标识 */
7
16
  id: string;
8
17
  /** 标题 */
9
18
  title: string;
10
- /** 内容(字符串或 Snippet) */
19
+ /** 纯文本内容;自定义渲染使用 Accordion 的 children Snippet。 */
11
20
  content?: string;
12
21
  /** 是否禁用 */
13
22
  disabled?: boolean;
@@ -2,6 +2,15 @@
2
2
  * @h-ai/ui — ActionSheet 类型定义
3
3
  * @module action-sheet-types
4
4
  */
5
+ /**
6
+ * 底部操作菜单条目;危险动作可用 destructive 强调,禁用项不会触发选择。
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import type { ActionSheetItem } from '@h-ai/ui'
11
+ * const example: ActionSheetItem = { id: 'remove', label: '删除', destructive: true }
12
+ * ```
13
+ */
5
14
  export interface ActionSheetItem {
6
15
  /** 操作 ID */
7
16
  id: string;
@@ -3,6 +3,15 @@
3
3
  * @module bottom-nav-types
4
4
  */
5
5
  import type { Snippet } from 'svelte';
6
+ /**
7
+ * 移动端底部导航条目;icon 和 iconClass 任选一种图标来源。
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import type { BottomNavItem } from '@h-ai/ui'
12
+ * const example: BottomNavItem = { id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }
13
+ * ```
14
+ */
6
15
  export interface BottomNavItem {
7
16
  /** 导航项 ID */
8
17
  id: string;
@@ -2,6 +2,15 @@
2
2
  * @h-ai/ui — SwipeCell 类型定义
3
3
  * @module swipe-cell-types
4
4
  */
5
+ /**
6
+ * 滑动单元格的操作按钮;id 交给宿主完成实际业务动作。
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import type { SwipeCellAction } from '@h-ai/ui'
11
+ * const example: SwipeCellAction = { id: 'remove', label: '删除', variant: 'error', width: 80 }
12
+ * ```
13
+ */
5
14
  export interface SwipeCellAction {
6
15
  /** 操作 ID */
7
16
  id: string;
@@ -2,6 +2,15 @@
2
2
  * @h-ai/ui — Timeline 类型定义
3
3
  * @module timeline-types
4
4
  */
5
+ /**
6
+ * 时间线节点的展示信息;completed 只控制界面状态,不提交业务操作。
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import type { TimelineItem } from '@h-ai/ui'
11
+ * const example: TimelineItem = { id: 'created', title: '已创建', time: '2026-01-01', completed: true }
12
+ * ```
13
+ */
5
14
  export interface TimelineItem {
6
15
  /** 唯一标识 */
7
16
  id: string;
@@ -1,4 +1,13 @@
1
1
  import type { Size } from '../types.js';
2
+ /**
3
+ * 控件高度、间距与 DaisyUI 尺寸类的内部统一映射。
4
+ *
5
+ * @example 模块内部上下文
6
+ * ```ts
7
+ * const classes: FormControlSizeClasses = getFormControlSizeClasses('lg')
8
+ * const inputClasses = classes.control
9
+ * ```
10
+ */
2
11
  interface FormControlSizeClasses {
3
12
  /** 固定高度,适用于单行控件 */
4
13
  height: string;
@@ -13,6 +22,14 @@ interface FormControlSizeClasses {
13
22
  * 获取输入类控件的统一尺寸类名。
14
23
  *
15
24
  * 仅供组件内部复用,确保 Input、Select 与复合输入控件使用同一盒模型。
25
+ * @param size - 组件尺寸预设。
26
+ * @returns 统一的高度、最小高度、间距与控件尺寸类。
27
+ *
28
+ * @example 模块内部上下文
29
+ * ```ts
30
+ * const classes = getFormControlSizeClasses('lg')
31
+ * const controlClass = classes.control
32
+ * ```
16
33
  */
17
34
  export declare function getFormControlSizeClasses(size: Size): FormControlSizeClasses;
18
35
  export {};
@@ -12,6 +12,14 @@ const FORM_CONTROL_SIZE_CLASSES = {
12
12
  * 获取输入类控件的统一尺寸类名。
13
13
  *
14
14
  * 仅供组件内部复用,确保 Input、Select 与复合输入控件使用同一盒模型。
15
+ * @param size - 组件尺寸预设。
16
+ * @returns 统一的高度、最小高度、间距与控件尺寸类。
17
+ *
18
+ * @example 模块内部上下文
19
+ * ```ts
20
+ * const classes = getFormControlSizeClasses('lg')
21
+ * const controlClass = classes.control
22
+ * ```
15
23
  */
16
24
  export function getFormControlSizeClasses(size) {
17
25
  return FORM_CONTROL_SIZE_CLASSES[size];
@@ -1,6 +1,16 @@
1
1
  <!--
2
2
  @component Avatar
3
3
  头像组件,支持图片、名字首字母 fallback
4
+
5
+ @example
6
+ ```ts
7
+ import { mount, unmount } from 'svelte'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { Avatar } from '@h-ai/ui'
10
+ const props: ComponentProps<typeof Avatar> = { name: 'Ada', alt: '用户头像', size: 'md' }
11
+ const component = mount(Avatar, { target: document.body, props })
12
+ await unmount(component)
13
+ ```
4
14
  -->
5
15
  <script lang='ts'>
6
16
  import type { AvatarProps, DataAttributes } from '../../types.js'
@@ -3,6 +3,16 @@ type $$ComponentProps = AvatarProps & DataAttributes;
3
3
  /**
4
4
  * Avatar
5
5
  * 头像组件,支持图片、名字首字母 fallback
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Avatar } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Avatar> = { name: 'Ada', alt: '用户头像', size: 'md' }
13
+ * const component = mount(Avatar, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
6
16
  */
7
17
  declare const Avatar: import("svelte").Component<$$ComponentProps, {}, "">;
8
18
  type Avatar = ReturnType<typeof Avatar>;
@@ -1,6 +1,16 @@
1
1
  <!--
2
2
  @component Badge
3
3
  徽章组件,支持多种变体与尺寸
4
+
5
+ @example
6
+ ```ts
7
+ import { mount, unmount, createRawSnippet } from 'svelte'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { Badge } from '@h-ai/ui'
10
+ const props: ComponentProps<typeof Badge> = { variant: 'success', children: createRawSnippet(() => ({ render: () => "<span>已启用</span>" })) }
11
+ const component = mount(Badge, { target: document.body, props })
12
+ await unmount(component)
13
+ ```
4
14
  -->
5
15
  <script lang='ts'>
6
16
  import type { BadgeProps, DataAttributes } from '../../types.js'
@@ -3,6 +3,16 @@ type $$ComponentProps = BadgeProps & DataAttributes;
3
3
  /**
4
4
  * Badge
5
5
  * 徽章组件,支持多种变体与尺寸
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount, createRawSnippet } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Badge } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Badge> = { variant: 'success', children: createRawSnippet(() => ({ render: () => "<span>已启用</span>" })) }
13
+ * const component = mount(Badge, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
6
16
  */
7
17
  declare const Badge: import("svelte").Component<$$ComponentProps, {}, "">;
8
18
  type Badge = ReturnType<typeof Badge>;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component BareButton
2
3
  =============================================================================
3
4
  @h-ai/ui - BareButton 组件
4
5
  =============================================================================
@@ -6,6 +7,16 @@
6
7
 
7
8
  使用 Svelte 5 Runes ($props)
8
9
  =============================================================================
10
+
11
+ @example
12
+ ```ts
13
+ import { mount, unmount, createRawSnippet } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { BareButton } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof BareButton> = { type: 'button', ariaLabel: '关闭', children: createRawSnippet(() => ({ render: () => "<span>关闭</span>" })) }
17
+ const component = mount(BareButton, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { BareButtonProps, DataAttributes } from '../../types.js'
@@ -1,5 +1,25 @@
1
1
  import type { BareButtonProps, DataAttributes } from '../../types.js';
2
2
  type $$ComponentProps = BareButtonProps & DataAttributes;
3
+ /**
4
+ * BareButton
5
+ * =============================================================================
6
+ * @h-ai/ui - BareButton 组件
7
+ * =============================================================================
8
+ * 无样式按钮组件(不注入 btn 类),用于自定义布局场景
9
+ *
10
+ * 使用 Svelte 5 Runes ($props)
11
+ * =============================================================================
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { mount, unmount, createRawSnippet } from 'svelte'
16
+ * import type { ComponentProps } from 'svelte'
17
+ * import { BareButton } from '@h-ai/ui'
18
+ * const props: ComponentProps<typeof BareButton> = { type: 'button', ariaLabel: '关闭', children: createRawSnippet(() => ({ render: () => "<span>关闭</span>" })) }
19
+ * const component = mount(BareButton, { target: document.body, props })
20
+ * await unmount(component)
21
+ * ```
22
+ */
3
23
  declare const BareButton: import("svelte").Component<$$ComponentProps, {}, "">;
4
24
  type BareButton = ReturnType<typeof BareButton>;
5
25
  export default BareButton;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component BareInput
2
3
  =============================================================================
3
4
  @h-ai/ui - BareInput 组件
4
5
  =============================================================================
@@ -6,6 +7,16 @@
6
7
 
7
8
  使用 Svelte 5 Runes ($props, $bindable)
8
9
  =============================================================================
10
+
11
+ @example
12
+ ```ts
13
+ import { mount, unmount } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { BareInput } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof BareInput> = { name: 'query', type: 'search' }
17
+ const component = mount(BareInput, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { BareInputProps, DataAttributes } from '../../types.js'
@@ -1,5 +1,25 @@
1
1
  import type { BareInputProps, DataAttributes } from '../../types.js';
2
2
  type $$ComponentProps = BareInputProps & DataAttributes;
3
+ /**
4
+ * BareInput
5
+ * =============================================================================
6
+ * @h-ai/ui - BareInput 组件
7
+ * =============================================================================
8
+ * 无样式输入框组件,仅渲染原生 input
9
+ *
10
+ * 使用 Svelte 5 Runes ($props, $bindable)
11
+ * =============================================================================
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { mount, unmount } from 'svelte'
16
+ * import type { ComponentProps } from 'svelte'
17
+ * import { BareInput } from '@h-ai/ui'
18
+ * const props: ComponentProps<typeof BareInput> = { name: 'query', type: 'search' }
19
+ * const component = mount(BareInput, { target: document.body, props })
20
+ * await unmount(component)
21
+ * ```
22
+ */
3
23
  declare const BareInput: import("svelte").Component<$$ComponentProps, {}, "value" | "inputRef">;
4
24
  type BareInput = ReturnType<typeof BareInput>;
5
25
  export default BareInput;
@@ -1,6 +1,16 @@
1
1
  <!--
2
2
  @component Button
3
3
  通用按钮组件,支持多种变体和尺寸。
4
+
5
+ @example
6
+ ```ts
7
+ import { mount, unmount, createRawSnippet } from 'svelte'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { Button } from '@h-ai/ui'
10
+ const props: ComponentProps<typeof Button> = { variant: 'primary', type: 'submit', children: createRawSnippet(() => ({ render: () => "<span>保存</span>" })) }
11
+ const component = mount(Button, { target: document.body, props })
12
+ await unmount(component)
13
+ ```
4
14
  -->
5
15
  <script lang='ts'>
6
16
  import type { ButtonProps, DataAttributes } from '../../types.js'
@@ -3,6 +3,16 @@ type $$ComponentProps = ButtonProps & DataAttributes;
3
3
  /**
4
4
  * Button
5
5
  * 通用按钮组件,支持多种变体和尺寸。
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount, createRawSnippet } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Button } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Button> = { variant: 'primary', type: 'submit', children: createRawSnippet(() => ({ render: () => "<span>保存</span>" })) }
13
+ * const component = mount(Button, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
6
16
  */
7
17
  declare const Button: import("svelte").Component<$$ComponentProps, {}, "">;
8
18
  type Button = ReturnType<typeof Button>;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component Checkbox
2
3
  =============================================================================
3
4
  @h-ai/ui - Checkbox 组件
4
5
  =============================================================================
@@ -6,6 +7,16 @@
6
7
 
7
8
  使用 Svelte 5 Runes ($props, $derived, $bindable)
8
9
  =============================================================================
10
+
11
+ @example
12
+ ```ts
13
+ import { mount, unmount } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { Checkbox } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof Checkbox> = { label: '同意条款', checked: true }
17
+ const component = mount(Checkbox, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { CheckboxProps, DataAttributes } from '../../types.js'
@@ -1,5 +1,25 @@
1
1
  import type { CheckboxProps, DataAttributes } from '../../types.js';
2
2
  type $$ComponentProps = CheckboxProps & DataAttributes;
3
+ /**
4
+ * Checkbox
5
+ * =============================================================================
6
+ * @h-ai/ui - Checkbox 组件
7
+ * =============================================================================
8
+ * 复选框组件
9
+ *
10
+ * 使用 Svelte 5 Runes ($props, $derived, $bindable)
11
+ * =============================================================================
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { mount, unmount } from 'svelte'
16
+ * import type { ComponentProps } from 'svelte'
17
+ * import { Checkbox } from '@h-ai/ui'
18
+ * const props: ComponentProps<typeof Checkbox> = { label: '同意条款', checked: true }
19
+ * const component = mount(Checkbox, { target: document.body, props })
20
+ * await unmount(component)
21
+ * ```
22
+ */
3
23
  declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "checked">;
4
24
  type Checkbox = ReturnType<typeof Checkbox>;
5
25
  export default Checkbox;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component IconButton
2
3
  =============================================================================
3
4
  @h-ai/ui - IconButton 组件
4
5
  =============================================================================
@@ -6,6 +7,16 @@
6
7
 
7
8
  使用 Svelte 5 Runes ($props, $derived)
8
9
  =============================================================================
10
+
11
+ @example
12
+ ```ts
13
+ import { mount, unmount, createRawSnippet } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { IconButton } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof IconButton> = { label: '关闭', tooltip: '关闭面板', children: createRawSnippet(() => ({ render: () => "<span>×</span>" })) }
17
+ const component = mount(IconButton, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { DataAttributes, IconButtonProps } from '../../types.js'
@@ -1,5 +1,25 @@
1
1
  import type { DataAttributes, IconButtonProps } from '../../types.js';
2
2
  type $$ComponentProps = IconButtonProps & DataAttributes;
3
+ /**
4
+ * IconButton
5
+ * =============================================================================
6
+ * @h-ai/ui - IconButton 组件
7
+ * =============================================================================
8
+ * 图标按钮组件
9
+ *
10
+ * 使用 Svelte 5 Runes ($props, $derived)
11
+ * =============================================================================
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { mount, unmount, createRawSnippet } from 'svelte'
16
+ * import type { ComponentProps } from 'svelte'
17
+ * import { IconButton } from '@h-ai/ui'
18
+ * const props: ComponentProps<typeof IconButton> = { label: '关闭', tooltip: '关闭面板', children: createRawSnippet(() => ({ render: () => "<span>×</span>" })) }
19
+ * const component = mount(IconButton, { target: document.body, props })
20
+ * await unmount(component)
21
+ * ```
22
+ */
3
23
  declare const IconButton: import("svelte").Component<$$ComponentProps, {}, "">;
4
24
  type IconButton = ReturnType<typeof IconButton>;
5
25
  export default IconButton;
@@ -1,6 +1,16 @@
1
1
  <!--
2
2
  @component Input
3
3
  文本输入框组件,支持自定义验证消息
4
+
5
+ @example
6
+ ```ts
7
+ import { mount, unmount } from 'svelte'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { Input } from '@h-ai/ui'
10
+ const props: ComponentProps<typeof Input> = { name: 'email', type: 'email', required: true }
11
+ const component = mount(Input, { target: document.body, props })
12
+ await unmount(component)
13
+ ```
4
14
  -->
5
15
  <script lang='ts'>
6
16
  import type { DataAttributes, InputProps } from '../../types.js'