@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
@@ -3,6 +3,16 @@ type $$ComponentProps = AlertProps & DataAttributes;
3
3
  /**
4
4
  * Alert
5
5
  * 警告框组件,使用 tabler icon 替代 emoji,更精致。
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount, createRawSnippet } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Alert } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Alert> = { title: '保存成功', variant: 'success', children: createRawSnippet(() => ({ render: () => "<span>操作已经完成。</span>" })) }
13
+ * const component = mount(Alert, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
6
16
  */
7
17
  declare const Alert: import("svelte").Component<$$ComponentProps, {}, "">;
8
18
  type Alert = ReturnType<typeof Alert>;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component AppBar
2
3
  @h-ai/ui — AppBar(顶部应用栏,支持安全区域)
3
4
 
4
5
  用法:
@@ -6,12 +7,35 @@
6
7
  {#snippet leading()}<BackButton />{/snippet}
7
8
  {#snippet trailing()}<Avatar />{/snippet}
8
9
  </AppBar>
10
+
11
+ @example
12
+ ```ts
13
+ import { mount, unmount } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { AppBar } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof AppBar> = { title: '设置', safeArea: true }
17
+ const component = mount(AppBar, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { Snippet } from 'svelte'
12
23
  import type { DataAttributes } from '../../types.js'
13
24
  import { cn, getDataAttributes } from '../../utils.js'
14
25
 
26
+ /**
27
+ * AppBar 组件的属性契约;通过公开组件配置使用。
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { mount, unmount } from 'svelte'
32
+ * import type { ComponentProps } from 'svelte'
33
+ * import { AppBar } from '@h-ai/ui'
34
+ * const props: ComponentProps<typeof AppBar> = { title: '设置', safeArea: true }
35
+ * const component = mount(AppBar, { target: document.body, props })
36
+ * await unmount(component)
37
+ * ```
38
+ */
15
39
  interface Props {
16
40
  /** 标题文本 */
17
41
  title?: string
@@ -1,5 +1,18 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { DataAttributes } from '../../types.js';
3
+ /**
4
+ * AppBar 组件的属性契约;通过公开组件配置使用。
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { mount, unmount } from 'svelte'
9
+ * import type { ComponentProps } from 'svelte'
10
+ * import { AppBar } from '@h-ai/ui'
11
+ * const props: ComponentProps<typeof AppBar> = { title: '设置', safeArea: true }
12
+ * const component = mount(AppBar, { target: document.body, props })
13
+ * await unmount(component)
14
+ * ```
15
+ */
3
16
  interface Props {
4
17
  /** 标题文本 */
5
18
  title?: string;
@@ -17,6 +30,26 @@ interface Props {
17
30
  children?: Snippet;
18
31
  }
19
32
  type $$ComponentProps = Props & DataAttributes;
33
+ /**
34
+ * AppBar
35
+ * @h-ai/ui — AppBar(顶部应用栏,支持安全区域)
36
+ *
37
+ * 用法:
38
+ * <AppBar title="首页">
39
+ * {#snippet leading()}<BackButton />{/snippet}
40
+ * {#snippet trailing()}<Avatar />{/snippet}
41
+ * </AppBar>
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { mount, unmount } from 'svelte'
46
+ * import type { ComponentProps } from 'svelte'
47
+ * import { AppBar } from '@h-ai/ui'
48
+ * const props: ComponentProps<typeof AppBar> = { title: '设置', safeArea: true }
49
+ * const component = mount(AppBar, { target: document.body, props })
50
+ * await unmount(component)
51
+ * ```
52
+ */
20
53
  declare const AppBar: import("svelte").Component<$$ComponentProps, {}, "">;
21
54
  type AppBar = ReturnType<typeof AppBar>;
22
55
  export default AppBar;
@@ -1,8 +1,19 @@
1
1
  <!--
2
+ @component BottomNav
2
3
  @h-ai/ui — BottomNav(底部导航栏)
3
4
 
4
5
  用法:
5
6
  <BottomNav items={navItems} active="home" onchange={(id) => goto(`/${id}`)} />
7
+
8
+ @example
9
+ ```ts
10
+ import { mount, unmount } from 'svelte'
11
+ import type { ComponentProps } from 'svelte'
12
+ import { BottomNav } from '@h-ai/ui'
13
+ const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
14
+ const component = mount(BottomNav, { target: document.body, props })
15
+ await unmount(component)
16
+ ```
6
17
  -->
7
18
  <script lang='ts'>
8
19
  import type { DataAttributes } from '../../types.js'
@@ -12,6 +23,19 @@
12
23
  // eslint-disable-next-line no-import-assign -- type re-export
13
24
  export type { BottomNavItem }
14
25
 
26
+ /**
27
+ * 底部导航的内容宽度预设;none 取消预设宽度约束。
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { mount, unmount } from 'svelte'
32
+ * import type { ComponentProps } from 'svelte'
33
+ * import { BottomNav } from '@h-ai/ui'
34
+ * const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
35
+ * const component = mount(BottomNav, { target: document.body, props })
36
+ * await unmount(component)
37
+ * ```
38
+ */
15
39
  type BottomNavMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'none'
16
40
 
17
41
  const MAX_WIDTH_CLASS: Record<BottomNavMaxWidth, string> = {
@@ -22,6 +46,19 @@
22
46
  none: '',
23
47
  }
24
48
 
49
+ /**
50
+ * BottomNav 组件的属性契约;通过公开组件配置使用。
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { mount, unmount } from 'svelte'
55
+ * import type { ComponentProps } from 'svelte'
56
+ * import { BottomNav } from '@h-ai/ui'
57
+ * const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
58
+ * const component = mount(BottomNav, { target: document.body, props })
59
+ * await unmount(component)
60
+ * ```
61
+ */
25
62
  interface Props {
26
63
  /** 导航项列表 */
27
64
  items: BottomNavItem[]
@@ -1,6 +1,32 @@
1
1
  import type { DataAttributes } from '../../types.js';
2
2
  import type { BottomNavItem } from './bottom-nav-types.js';
3
+ /**
4
+ * 底部导航的内容宽度预设;none 取消预设宽度约束。
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { mount, unmount } from 'svelte'
9
+ * import type { ComponentProps } from 'svelte'
10
+ * import { BottomNav } from '@h-ai/ui'
11
+ * const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
12
+ * const component = mount(BottomNav, { target: document.body, props })
13
+ * await unmount(component)
14
+ * ```
15
+ */
3
16
  type BottomNavMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'none';
17
+ /**
18
+ * BottomNav 组件的属性契约;通过公开组件配置使用。
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { mount, unmount } from 'svelte'
23
+ * import type { ComponentProps } from 'svelte'
24
+ * import { BottomNav } from '@h-ai/ui'
25
+ * const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
26
+ * const component = mount(BottomNav, { target: document.body, props })
27
+ * await unmount(component)
28
+ * ```
29
+ */
4
30
  interface Props {
5
31
  /** 导航项列表 */
6
32
  items: BottomNavItem[];
@@ -18,6 +44,23 @@ interface Props {
18
44
  class?: string;
19
45
  }
20
46
  type $$ComponentProps = Props & DataAttributes;
47
+ /**
48
+ * BottomNav
49
+ * @h-ai/ui — BottomNav(底部导航栏)
50
+ *
51
+ * 用法:
52
+ * <BottomNav items={navItems} active="home" onchange={(id) => goto(`/${id}`)} />
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * import { mount, unmount } from 'svelte'
57
+ * import type { ComponentProps } from 'svelte'
58
+ * import { BottomNav } from '@h-ai/ui'
59
+ * const props: ComponentProps<typeof BottomNav> = { items: [{ id: 'home', label: '首页', iconClass: 'icon-[tabler--home]' }], active: 'home', maxWidth: 'lg' }
60
+ * const component = mount(BottomNav, { target: document.body, props })
61
+ * await unmount(component)
62
+ * ```
63
+ */
21
64
  declare const BottomNav: import("svelte").Component<$$ComponentProps, {
22
65
  BottomNavItem: typeof BottomNavItem;
23
66
  }, "">;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component Breadcrumb
2
3
  =============================================================================
3
4
  @h-ai/ui - Breadcrumb 组件
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 } from 'svelte'
14
+ import type { ComponentProps } from 'svelte'
15
+ import { Breadcrumb } from '@h-ai/ui'
16
+ const props: ComponentProps<typeof Breadcrumb> = { items: [{ label: '首页', href: '/' }, { label: '设置' }] }
17
+ const component = mount(Breadcrumb, { target: document.body, props })
18
+ await unmount(component)
19
+ ```
9
20
  -->
10
21
  <script lang='ts'>
11
22
  import type { BreadcrumbProps, DataAttributes } from '../../types.js'
@@ -1,5 +1,25 @@
1
1
  import type { BreadcrumbProps, DataAttributes } from '../../types.js';
2
2
  type $$ComponentProps = BreadcrumbProps & DataAttributes;
3
+ /**
4
+ * Breadcrumb
5
+ * =============================================================================
6
+ * @h-ai/ui - Breadcrumb 组件
7
+ * =============================================================================
8
+ * 面包屑导航组件
9
+ *
10
+ * 使用 Svelte 5 Runes ($props)
11
+ * =============================================================================
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { mount, unmount } from 'svelte'
16
+ * import type { ComponentProps } from 'svelte'
17
+ * import { Breadcrumb } from '@h-ai/ui'
18
+ * const props: ComponentProps<typeof Breadcrumb> = { items: [{ label: '首页', href: '/' }, { label: '设置' }] }
19
+ * const component = mount(Breadcrumb, { target: document.body, props })
20
+ * await unmount(component)
21
+ * ```
22
+ */
3
23
  declare const Breadcrumb: import("svelte").Component<$$ComponentProps, {}, "">;
4
24
  type Breadcrumb = ReturnType<typeof Breadcrumb>;
5
25
  export default Breadcrumb;
@@ -11,12 +11,13 @@
11
11
  @prop {function} onchange - 日期变更回调
12
12
 
13
13
  @example
14
- ```svelte
15
- <script>
16
- import { CalendarDate } from '@internationalized/date'
17
- let date = $state(new CalendarDate(2024, 1, 15))
18
- </script>
19
- <Calendar bind:value={date} />
14
+ ```ts
15
+ import { mount, unmount } from 'svelte'
16
+ import type { ComponentProps } from 'svelte'
17
+ import { Calendar } from '@h-ai/ui'
18
+ const props: ComponentProps<typeof Calendar> = { weekStartsOn: 1 }
19
+ const component = mount(Calendar, { target: document.body, props })
20
+ await unmount(component)
20
21
  ```
21
22
  -->
22
23
  <script lang='ts'>
@@ -25,6 +26,19 @@
25
26
  import { Calendar as BitsCalendar } from 'bits-ui'
26
27
  import { getDataAttributes } from '../../utils.js'
27
28
 
29
+ /**
30
+ * Calendar 组件的属性契约;通过公开组件配置使用。
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { mount, unmount } from 'svelte'
35
+ * import type { ComponentProps } from 'svelte'
36
+ * import { Calendar } from '@h-ai/ui'
37
+ * const props: ComponentProps<typeof Calendar> = { weekStartsOn: 1 }
38
+ * const component = mount(Calendar, { target: document.body, props })
39
+ * await unmount(component)
40
+ * ```
41
+ */
28
42
  interface Props {
29
43
  /** 选中日期(双向绑定) */
30
44
  value?: DateValue
@@ -1,5 +1,18 @@
1
1
  import type { DateValue } from '@internationalized/date';
2
2
  import type { DataAttributes } from '../../types.js';
3
+ /**
4
+ * Calendar 组件的属性契约;通过公开组件配置使用。
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { mount, unmount } from 'svelte'
9
+ * import type { ComponentProps } from 'svelte'
10
+ * import { Calendar } from '@h-ai/ui'
11
+ * const props: ComponentProps<typeof Calendar> = { weekStartsOn: 1 }
12
+ * const component = mount(Calendar, { target: document.body, props })
13
+ * await unmount(component)
14
+ * ```
15
+ */
3
16
  interface Props {
4
17
  /** 选中日期(双向绑定) */
5
18
  value?: DateValue;
@@ -36,12 +49,13 @@ type $$ComponentProps = Props & DataAttributes;
36
49
  * @prop {function} onchange - 日期变更回调
37
50
  *
38
51
  * @example
39
- * ```svelte
40
- * <script>
41
- * import { CalendarDate } from '@internationalized/date'
42
- * let date = $state(new CalendarDate(2024, 1, 15))
43
- * </script>
44
- * <Calendar bind:value={date} />
52
+ * ```ts
53
+ * import { mount, unmount } from 'svelte'
54
+ * import type { ComponentProps } from 'svelte'
55
+ * import { Calendar } from '@h-ai/ui'
56
+ * const props: ComponentProps<typeof Calendar> = { weekStartsOn: 1 }
57
+ * const component = mount(Calendar, { target: document.body, props })
58
+ * await unmount(component)
45
59
  * ```
46
60
  */
47
61
  declare const Calendar: import("svelte").Component<$$ComponentProps, {}, "value" | "placeholder">;
@@ -1,6 +1,16 @@
1
1
  <!--
2
2
  @component Card
3
3
  卡片组件,默认使用 border 而非 shadow,更现代克制。
4
+
5
+ @example
6
+ ```ts
7
+ import { mount, unmount, createRawSnippet } from 'svelte'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { Card } from '@h-ai/ui'
10
+ const props: ComponentProps<typeof Card> = { title: '个人资料', bordered: true, children: createRawSnippet(() => ({ render: () => "<span>资料内容</span>" })) }
11
+ const component = mount(Card, { target: document.body, props })
12
+ await unmount(component)
13
+ ```
4
14
  -->
5
15
  <script lang='ts'>
6
16
  import type { CardProps, DataAttributes } from '../../types.js'
@@ -3,6 +3,16 @@ type $$ComponentProps = CardProps & DataAttributes;
3
3
  /**
4
4
  * Card
5
5
  * 卡片组件,默认使用 border 而非 shadow,更现代克制。
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { mount, unmount, createRawSnippet } from 'svelte'
10
+ * import type { ComponentProps } from 'svelte'
11
+ * import { Card } from '@h-ai/ui'
12
+ * const props: ComponentProps<typeof Card> = { title: '个人资料', bordered: true, children: createRawSnippet(() => ({ render: () => "<span>资料内容</span>" })) }
13
+ * const component = mount(Card, { target: document.body, props })
14
+ * await unmount(component)
15
+ * ```
6
16
  */
7
17
  declare const Card: import("svelte").Component<$$ComponentProps, {}, "">;
8
18
  type Card = ReturnType<typeof Card>;
@@ -15,23 +15,15 @@
15
15
  @prop {string} class - 自定义类名
16
16
  @prop {function} onchange - 值变更回调
17
17
 
18
- @example 单选
19
- <Combobox
20
- options={[
21
- { value: 'svelte', label: 'Svelte' },
22
- { value: 'react', label: 'React' },
23
- ]}
24
- bind:value={framework}
25
- placeholder="搜索框架..."
26
- />
27
-
28
- @example 多选
29
- <Combobox
30
- options={skills}
31
- bind:value={selectedSkills}
32
- multiple
33
- placeholder="搜索技能..."
34
- />
18
+ @example
19
+ ```ts
20
+ import { mount, unmount } from 'svelte'
21
+ import type { ComponentProps } from 'svelte'
22
+ import { Combobox } from '@h-ai/ui'
23
+ const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
24
+ const component = mount(Combobox, { target: document.body, props })
25
+ await unmount(component)
26
+ ```
35
27
  -->
36
28
  <script lang='ts'>
37
29
  import type { DataAttributes, FormText, Size } from '../../types.js'
@@ -43,7 +35,19 @@
43
35
  import { getFormControlSizeClasses } from '../control-size.js'
44
36
  import BareButton from '../primitives/BareButton.svelte'
45
37
 
46
- /** 选项定义 */
38
+ /**
39
+ * 选项定义
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { mount, unmount } from 'svelte'
44
+ * import type { ComponentProps } from 'svelte'
45
+ * import { Combobox } from '@h-ai/ui'
46
+ * const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
47
+ * const component = mount(Combobox, { target: document.body, props })
48
+ * await unmount(component)
49
+ * ```
50
+ */
47
51
  interface Option {
48
52
  /** 选项值 */
49
53
  value: string
@@ -55,6 +59,19 @@
55
59
  description?: string
56
60
  }
57
61
 
62
+ /**
63
+ * Combobox 组件的属性契约;通过公开组件配置使用。
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * import { mount, unmount } from 'svelte'
68
+ * import type { ComponentProps } from 'svelte'
69
+ * import { Combobox } from '@h-ai/ui'
70
+ * const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
71
+ * const component = mount(Combobox, { target: document.body, props })
72
+ * await unmount(component)
73
+ * ```
74
+ */
58
75
  interface Props {
59
76
  /** 选项列表 */
60
77
  options: Option[]
@@ -1,6 +1,18 @@
1
1
  import type { DataAttributes, FormText, Size } from '../../types.js';
2
2
  import { Combobox } from 'bits-ui';
3
- /** 选项定义 */
3
+ /**
4
+ * 选项定义
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { mount, unmount } from 'svelte'
9
+ * import type { ComponentProps } from 'svelte'
10
+ * import { Combobox } from '@h-ai/ui'
11
+ * const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
12
+ * const component = mount(Combobox, { target: document.body, props })
13
+ * await unmount(component)
14
+ * ```
15
+ */
4
16
  interface Option {
5
17
  /** 选项值 */
6
18
  value: string;
@@ -11,6 +23,19 @@ interface Option {
11
23
  /** 描述文本(仅在多选模式下展示) */
12
24
  description?: string;
13
25
  }
26
+ /**
27
+ * Combobox 组件的属性契约;通过公开组件配置使用。
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { mount, unmount } from 'svelte'
32
+ * import type { ComponentProps } from 'svelte'
33
+ * import { Combobox } from '@h-ai/ui'
34
+ * const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
35
+ * const component = mount(Combobox, { target: document.body, props })
36
+ * await unmount(component)
37
+ * ```
38
+ */
14
39
  interface Props {
15
40
  /** 选项列表 */
16
41
  options: Option[];
@@ -51,23 +76,15 @@ type $$ComponentProps = Props & DataAttributes;
51
76
  * @prop {string} class - 自定义类名
52
77
  * @prop {function} onchange - 值变更回调
53
78
  *
54
- * @example 单选
55
- * <Combobox
56
- * options={[
57
- * { value: 'svelte', label: 'Svelte' },
58
- * { value: 'react', label: 'React' },
59
- * ]}
60
- * bind:value={framework}
61
- * placeholder="搜索框架..."
62
- * />
63
- *
64
- * @example 多选
65
- * <Combobox
66
- * options={skills}
67
- * bind:value={selectedSkills}
68
- * multiple
69
- * placeholder="搜索技能..."
70
- * />
79
+ * @example
80
+ * ```ts
81
+ * import { mount, unmount } from 'svelte'
82
+ * import type { ComponentProps } from 'svelte'
83
+ * import { Combobox } from '@h-ai/ui'
84
+ * const props: ComponentProps<typeof Combobox> = { options: [{ value: 'svelte', label: 'Svelte' }], value: 'svelte' }
85
+ * const component = mount(Combobox, { target: document.body, props })
86
+ * await unmount(component)
87
+ * ```
71
88
  */
72
89
  declare const Combobox: import("svelte").Component<$$ComponentProps, {}, "value">;
73
90
  type Combobox = ReturnType<typeof Combobox>;
@@ -1,4 +1,5 @@
1
1
  <!--
2
+ @component Confirm
2
3
  =============================================================================
3
4
  @h-ai/ui - Confirm 组件
4
5
  =============================================================================
@@ -7,6 +8,16 @@
7
8
  使用 Svelte 5 Runes ($props, $state)
8
9
  使用 primitives 组件:Button
9
10
  =============================================================================
11
+
12
+ @example
13
+ ```ts
14
+ import { mount, unmount } from 'svelte'
15
+ import type { ComponentProps } from 'svelte'
16
+ import { Confirm } from '@h-ai/ui'
17
+ const props: ComponentProps<typeof Confirm> = { open: true, title: '删除记录', message: '确定删除这条记录?', variant: 'warning' }
18
+ const component = mount(Confirm, { target: document.body, props })
19
+ await unmount(component)
20
+ ```
10
21
  -->
11
22
  <script lang='ts'>
12
23
  import type { ConfirmProps, DataAttributes } from '../../types.js'
@@ -1,5 +1,26 @@
1
1
  import type { ConfirmProps, DataAttributes } from '../../types.js';
2
2
  type $$ComponentProps = ConfirmProps & DataAttributes;
3
+ /**
4
+ * Confirm
5
+ * =============================================================================
6
+ * @h-ai/ui - Confirm 组件
7
+ * =============================================================================
8
+ * 确认对话框组件
9
+ *
10
+ * 使用 Svelte 5 Runes ($props, $state)
11
+ * 使用 primitives 组件:Button
12
+ * =============================================================================
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { mount, unmount } from 'svelte'
17
+ * import type { ComponentProps } from 'svelte'
18
+ * import { Confirm } from '@h-ai/ui'
19
+ * const props: ComponentProps<typeof Confirm> = { open: true, title: '删除记录', message: '确定删除这条记录?', variant: 'warning' }
20
+ * const component = mount(Confirm, { target: document.body, props })
21
+ * await unmount(component)
22
+ * ```
23
+ */
3
24
  declare const Confirm: import("svelte").Component<$$ComponentProps, {}, "open">;
4
25
  type Confirm = ReturnType<typeof Confirm>;
5
26
  export default Confirm;