@h-ai/ui 0.1.0-alpha.66 → 0.1.0-alpha.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +106 -55
- package/README.ja.md +106 -55
- package/README.md +137 -87
- package/dist/components/compounds/Accordion.svelte +24 -0
- package/dist/components/compounds/Accordion.svelte.d.ts +34 -0
- package/dist/components/compounds/ActionSheet.svelte +24 -0
- package/dist/components/compounds/ActionSheet.svelte.d.ts +38 -0
- package/dist/components/compounds/Alert.svelte +15 -4
- package/dist/components/compounds/Alert.svelte.d.ts +10 -0
- package/dist/components/compounds/AppBar.svelte +24 -0
- package/dist/components/compounds/AppBar.svelte.d.ts +33 -0
- package/dist/components/compounds/BottomNav.svelte +37 -0
- package/dist/components/compounds/BottomNav.svelte.d.ts +43 -0
- package/dist/components/compounds/Breadcrumb.svelte +11 -0
- package/dist/components/compounds/Breadcrumb.svelte.d.ts +20 -0
- package/dist/components/compounds/Calendar.svelte +20 -6
- package/dist/components/compounds/Calendar.svelte.d.ts +20 -6
- package/dist/components/compounds/Card.svelte +10 -0
- package/dist/components/compounds/Card.svelte.d.ts +10 -0
- package/dist/components/compounds/Combobox.svelte +35 -18
- package/dist/components/compounds/Combobox.svelte.d.ts +35 -18
- package/dist/components/compounds/Confirm.svelte +11 -0
- package/dist/components/compounds/Confirm.svelte.d.ts +21 -0
- package/dist/components/compounds/DataTable.svelte +40 -17
- package/dist/components/compounds/DataTable.svelte.d.ts +9 -13
- package/dist/components/compounds/DatePicker.svelte +20 -6
- package/dist/components/compounds/DatePicker.svelte.d.ts +20 -6
- package/dist/components/compounds/Drawer.svelte +11 -0
- package/dist/components/compounds/Drawer.svelte.d.ts +21 -0
- package/dist/components/compounds/Dropdown.svelte +10 -0
- package/dist/components/compounds/Dropdown.svelte.d.ts +10 -0
- package/dist/components/compounds/Empty.svelte +16 -5
- package/dist/components/compounds/Empty.svelte.d.ts +20 -0
- package/dist/components/compounds/Form.svelte +37 -2
- package/dist/components/compounds/Form.svelte.d.ts +20 -0
- package/dist/components/compounds/FormField.svelte +11 -0
- package/dist/components/compounds/FormField.svelte.d.ts +20 -0
- package/dist/components/compounds/FormLayout.svelte +13 -1
- package/dist/components/compounds/FormLayout.svelte.d.ts +13 -0
- package/dist/components/compounds/InfiniteScroll.svelte +24 -0
- package/dist/components/compounds/InfiniteScroll.svelte.d.ts +34 -0
- package/dist/components/compounds/MessageBoxContainer.svelte +11 -0
- package/dist/components/compounds/MessageBoxContainer.svelte.d.ts +21 -0
- package/dist/components/compounds/MessageBoxDialog.svelte +14 -0
- package/dist/components/compounds/MessageBoxDialog.svelte.d.ts +21 -0
- package/dist/components/compounds/MessageContainer.svelte +11 -0
- package/dist/components/compounds/MessageContainer.svelte.d.ts +21 -0
- package/dist/components/compounds/Modal.svelte +10 -0
- package/dist/components/compounds/Modal.svelte.d.ts +10 -0
- package/dist/components/compounds/PageHeader.svelte +21 -8
- package/dist/components/compounds/PageHeader.svelte.d.ts +21 -8
- package/dist/components/compounds/Pagination.svelte +34 -8
- package/dist/components/compounds/Pagination.svelte.d.ts +20 -0
- package/dist/components/compounds/Popover.svelte +11 -0
- package/dist/components/compounds/Popover.svelte.d.ts +20 -0
- package/dist/components/compounds/PullRefresh.svelte +24 -0
- package/dist/components/compounds/PullRefresh.svelte.d.ts +32 -0
- package/dist/components/compounds/Result.svelte +11 -0
- package/dist/components/compounds/Result.svelte.d.ts +20 -0
- package/dist/components/compounds/SafeArea.svelte +24 -0
- package/dist/components/compounds/SafeArea.svelte.d.ts +32 -0
- package/dist/components/compounds/Skeleton.svelte +10 -0
- package/dist/components/compounds/Skeleton.svelte.d.ts +10 -0
- package/dist/components/compounds/Steps.svelte +11 -0
- package/dist/components/compounds/Steps.svelte.d.ts +20 -0
- package/dist/components/compounds/SwipeCell.svelte +24 -0
- package/dist/components/compounds/SwipeCell.svelte.d.ts +37 -0
- package/dist/components/compounds/TableToolbar.svelte +66 -28
- package/dist/components/compounds/TableToolbar.svelte.d.ts +29 -19
- package/dist/components/compounds/Tabs.svelte +58 -10
- package/dist/components/compounds/Tabs.svelte.d.ts +10 -0
- package/dist/components/compounds/TagInput.svelte +11 -0
- package/dist/components/compounds/TagInput.svelte.d.ts +20 -0
- package/dist/components/compounds/Timeline.svelte +24 -0
- package/dist/components/compounds/Timeline.svelte.d.ts +34 -0
- package/dist/components/compounds/ToastContainer.svelte +11 -0
- package/dist/components/compounds/ToastContainer.svelte.d.ts +26 -0
- package/dist/components/compounds/Tooltip.svelte +11 -0
- package/dist/components/compounds/Tooltip.svelte.d.ts +22 -0
- package/dist/components/compounds/accordion-types.d.ts +10 -1
- package/dist/components/compounds/action-sheet-types.d.ts +9 -0
- package/dist/components/compounds/bottom-nav-types.d.ts +9 -0
- package/dist/components/compounds/swipe-cell-types.d.ts +9 -0
- package/dist/components/compounds/timeline-types.d.ts +9 -0
- package/dist/components/control-size.d.ts +17 -0
- package/dist/components/control-size.js +8 -0
- package/dist/components/primitives/Avatar.svelte +10 -0
- package/dist/components/primitives/Avatar.svelte.d.ts +10 -0
- package/dist/components/primitives/Badge.svelte +10 -0
- package/dist/components/primitives/Badge.svelte.d.ts +10 -0
- package/dist/components/primitives/BareButton.svelte +11 -0
- package/dist/components/primitives/BareButton.svelte.d.ts +20 -0
- package/dist/components/primitives/BareInput.svelte +11 -0
- package/dist/components/primitives/BareInput.svelte.d.ts +20 -0
- package/dist/components/primitives/Button.svelte +10 -0
- package/dist/components/primitives/Button.svelte.d.ts +10 -0
- package/dist/components/primitives/Checkbox.svelte +11 -0
- package/dist/components/primitives/Checkbox.svelte.d.ts +20 -0
- package/dist/components/primitives/IconButton.svelte +11 -0
- package/dist/components/primitives/IconButton.svelte.d.ts +20 -0
- package/dist/components/primitives/Input.svelte +10 -0
- package/dist/components/primitives/Input.svelte.d.ts +10 -0
- package/dist/components/primitives/Progress.svelte +11 -0
- package/dist/components/primitives/Progress.svelte.d.ts +20 -0
- package/dist/components/primitives/Radio.svelte +11 -0
- package/dist/components/primitives/Radio.svelte.d.ts +20 -0
- package/dist/components/primitives/Range.svelte +24 -0
- package/dist/components/primitives/Range.svelte.d.ts +34 -0
- package/dist/components/primitives/Rating.svelte +24 -0
- package/dist/components/primitives/Rating.svelte.d.ts +34 -0
- package/dist/components/primitives/Select.svelte +11 -0
- package/dist/components/primitives/Select.svelte.d.ts +21 -0
- package/dist/components/primitives/Spinner.svelte +11 -0
- package/dist/components/primitives/Spinner.svelte.d.ts +20 -0
- package/dist/components/primitives/Switch.svelte +11 -0
- package/dist/components/primitives/Switch.svelte.d.ts +20 -0
- package/dist/components/primitives/Tag.svelte +11 -0
- package/dist/components/primitives/Tag.svelte.d.ts +20 -0
- package/dist/components/primitives/Textarea.svelte +11 -0
- package/dist/components/primitives/Textarea.svelte.d.ts +21 -0
- package/dist/components/primitives/ToggleCheckbox.svelte +11 -0
- package/dist/components/primitives/ToggleCheckbox.svelte.d.ts +20 -0
- package/dist/components/primitives/ToggleInput.svelte +11 -0
- package/dist/components/primitives/ToggleInput.svelte.d.ts +20 -0
- package/dist/components/primitives/ToggleRadio.svelte +11 -0
- package/dist/components/primitives/ToggleRadio.svelte.d.ts +20 -0
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte +27 -0
- package/dist/components/scenes/ai/AiDocumentDownloadMenu.svelte.d.ts +27 -0
- package/dist/components/scenes/ai/AiDocumentEditor.svelte +79 -0
- package/dist/components/scenes/ai/AiDocumentEditor.svelte.d.ts +23 -0
- package/dist/components/scenes/ai/MarkdownRenderer.svelte +11 -0
- package/dist/components/scenes/ai/MarkdownRenderer.svelte.d.ts +28 -0
- package/dist/components/scenes/ai/code-preview.d.ts +28 -0
- package/dist/components/scenes/ai/code-preview.js +20 -0
- package/dist/components/scenes/ai/document-download.d.ts +52 -0
- package/dist/components/scenes/ai/document-download.js +30 -2
- package/dist/components/scenes/ai/document-parse.d.ts +71 -14
- package/dist/components/scenes/ai/document-parse.js +19 -9
- package/dist/components/scenes/ai/document-types.d.ts +222 -88
- package/dist/components/scenes/ai/editor-markdown-extensions.d.ts +16 -0
- package/dist/components/scenes/ai/editor-markdown-extensions.js +16 -0
- package/dist/components/scenes/ai/highlight.d.ts +11 -0
- package/dist/components/scenes/ai/highlight.js +11 -0
- package/dist/components/scenes/ai/markdown-parse.d.ts +8 -2
- package/dist/components/scenes/ai/markdown-parse.js +2 -2
- package/dist/components/scenes/ai/mermaid-host-sync.d.ts +38 -0
- package/dist/components/scenes/ai/mermaid-host-sync.js +30 -0
- package/dist/components/scenes/ai/mermaid-render.d.ts +23 -0
- package/dist/components/scenes/ai/mermaid-render.js +23 -0
- package/dist/components/scenes/ai/safe-html.d.ts +54 -6
- package/dist/components/scenes/ai/safe-html.js +54 -6
- package/dist/components/scenes/ai/table/AiTableEditor.svelte +48 -0
- package/dist/components/scenes/ai/table/AiTableEditor.svelte.d.ts +24 -0
- package/dist/components/scenes/ai/table/table-types.d.ts +79 -0
- package/dist/components/scenes/app/FeedbackModal.svelte +45 -5
- package/dist/components/scenes/app/FeedbackModal.svelte.d.ts +45 -5
- package/dist/components/scenes/app/LanguageSwitch.svelte +29 -19
- package/dist/components/scenes/app/LanguageSwitch.svelte.d.ts +28 -19
- package/dist/components/scenes/app/SettingsLayout.svelte +21 -9
- package/dist/components/scenes/app/SettingsLayout.svelte.d.ts +21 -9
- package/dist/components/scenes/app/SettingsModal.svelte +23 -0
- package/dist/components/scenes/app/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/scenes/app/ThemeColorPicker.svelte +31 -0
- package/dist/components/scenes/app/ThemeColorPicker.svelte.d.ts +31 -0
- package/dist/components/scenes/app/ThemeSelector.svelte +21 -6
- package/dist/components/scenes/app/ThemeSelector.svelte.d.ts +21 -6
- package/dist/components/scenes/app/ThemeToggle.svelte +21 -4
- package/dist/components/scenes/app/ThemeToggle.svelte.d.ts +21 -4
- package/dist/components/scenes/app/index.d.ts +1 -1
- package/dist/components/scenes/app/index.js +1 -1
- package/dist/components/scenes/charts/Chart.svelte +11 -0
- package/dist/components/scenes/charts/Chart.svelte.d.ts +20 -0
- package/dist/components/scenes/charts/chart-theme.d.ts +25 -1
- package/dist/components/scenes/charts/chart-theme.js +25 -1
- package/dist/components/scenes/charts/chart-types.d.ts +83 -7
- package/dist/components/scenes/charts/renderers/LineChart.svelte +53 -0
- package/dist/components/scenes/charts/renderers/LineChart.svelte.d.ts +13 -0
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte +10 -0
- package/dist/components/scenes/crud/CrudDeleteConfirm.svelte.d.ts +10 -0
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte +8 -0
- package/dist/components/scenes/crud/CrudDetailDrawer.svelte.d.ts +8 -0
- package/dist/components/scenes/crud/CrudDetailPanel.svelte +18 -0
- package/dist/components/scenes/crud/CrudDetailPanel.svelte.d.ts +18 -0
- package/dist/components/scenes/crud/CrudEditPanel.svelte +10 -0
- package/dist/components/scenes/crud/CrudEditPanel.svelte.d.ts +10 -0
- package/dist/components/scenes/crud/CrudFilterBar.svelte +18 -0
- package/dist/components/scenes/crud/CrudFilterBar.svelte.d.ts +18 -0
- package/dist/components/scenes/crud/CrudPage.svelte +37 -5
- package/dist/components/scenes/crud/CrudPage.svelte.d.ts +35 -3
- package/dist/components/scenes/crud/crud-controller.svelte.d.ts +142 -23
- package/dist/components/scenes/crud/crud-controller.svelte.js +22 -11
- package/dist/components/scenes/crud/crud-form-validation.d.ts +12 -0
- package/dist/components/scenes/crud/crud-form-validation.js +12 -0
- package/dist/components/scenes/crud/crud-types.d.ts +79 -8
- package/dist/components/scenes/crud/nav-adapter.d.ts +14 -0
- package/dist/components/scenes/crud/nav-adapter.js +8 -0
- package/dist/components/scenes/crypto/EncryptedInput.svelte +24 -0
- package/dist/components/scenes/crypto/EncryptedInput.svelte.d.ts +34 -0
- package/dist/components/scenes/crypto/HashDisplay.svelte +11 -0
- package/dist/components/scenes/crypto/HashDisplay.svelte.d.ts +21 -0
- package/dist/components/scenes/crypto/SignatureDisplay.svelte +11 -0
- package/dist/components/scenes/crypto/SignatureDisplay.svelte.d.ts +21 -0
- package/dist/components/scenes/error/ErrorPage.svelte +8 -1
- package/dist/components/scenes/error/ErrorPage.svelte.d.ts +8 -1
- package/dist/components/scenes/error/error-presets.d.ts +40 -4
- package/dist/components/scenes/error/error-presets.js +22 -2
- package/dist/components/scenes/guide/GuideHost.svelte +27 -0
- package/dist/components/scenes/guide/GuideHost.svelte.d.ts +27 -0
- package/dist/components/scenes/guide/HelpCenter.svelte +27 -0
- package/dist/components/scenes/guide/HelpCenter.svelte.d.ts +27 -0
- package/dist/components/scenes/iam/AuthPanel.svelte +26 -2
- package/dist/components/scenes/iam/AuthPanel.svelte.d.ts +25 -0
- package/dist/components/scenes/iam/AuthShell.svelte +8 -3
- package/dist/components/scenes/iam/AuthShell.svelte.d.ts +8 -3
- package/dist/components/scenes/iam/ChangePasswordForm.svelte +10 -0
- package/dist/components/scenes/iam/ChangePasswordForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte +11 -0
- package/dist/components/scenes/iam/ForgotPasswordForm.svelte.d.ts +21 -0
- package/dist/components/scenes/iam/LoginForm.svelte +24 -31
- package/dist/components/scenes/iam/LoginForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/PasswordInput.svelte +23 -0
- package/dist/components/scenes/iam/PasswordInput.svelte.d.ts +23 -0
- package/dist/components/scenes/iam/PermGuard.svelte +21 -11
- package/dist/components/scenes/iam/PermGuard.svelte.d.ts +30 -0
- package/dist/components/scenes/iam/RegisterForm.svelte +10 -0
- package/dist/components/scenes/iam/RegisterForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/ResetPasswordForm.svelte +10 -0
- package/dist/components/scenes/iam/ResetPasswordForm.svelte.d.ts +10 -0
- package/dist/components/scenes/iam/UserProfile.svelte +11 -0
- package/dist/components/scenes/iam/UserProfile.svelte.d.ts +21 -0
- package/dist/components/scenes/iam/auth-error-message.d.ts +10 -0
- package/dist/components/scenes/iam/auth-error-message.js +10 -0
- package/dist/components/scenes/iam/password-utils.d.ts +39 -1
- package/dist/components/scenes/iam/password-utils.js +39 -1
- package/dist/components/scenes/iam/permission-context.svelte.d.ts +33 -23
- package/dist/components/scenes/iam/permission-context.svelte.js +20 -22
- package/dist/components/scenes/storage/AvatarUpload.svelte +11 -0
- package/dist/components/scenes/storage/AvatarUpload.svelte.d.ts +20 -0
- package/dist/components/scenes/storage/FileList.svelte +13 -2
- package/dist/components/scenes/storage/FileList.svelte.d.ts +20 -0
- package/dist/components/scenes/storage/FileUpload.svelte +37 -2
- package/dist/components/scenes/storage/FileUpload.svelte.d.ts +21 -0
- package/dist/components/scenes/storage/ImageUpload.svelte +11 -0
- package/dist/components/scenes/storage/ImageUpload.svelte.d.ts +21 -0
- package/dist/components/scenes/types.d.ts +352 -11
- package/dist/guide-storage.d.ts +13 -1
- package/dist/guide-storage.js +13 -1
- package/dist/guide-types.d.ts +67 -2
- package/dist/guide.svelte.d.ts +22 -1
- package/dist/guide.svelte.js +22 -1
- package/dist/i18n.svelte.d.ts +64 -3
- package/dist/i18n.svelte.js +99 -18
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -2
- package/dist/internal/browser-safety.d.ts +51 -2
- package/dist/internal/browser-safety.js +45 -7
- package/dist/internal/form-context.d.ts +73 -0
- package/dist/internal/form-context.js +57 -0
- package/dist/internal/form-validation.svelte.d.ts +42 -0
- package/dist/internal/form-validation.svelte.js +26 -0
- package/dist/internal/icon-safety.d.ts +7 -0
- package/dist/internal/icon-safety.js +7 -0
- package/dist/internal/locale.d.ts +19 -0
- package/dist/internal/locale.js +21 -0
- package/dist/message.svelte.d.ts +90 -0
- package/dist/message.svelte.js +84 -0
- package/dist/messagebox.svelte.d.ts +61 -13
- package/dist/messagebox.svelte.js +55 -13
- package/dist/messages/en-US.json +6 -1
- package/dist/messages/ja-JP.json +389 -0
- package/dist/messages/zh-CN.json +6 -1
- package/dist/messages.d.ts +24 -3
- package/dist/messages.js +18 -3
- package/dist/styles/design-tokens.css +4 -2
- package/dist/styles/global.css +28 -8
- package/dist/styles/theme.css +2 -0
- package/dist/theme-config.d.ts +173 -0
- package/dist/theme-config.js +143 -0
- package/dist/toast.svelte.d.ts +114 -4
- package/dist/toast.svelte.js +108 -4
- package/dist/types.d.ts +526 -9
- package/dist/utils/platform.svelte.d.ts +28 -15
- package/dist/utils/platform.svelte.js +19 -14
- package/dist/utils.d.ts +102 -0
- package/dist/utils.js +93 -0
- package/package.json +66 -6
package/README.ja.md
CHANGED
|
@@ -4,19 +4,31 @@
|
|
|
4
4
|
|
|
5
5
|
[フレームワークのホーム](../../README.ja.md) · 関連モジュール:[@h-ai/core](../core/README.ja.md)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 概要
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
内蔵メッセージは `zh-CN`、`en-US`、`ja-JP` に対応し、言語セレクターは既定で3言語を表示します。
|
|
10
|
+
|
|
11
|
+
Svelte 5 Runes のクロスプラットフォーム UI ライブラリーです。DaisyUI v5 + Tailwind CSS v4 のスタイル、Bits UI v2 のヘッドレス UI、内蔵 i18n(zh-CN / en-US)、15 種類の厳選テーマを提供します。
|
|
12
|
+
|
|
13
|
+
## 主な機能
|
|
14
|
+
|
|
15
|
+
- フォーム、テーブル、ダイアログ、ナビゲーション、チャートなどの部品。
|
|
16
|
+
- 認証、CRUD、AI コンテンツ、操作ガイド、ヘルプセンター。
|
|
17
|
+
- Svelte 5、テーマ、レスポンシブ表示、中国語・英語・日本語のコンポーネント文言。
|
|
18
|
+
|
|
19
|
+
## 使い始める
|
|
20
|
+
|
|
21
|
+
### インストール
|
|
10
22
|
|
|
11
23
|
```bash
|
|
12
|
-
npm install @h-ai/ui
|
|
24
|
+
npm install @h-ai/ui @h-ai/core
|
|
13
25
|
```
|
|
14
26
|
|
|
15
|
-
|
|
27
|
+
Node サーバーでは UI と core の両方を本番依存に含め、ログなどのネイティブ依存を通常どおり読み込めるようにします。
|
|
16
28
|
|
|
17
|
-
|
|
29
|
+
### クイックスタート
|
|
18
30
|
|
|
19
|
-
|
|
31
|
+
#### 1. svelte.config.js の設定
|
|
20
32
|
|
|
21
33
|
```js
|
|
22
34
|
import { autoImportHaiUi } from '@h-ai/ui/auto-import'
|
|
@@ -33,7 +45,7 @@ const config = {
|
|
|
33
45
|
export default config
|
|
34
46
|
```
|
|
35
47
|
|
|
36
|
-
|
|
48
|
+
#### 2. vite.config.ts の設定
|
|
37
49
|
|
|
38
50
|
```ts
|
|
39
51
|
import { haiOptimizeExclude, haiPrebundledDeps } from '@h-ai/ui/vite'
|
|
@@ -51,11 +63,13 @@ export default defineConfig({
|
|
|
51
63
|
// 避免首次进入业务路由时触发依赖再优化与整页刷新
|
|
52
64
|
include: [...haiPrebundledDeps],
|
|
53
65
|
},
|
|
54
|
-
ssr: { noExternal: [
|
|
66
|
+
ssr: { noExternal: ['@h-ai/ui', '@h-ai/kit'], external: ['@h-ai/core', 'sm-crypto'] },
|
|
55
67
|
})
|
|
56
68
|
```
|
|
57
69
|
|
|
58
|
-
|
|
70
|
+
Crypto または Kit/IAM を使う場合、アプリの本番依存に `sm-crypto@0.5.7` を含めます。CLI 生成済みのプロジェクトでは設定済みです。手動導入は `pnpm add sm-crypto@0.5.7` を実行してください。adapter-node は直接の本番依存も参照するため、external 指定だけでは不十分です。
|
|
71
|
+
|
|
72
|
+
#### 3. src/app.css の設定
|
|
59
73
|
|
|
60
74
|
```css
|
|
61
75
|
@import 'tailwindcss';
|
|
@@ -76,7 +90,7 @@ export default defineConfig({
|
|
|
76
90
|
|
|
77
91
|
> `@source` で TailwindCSS に `@h-ai/ui` の class を走査させます。ない場合はスタイルが欠落します。monorepo 内のアプリでは依存がルート `node_modules` に置かれる場合があるため、両方のパスを残すことを推奨します。
|
|
78
92
|
|
|
79
|
-
|
|
93
|
+
#### 4. コンポーネントの使用
|
|
80
94
|
|
|
81
95
|
```svelte
|
|
82
96
|
<script>
|
|
@@ -108,7 +122,7 @@ import { Button } from '@h-ai/ui/components/primitives/index'
|
|
|
108
122
|
import { getThemeInfo, THEMES } from '@h-ai/ui/theme'
|
|
109
123
|
```
|
|
110
124
|
|
|
111
|
-
|
|
125
|
+
#### data-\* 属性の転送
|
|
112
126
|
|
|
113
127
|
公開 Svelte コンポーネントは `data-*` をルート・主操作要素へ転送し、テスト・計測・自動化に使えます。通常の未知属性は転送しません。
|
|
114
128
|
|
|
@@ -120,7 +134,7 @@ import { getThemeInfo, THEMES } from '@h-ai/ui/theme'
|
|
|
120
134
|
|
|
121
135
|
`data-testid` のためだけにボタン・入力・ポップアップをラップする必要はありません。
|
|
122
136
|
|
|
123
|
-
|
|
137
|
+
### コンポーネント構成
|
|
124
138
|
|
|
125
139
|
3 層で構成します(primitives → compounds → scenes):
|
|
126
140
|
|
|
@@ -137,9 +151,9 @@ components/
|
|
|
137
151
|
└── crypto/ # 暗号表示
|
|
138
152
|
```
|
|
139
153
|
|
|
140
|
-
|
|
154
|
+
### コンポーネント一覧
|
|
141
155
|
|
|
142
|
-
|
|
156
|
+
#### Primitives:基本コンポーネント(20)
|
|
143
157
|
|
|
144
158
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
145
159
|
| ---------------- | ---------------------- | ------------------------------------------------------------------------------ |
|
|
@@ -166,9 +180,9 @@ components/
|
|
|
166
180
|
|
|
167
181
|
`BareInput` の `type="file"` では `onchange` の `event.currentTarget.files` を読み取り、ファイルパスの `value` はバインドしません。他の入力型では `bind:value` を使用できます。
|
|
168
182
|
|
|
169
|
-
|
|
183
|
+
#### Compounds:複合コンポーネント(37)
|
|
170
184
|
|
|
171
|
-
|
|
185
|
+
##### フォーム
|
|
172
186
|
|
|
173
187
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
174
188
|
| -------------- | ------------------ | -------------------------------------------- |
|
|
@@ -177,7 +191,7 @@ components/
|
|
|
177
191
|
| `FormLayout` | フォーム配置 | `columns`, `labelPosition`, `labelWidth` |
|
|
178
192
|
| `TagInput` | タグ入力 | `tags`, `maxTags`, `allowDuplicates`, `size` |
|
|
179
193
|
|
|
180
|
-
|
|
194
|
+
##### フォームのレイアウトと検証
|
|
181
195
|
|
|
182
196
|
`Form` とネイティブ `<form>` 内で使う `FormLayout` は、`columns={1 | 2}`、`labelPosition="top" | "left"`、`labelWidth`(既定 `8rem`)を共有します。既定は1列・ラベルを上に配置します。コンテナー幅が `36rem` 未満では1列、`28rem` 未満では横並びラベルも縦並びになります。
|
|
183
197
|
|
|
@@ -185,7 +199,7 @@ components/
|
|
|
185
199
|
|
|
186
200
|
ラベルは内部 UI コントロールに自動で関連付けられます。明示 ID やネイティブ要素は `<FormField for="control-id">` を使います。エラーとヒントは `aria-describedby`、無効な要素は `aria-invalid` で通知し、エラーは重複表示しません。`label` / `error` / `hint` は文字列または翻訳関数を受け取ります。
|
|
187
201
|
|
|
188
|
-
`Input`、`Textarea`、`Select`、`PasswordInput`
|
|
202
|
+
`Input`、`Textarea`、`Select`、`PasswordInput` のネイティブ検証は中国語・英語・日本語に対応します。`validationMessage` は失敗時だけ適用され、有効な入力を無効にし続けません。UI の `setGlobalLocale` / `createLocaleStore` で言語を同期すると表示中のエラーも更新されます。`Textarea` は `minlength` / `maxlength`、`Select` は `name`・必須検証・FormData に対応します。
|
|
189
203
|
|
|
190
204
|
初回のフォーカス離脱時にエラーを表示し、修正中も更新します。未操作の項目は送信時に検証します。CRUD の新規作成・編集も同じ動作とカスタムメッセージに対応し、再表示時に検証状態をリセットします。`Select` はトリガーと選択肢の両方からフォーカスが離れた時に検証します。`PasswordInput.minLength` は長さ制約と強度計算に使い、省略時はログイン用の長さ制限を設けず、強度のみ8文字を基準にします。
|
|
191
205
|
|
|
@@ -206,14 +220,14 @@ components/
|
|
|
206
220
|
</Form>
|
|
207
221
|
```
|
|
208
222
|
|
|
209
|
-
|
|
223
|
+
##### フィードバック
|
|
210
224
|
|
|
211
225
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
212
226
|
| ---------------- | -------------- | ---------------------------------------- |
|
|
213
227
|
| `Alert` | アラート | `variant`, `title`, `dismissible` |
|
|
214
228
|
| `ToastContainer` | 通知コンテナー | 全体に配置し、`toast` シングルトンと併用 |
|
|
215
229
|
|
|
216
|
-
|
|
230
|
+
##### オーバーレイ
|
|
217
231
|
|
|
218
232
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
219
233
|
| -------------- | -------------- | ---------------------------------------------------------------------------- |
|
|
@@ -222,7 +236,7 @@ components/
|
|
|
222
236
|
| `Confirm` | 確認ダイアログ | `open`, `title`, `message`, `variant`, `onconfirm` |
|
|
223
237
|
| `Popover` | ポップオーバー | `open`, `position`, `trigger`, `offset`, `portal` |
|
|
224
238
|
|
|
225
|
-
|
|
239
|
+
##### データ表示
|
|
226
240
|
|
|
227
241
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
228
242
|
| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -231,7 +245,7 @@ components/
|
|
|
231
245
|
| `Accordion` | アコーディオン | `items: AccordionItem[]` |
|
|
232
246
|
| `Timeline` | タイムライン | `items: TimelineItem[]` |
|
|
233
247
|
|
|
234
|
-
|
|
248
|
+
##### Bits UI によるヘッドレス UI
|
|
235
249
|
|
|
236
250
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
237
251
|
| -------------- | -------------------------- | ----------------------------------------------------------- |
|
|
@@ -241,7 +255,7 @@ components/
|
|
|
241
255
|
|
|
242
256
|
> 日付値には `@internationalized/date` の `DateValue` / `CalendarDate` を使います。
|
|
243
257
|
|
|
244
|
-
|
|
258
|
+
##### モバイル・拡張操作
|
|
245
259
|
|
|
246
260
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
247
261
|
| ---------------- | ---------------------- | ------------------------------------------------------ |
|
|
@@ -253,7 +267,7 @@ components/
|
|
|
253
267
|
| `SafeArea` | セーフエリアコンテナー | `top`, `bottom`, `left`, `right` |
|
|
254
268
|
| `SwipeCell` | スワイプ操作 | `leftActions`, `rightActions`, `threshold`, `onaction` |
|
|
255
269
|
|
|
256
|
-
|
|
270
|
+
##### ナビゲーション
|
|
257
271
|
|
|
258
272
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
259
273
|
| -------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
@@ -264,7 +278,7 @@ components/
|
|
|
264
278
|
| `Dropdown` | ドロップダウンメニュー | `items`, `trigger`, `triggerClass`, `position` |
|
|
265
279
|
| `Tooltip` | ツールチップ | `content`, `position`, `delay` |
|
|
266
280
|
|
|
267
|
-
|
|
281
|
+
##### 状態表示
|
|
268
282
|
|
|
269
283
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
270
284
|
| -------------- | ---------- | ------------------------------------- |
|
|
@@ -272,22 +286,22 @@ components/
|
|
|
272
286
|
| `Empty` | 空状態 | `title`, `description`, `icon` |
|
|
273
287
|
| `Result` | 結果ページ | `status`, `title`, `description` |
|
|
274
288
|
|
|
275
|
-
|
|
289
|
+
##### ページ単位
|
|
276
290
|
|
|
277
291
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
278
292
|
| -------------- | -------------- | ---------------------------------------------- |
|
|
279
293
|
| `PageHeader` | ページヘッダー | `title`, `description`、`actions` スロット対応 |
|
|
280
294
|
|
|
281
|
-
|
|
295
|
+
#### Scenes:用途別コンポーネント(36)
|
|
282
296
|
|
|
283
|
-
|
|
297
|
+
##### Guide:案内・ヘルプ(2)
|
|
284
298
|
|
|
285
299
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
286
300
|
| --- | --- | --- |
|
|
287
301
|
| `GuideHost` | 初回案内・ガイド・ヘルプダイアログ | `guide`, `locale`, `scope`, `autoStart` |
|
|
288
302
|
| `HelpCenter` | 独立して使える検索付きヘルプ | `articles`, `tours`, `locale`, `selectedId`, `onstart` |
|
|
289
303
|
|
|
290
|
-
|
|
304
|
+
##### App:アプリ全体(7)
|
|
291
305
|
|
|
292
306
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
293
307
|
| ------------------ | ------------------------------------------- | -------------------------------------------------------- |
|
|
@@ -299,13 +313,13 @@ components/
|
|
|
299
313
|
| `ThemeSelector` | テーマ選択パネル | プロパティ不要 |
|
|
300
314
|
| `ThemeToggle` | ライト・ダーク切り替え | プロパティ不要 |
|
|
301
315
|
|
|
302
|
-
|
|
316
|
+
##### IAM:認証(10)
|
|
303
317
|
|
|
304
318
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
305
319
|
| -------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
306
320
|
| `AuthPanel` | 設定による認証画面 | `config`, `actions`, `loginHeader/loginFields/loginFooter`, `registerHeader/registerFields/registerFooter` |
|
|
307
321
|
| `AuthShell` | 認証ページ配置(中央カード / 左右分割) | `variant`, `title`, `subtitle`, `brandTitle`, `brandText`, `illustration`, `description`, `highlights` |
|
|
308
|
-
| `LoginForm` | ログインフォーム | `loading`, `errors`, `
|
|
322
|
+
| `LoginForm` | ログインフォーム | `loading`, `errors`, `showForgotPassword`, `onsubmit` |
|
|
309
323
|
| `RegisterForm` | 登録フォーム | `loading`, `errors`, `fields`, `onsubmit` |
|
|
310
324
|
| `ForgotPasswordForm` | パスワード忘れ | `mode`, `loading`, `errors`, `onsubmit` |
|
|
311
325
|
| `ResetPasswordForm` | パスワードリセット | `loading`, `errors`, `showCode`, `onsubmit` |
|
|
@@ -314,7 +328,7 @@ components/
|
|
|
314
328
|
| `PermGuard` | 権限ガード | `permissions`, `mode`, `fallback` |
|
|
315
329
|
| `UserProfile` | ユーザープロフィール | `user`, `editable`, `fields`, `avatarAccept`, `avatarHint`, `onsubmit` |
|
|
316
330
|
|
|
317
|
-
|
|
331
|
+
##### Storage:ストレージ(4)
|
|
318
332
|
|
|
319
333
|
| コンポーネント | 説明 | 主なプロパティ |
|
|
320
334
|
| -------------- | -------------------- | ------------------------------------------------------------ |
|
|
@@ -325,7 +339,7 @@ components/
|
|
|
325
339
|
|
|
326
340
|
アップロード部品は presign・ヘッダー・PUT/POST を内蔵しません。アプリは `uploadHandler(file, { signal, onProgress })` からサービスを呼び、`{ url?, response? }` を返します。画像・アバターには表示可能な `url` が必要です。handler がなければ `FileUpload` は選択のみ、画像・アバターはローカルのプレビューのみを作成します。
|
|
327
341
|
|
|
328
|
-
|
|
342
|
+
##### Crypto:暗号表示(3)
|
|
329
343
|
|
|
330
344
|
入力変更で `encryptedValue` を即座に消去し、現在の入力の成功結果のみを反映します。消去・コールバック置換・破棄で旧リクエストを無効化します。失敗時は組み込みエラーを表示し暗号文は空です。暗号化対象の送信は現在の暗号文が空でない場合に限ってください。
|
|
331
345
|
|
|
@@ -339,7 +353,7 @@ components/
|
|
|
339
353
|
|
|
340
354
|
既定は `@h-ai/crypto` と共通で、暗号化入力は `SM4`、ハッシュは `SM3`、署名は `SM2` です。
|
|
341
355
|
|
|
342
|
-
|
|
356
|
+
##### AI:文書・表計算(4)
|
|
343
357
|
|
|
344
358
|
| コンポーネント | 説明 | 主なプロパティ・機能 |
|
|
345
359
|
| ------------------------ | ------------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
@@ -370,7 +384,7 @@ components/
|
|
|
370
384
|
/>
|
|
371
385
|
```
|
|
372
386
|
|
|
373
|
-
|
|
387
|
+
##### Charts:グラフ
|
|
374
388
|
|
|
375
389
|
`Chart type='line'` は既定で LayerChart の折れ線を使います。監視画面で分割線・点・最寄りの点への hover・縦基準線が必要な場合は `lineVariant='segmented-point'` を使います:
|
|
376
390
|
|
|
@@ -389,7 +403,7 @@ components/
|
|
|
389
403
|
/>
|
|
390
404
|
```
|
|
391
405
|
|
|
392
|
-
|
|
406
|
+
##### CRUD:一覧操作(5)
|
|
393
407
|
|
|
394
408
|
| コンポーネント | 説明 | 主なプロパティ・機能 |
|
|
395
409
|
| ------------------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -402,10 +416,11 @@ components/
|
|
|
402
416
|
> `CrudPage` は既定で `TableToolbar` のアイコン・ポップアップ形式を使い、`toolbarStyle='filter-bar'` で平置きにできます。`detailColumns={['title']}` は指定列を詳細入口にします。`toolbarLeading` は左のタイトル・説明、`showHeader={false}` はタイトル重複の防止、`toolbarActions` は右の操作に使います。`card` は行をカード化、`tableCell` は行・列 key で Tooltip などの操作要素を描画、`sortableColumns` はサーバーのソート項目を制御します。フィルターは `select`、`boolean`、`number`、`date`、`date-range`、`text` に対応します。
|
|
403
417
|
>
|
|
404
418
|
> ページは親の利用可能な高さを満たします。データの有無にかかわらずテーブルが残りの領域を使い、データ部分のみがスクロールします。見出しはデータ領域の上、ページ分割は一覧カードの下に固定します。
|
|
419
|
+
> ビューポートの外枠からコンテンツまで、各親要素に `flex flex-1 min-h-0 flex-col` などで残りの高さを渡します。中間のラッパーを内容だけの高さにしないでください。空・少数・スクロールする一覧でもページ分割は下部に配置されます。
|
|
405
420
|
>
|
|
406
421
|
> 列は先に 7rem まで縮小し長文を切り詰め、総幅が容器を超える場合のみ横スクロールを出します。操作列は右に固定し、横スクロール中も表示します。
|
|
407
422
|
|
|
408
|
-
|
|
423
|
+
##### エラーページ(1)
|
|
409
424
|
|
|
410
425
|
| コンポーネント | 説明 | 主なプロパティ・機能 |
|
|
411
426
|
| -------------- | -------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
@@ -436,9 +451,9 @@ components/
|
|
|
436
451
|
>
|
|
437
452
|
> `Tabs` は遅延表示に対応し、`lazy` では未使用タブの内容を描画しません(`children` の `isActivated(key)` で判定)。`onactivate(key)` は初回のみ実行し、`createCrudController({ autoLoad: false })` と組み合わせて最初に表示されたときに読み込めます。
|
|
438
453
|
|
|
439
|
-
|
|
454
|
+
### 使用例
|
|
440
455
|
|
|
441
|
-
|
|
456
|
+
#### Toast 通知
|
|
442
457
|
|
|
443
458
|
```svelte
|
|
444
459
|
<script>
|
|
@@ -458,7 +473,7 @@ components/
|
|
|
458
473
|
|
|
459
474
|
> `notifySuccess` / `notifyError` / `notifyInfo` / `notifyWarning` を内蔵し、アプリ独自の toast ツールは不要です。`notifyError(err, fallback?)` は `Error`・文字列と代替文言を受け付け、既定は成功 3 秒・失敗 5 秒です。
|
|
460
475
|
|
|
461
|
-
|
|
476
|
+
#### Message 表示
|
|
462
477
|
|
|
463
478
|
```svelte
|
|
464
479
|
<script>
|
|
@@ -476,7 +491,7 @@ components/
|
|
|
476
491
|
<MessageContainer />
|
|
477
492
|
```
|
|
478
493
|
|
|
479
|
-
|
|
494
|
+
#### 標準的な CRUD ページ
|
|
480
495
|
|
|
481
496
|
```svelte
|
|
482
497
|
<script>
|
|
@@ -546,7 +561,7 @@ components/
|
|
|
546
561
|
|
|
547
562
|
`Modal` は `title` / `header` がなくても右上の閉じるボタンを表示し、ヘッダー全体は追加しません。角丸は `radius="1.4rem"`、内部ドロップダウンなどを外に表示する場合は `bodyOverflow="visible"` を指定できます。
|
|
548
563
|
|
|
549
|
-
|
|
564
|
+
#### 宣言的な CRUD ページ(CrudPage)
|
|
550
565
|
|
|
551
566
|
```svelte
|
|
552
567
|
<script lang='ts'>
|
|
@@ -572,7 +587,7 @@ components/
|
|
|
572
587
|
|
|
573
588
|
> ドロワーは `form={{ variant: 'drawer', drawerWidth: '40rem' }}` に変更できます。ユーザーが変更した幅が初期幅より優先され、リソースごとに記憶されます。
|
|
574
589
|
|
|
575
|
-
|
|
590
|
+
#### ログインページ
|
|
576
591
|
|
|
577
592
|
```svelte
|
|
578
593
|
<script>
|
|
@@ -598,7 +613,7 @@ components/
|
|
|
598
613
|
<LoginForm {loading} {errors} onsubmit={handleLogin} showRegisterLink />
|
|
599
614
|
```
|
|
600
615
|
|
|
601
|
-
|
|
616
|
+
#### PasswordInput の制御モード
|
|
602
617
|
|
|
603
618
|
```svelte
|
|
604
619
|
<script>
|
|
@@ -615,7 +630,7 @@ components/
|
|
|
615
630
|
/>
|
|
616
631
|
```
|
|
617
632
|
|
|
618
|
-
|
|
633
|
+
### スタイルの依存関係
|
|
619
634
|
|
|
620
635
|
コンポーネントは TailwindCSS v4 + DaisyUI を使います。アプリの `app.css` に次を設定します:
|
|
621
636
|
|
|
@@ -654,7 +669,7 @@ components/
|
|
|
654
669
|
</div>
|
|
655
670
|
```
|
|
656
671
|
|
|
657
|
-
|
|
672
|
+
#### アイコン
|
|
658
673
|
|
|
659
674
|
Iconify(Tabler Icons)を使用します:
|
|
660
675
|
|
|
@@ -669,7 +684,7 @@ npm install -D @iconify/tailwind4 @iconify-json/tabler
|
|
|
669
684
|
}
|
|
670
685
|
```
|
|
671
686
|
|
|
672
|
-
|
|
687
|
+
#### テーマ切り替え
|
|
673
688
|
|
|
674
689
|
内蔵ツールで 15 種類の厳選 DaisyUI テーマを管理します:
|
|
675
690
|
|
|
@@ -713,16 +728,16 @@ const themeBootstrapScript = createThemeBootstrapScript({
|
|
|
713
728
|
transformPageChunk: ({ html }) => html.replace('%theme_bootstrap%', themeBootstrapScript)
|
|
714
729
|
```
|
|
715
730
|
|
|
716
|
-
|
|
731
|
+
### 国際化(i18n)
|
|
717
732
|
|
|
718
733
|
@h-ai/ui は**コンポーネント内蔵翻訳**を使います:
|
|
719
734
|
|
|
720
|
-
- 用途別コンポーネント(`scenes
|
|
735
|
+
- 用途別コンポーネント(`scenes/`)は中国語・英語・日本語(zh-CN / en-US / ja-JP)を内蔵し、そのまま使えます。
|
|
721
736
|
- `@h-ai/core` と同期した全体 locale の変更へ自動応答します。
|
|
722
737
|
- アプリは**ページ単位の文言**のみを扱い、内部テキストは @h-ai/ui が管理します。
|
|
723
738
|
- 個別文言の変更は `submitText`・`labels` などの props で指定。
|
|
724
739
|
|
|
725
|
-
|
|
740
|
+
#### createLocaleStore
|
|
726
741
|
|
|
727
742
|
クライアントの locale 状態を管理し、`@h-ai/core` の全体管理器へ自動同期します:
|
|
728
743
|
|
|
@@ -746,7 +761,9 @@ transformPageChunk: ({ html }) => html.replace('%theme_bootstrap%', themeBootstr
|
|
|
746
761
|
</select>
|
|
747
762
|
```
|
|
748
763
|
|
|
749
|
-
|
|
764
|
+
`@h-ai/ui/i18n` の createLocaleStore は、解決できる保存値、navigator.languages 全体(その後 navigator.language)、defaultLocale、対応一覧の先頭の順で選択します。未対応の最初の候補で既定値に戻しません。大小文字、言語略称、地域・スクリプトの段階的フォールバックを照合し、設定済みのコードを返します。同じ言語の複数候補は supportedLocales 順です。実際の一致がなければ detectBrowserLocale は null、空の対応一覧では最終的に呼出側の既定値を返します。SSR はブラウザー候補を読まず全体の言語を変更しません。Paraglide アプリは独自の setLocale 同期が必要で、対応一覧の追加だけでは UI 内蔵辞書は増えません。
|
|
765
|
+
|
|
766
|
+
#### エクスポートされる i18n ツール
|
|
750
767
|
|
|
751
768
|
```ts
|
|
752
769
|
import {
|
|
@@ -762,7 +779,9 @@ import {
|
|
|
762
779
|
} from '@h-ai/ui/i18n'
|
|
763
780
|
```
|
|
764
781
|
|
|
765
|
-
|
|
782
|
+
### 設定による認証画面
|
|
783
|
+
|
|
784
|
+
パスワードログインの送信項目は `identifier` と `password` のみです。`AuthPanel` は `LoginForm` の `username` を `identifier` に変換します。有効期間はサーバーの `session.maxAge` / `session.refreshTokenMaxAge` で設定し、フォームにログインごとの永続セッション選択肢はありません。
|
|
766
785
|
|
|
767
786
|
YAML の `|` で `agreements.userAgreementMarkdown` と `privacyPolicyMarkdown` を設定できます。Modal は本文を安全に描画し、同じ規約の URL より本文を優先します。URL のみの場合は隔離 iframe を使用します。
|
|
768
787
|
|
|
@@ -795,9 +814,9 @@ AuthPanel は SSR 中のフォーム操作を無効にし、クライアント
|
|
|
795
814
|
|
|
796
815
|
[完整 IAM 配置 / IAM configuration](../iam/README.ja.md)
|
|
797
816
|
|
|
798
|
-
|
|
817
|
+
### 初回ガイドとヘルプセンター
|
|
799
818
|
|
|
800
|
-
`@h-ai/ui/guide` から `createGuide`、`GuideHost`、`HelpCenter` をインポートします。init/close
|
|
819
|
+
`@h-ai/ui/guide` から `createGuide`、`GuideHost`、`HelpCenter` をインポートします。init/close は不要です。ガイド開始時にエンジンを読み込み、既存テーマと中国語・英語・日本語の共通文言を使用します。業務内容はアプリの翻訳関数を使います。
|
|
801
820
|
|
|
802
821
|
同じ入口の `resolveGuideText(text?)` は文字列や i18n コールバックを評価します。ホストコンポーネントは文言を自動で解析します。
|
|
803
822
|
|
|
@@ -847,7 +866,7 @@ start(id) は Promise<boolean> を返し、手動で再表示できます。失
|
|
|
847
866
|
|
|
848
867
|
HelpCenter は articles、任意の tours、locale、selectedId、onstart で独立ページにも配置できます。admin-console と CLI fullstack Web/App/Desktop は初回案内、ヘルプ、プロフィールガイドを標準搭載します。[詳細ガイド](../cli/templates/skills/hai-ui/guide.md)を参照してください。
|
|
849
868
|
|
|
850
|
-
|
|
869
|
+
### その他のエクスポート
|
|
851
870
|
|
|
852
871
|
```ts
|
|
853
872
|
// 类型
|
|
@@ -877,3 +896,35 @@ import { toast } from '@h-ai/ui'
|
|
|
877
896
|
{/snippet}
|
|
878
897
|
</AuthPanel>
|
|
879
898
|
```
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
コンポーネントのサブパスは package.exports に明記した barrel(例: `@h-ai/ui/components/primitives/index`)に限定します。内部実装やストレージ補助関数は非公開で、ホストのクリップボード登録は引き続き公開します。
|
|
902
|
+
|
|
903
|
+
### リクエスト言語の分離
|
|
904
|
+
|
|
905
|
+
Node リクエストと SSR は `core.i18n.runWithLocale(locale, () => handleRequest())` で囲みます。SvelteKit は `kit.i18n.runWithLocale(locale, () => resolve(event))` を使えます。serv はリクエストヘッダーから自動設定します。非同期の子処理も言語を継承し、明示的な `MessageOptions.locale`、リクエスト言語、起動時の既定値の順で優先します。コンテキスト内の `setGlobalLocale` はそのリクエストだけを変更します。コンテキスト外の設定は起動時に限定し、リクエスト hook から呼びません。
|
|
906
|
+
|
|
907
|
+
ブラウザーはアプリ全体の `setGlobalLocale` / `createLocaleStore` を使います。SSR の UI store 初期化と setter は自身の状態のみ変更し、メッセージはリクエストコンテキストを参照します。`runWithLocale` は Node 入口専用です。
|
|
908
|
+
|
|
909
|
+
## 入力制約と HTTP 機能
|
|
910
|
+
|
|
911
|
+
キーは UTF-8 で最大 1024 バイトで、絶対パス、バックスラッシュ、制御文字、ドットセグメントを拒否します。公開 HTTP 一括削除は一度に 1–1000 件です。共通規則はブラウザー対応の `@h-ai/storage/schemas` から参照できます。署名有効期限は整数 1–604800 秒(Node 既定 3600、HTTP 既定 900)。アップロード署名の入力は key/contentType/expiresIn のみで、contentLength/maxSize/metadata/checksum は未対応です。不正入力は HTTP 400、typed client では VALIDATION_FAILED です。FileUpload の制限は選択時の補助であり、実際のオブジェクトはサーバーで検証してください。Node のストリーム/checksum/条件付き書き込みには既定の HTTP エンドポイントがありません。[機能と認可の対応表(中国語)](../storage/README.md#存储输入约束与跨端能力)を参照してください。
|
|
912
|
+
|
|
913
|
+
## 開発とテスト
|
|
914
|
+
|
|
915
|
+
```sh
|
|
916
|
+
pnpm --filter @h-ai/ui typecheck
|
|
917
|
+
pnpm --filter @h-ai/ui lint
|
|
918
|
+
pnpm --filter @h-ai/ui build
|
|
919
|
+
pnpm --filter @h-ai/ui test
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
## デザインと操作の検証
|
|
923
|
+
|
|
924
|
+
画面設計は [hai-ui-design](../cli/templates/skills/hai-ui-design/SKILL.md)、実装は [hai-ui](../cli/templates/skills/hai-ui/SKILL.md)、実画面の確認は [hai-ui-review](../cli/templates/skills/hai-ui-review/SKILL.md) を参照してください。[共通設計指針](../../.agents/instructions/ui-design.md) も利用できます。
|
|
925
|
+
|
|
926
|
+
Tabs は方向キー・Home/End、無効項目のスキップと単一の Tab 入口に対応します。表は並べ替え・読み込み状態と行のキーボード操作を提供します。ページ切り替えのラベルは言語に従い、外部ページ変更を入力欄に同期します。ツールバーはフォーカスと表示切り替え状態を管理します。Empty/Alert は長文を折り返します。theme.css は共通 tokens を読み込み、global.css は動きを減らす設定に対応します。業務側で検索、並べ替え、ページ切り替えと復旧処理を接続してください。
|
|
927
|
+
|
|
928
|
+
## ライセンス
|
|
929
|
+
|
|
930
|
+
Apache-2.0
|