@ticatec/uniface-element 0.2.4 → 0.3.0

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 (176) hide show
  1. package/dist/accordion/README.md +169 -0
  2. package/dist/accordion/README_CN.md +176 -0
  3. package/dist/action-bar/README.md +275 -0
  4. package/dist/action-bar/README_CN.md +285 -0
  5. package/dist/app-layout/README.md +374 -0
  6. package/dist/app-layout/README_CN.md +381 -0
  7. package/dist/app-top-bar/README.md +357 -0
  8. package/dist/app-top-bar/README_CN.md +365 -0
  9. package/dist/attachment-files/AttachmentFilesField.svelte +67 -1
  10. package/dist/attachment-files/AttachmentFilesField.svelte.d.ts +8 -1
  11. package/dist/base-calendar/CalendarBase.svelte +0 -3
  12. package/dist/box/README.md +385 -0
  13. package/dist/box/README_CN.md +393 -0
  14. package/dist/breadcrumbs/README.md +442 -0
  15. package/dist/breadcrumbs/README_CN.md +442 -0
  16. package/dist/button/Button.svelte +27 -7
  17. package/dist/button/Button.svelte.d.ts +3 -1
  18. package/dist/button/IconButton.svelte +26 -6
  19. package/dist/button/IconButton.svelte.d.ts +3 -1
  20. package/dist/button/IconButton_README.md +513 -0
  21. package/dist/button/IconButton_README_CN.md +513 -0
  22. package/dist/button/README.md +428 -0
  23. package/dist/button/README_CN.md +428 -0
  24. package/dist/button/TextButton.svelte +26 -6
  25. package/dist/button/TextButton.svelte.d.ts +3 -1
  26. package/dist/button/TextButton_README.md +571 -0
  27. package/dist/button/TextButton_README_CN.md +571 -0
  28. package/dist/card/README.md +666 -0
  29. package/dist/card/README_CN.md +666 -0
  30. package/dist/cascade-options-select/CascadeOptionSelect.svelte +43 -7
  31. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +3 -4
  32. package/dist/cascade-options-select/README.md +663 -2
  33. package/dist/cascade-options-select/README_CN.md +664 -0
  34. package/dist/checkbox/CheckBox.svelte +20 -6
  35. package/dist/checkbox/CheckBox.svelte.d.ts +4 -2
  36. package/dist/checkbox/README.md +562 -0
  37. package/dist/checkbox/README_CN.md +727 -0
  38. package/dist/common-editor/NumberInput.svelte +39 -26
  39. package/dist/common-editor/NumberInput.svelte.d.ts +5 -1
  40. package/dist/concise-data-table/ConciseListTable.svelte +133 -36
  41. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +8 -1
  42. package/dist/concise-data-table/DataCell.svelte +5 -6
  43. package/dist/concise-data-table/DataRow.svelte +22 -2
  44. package/dist/concise-data-table/DataRow.svelte.d.ts +1 -0
  45. package/dist/concise-data-table/README.md +606 -0
  46. package/dist/concise-data-table/README_CN.md +611 -0
  47. package/dist/context-menu/ContextMenu.svelte +138 -21
  48. package/dist/context-menu/ContextMenu.svelte.d.ts +5 -0
  49. package/dist/context-menu/ContextMenuItem.d.ts +20 -4
  50. package/dist/context-menu/README.md +551 -0
  51. package/dist/context-menu/README_CN.md +551 -0
  52. package/dist/criteria-field/CriteriaField.svelte +3 -5
  53. package/dist/criteria-field/README.md +532 -0
  54. package/dist/criteria-field/README_CN.md +532 -0
  55. package/dist/data-table/README.md +712 -0
  56. package/dist/data-table/README_CN.md +712 -0
  57. package/dist/date-picker/DatePicker.svelte +44 -7
  58. package/dist/date-picker/DatePicker.svelte.d.ts +3 -4
  59. package/dist/date-picker/DateTimePicker.svelte +32 -8
  60. package/dist/date-picker/DateTimePicker.svelte.d.ts +3 -4
  61. package/dist/date-picker/README.md +326 -0
  62. package/dist/date-picker/README_CN.md +316 -0
  63. package/dist/date-picker/ScrollBar.svelte +18 -8
  64. package/dist/date-picker/ScrollBar.svelte.d.ts +1 -1
  65. package/dist/date-picker/TimePanel.svelte +5 -5
  66. package/dist/date-picker/TimePanel.svelte.d.ts +1 -1
  67. package/dist/date-range/README.md +374 -0
  68. package/dist/date-range/README_CN.md +374 -0
  69. package/dist/dialog/README.md +596 -0
  70. package/dist/dialog/README_CN.md +596 -0
  71. package/dist/drawer/README.md +679 -1
  72. package/dist/drawer/README_CN.md +679 -0
  73. package/dist/group-box/group-check-box/GroupCheckBox.svelte +62 -5
  74. package/dist/group-box/group-check-box/GroupCheckBox.svelte.d.ts +7 -2
  75. package/dist/group-box/group-check-box/README.md +749 -0
  76. package/dist/group-box/group-check-box/README_CN.md +750 -0
  77. package/dist/group-box/group-radio-box/GroupRadioBox.svelte +69 -4
  78. package/dist/group-box/group-radio-box/GroupRadioBox.svelte.d.ts +8 -2
  79. package/dist/group-box/group-radio-box/README.md +920 -0
  80. package/dist/group-box/group-radio-box/README_CN.md +920 -0
  81. package/dist/image-files/README.md +1346 -0
  82. package/dist/image-files/README_CN.md +1346 -0
  83. package/dist/input-options-select/InputOptionsSelect.svelte +161 -65
  84. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +4 -1
  85. package/dist/lib/forwardAllEvents.d.ts +3 -0
  86. package/dist/lib/forwardAllEvents.js +24 -0
  87. package/dist/list-box/README.md +579 -0
  88. package/dist/list-box/README_CN.md +682 -0
  89. package/dist/lookup-editor/LookupEditor.svelte +15 -3
  90. package/dist/lookup-editor/LookupEditor.svelte.d.ts +3 -4
  91. package/dist/lookup-editor/README.md +684 -0
  92. package/dist/lookup-editor/README_CN.md +684 -0
  93. package/dist/memo-editor/MemoEditor.svelte +77 -27
  94. package/dist/memo-editor/MemoEditor.svelte.d.ts +6 -3
  95. package/dist/memo-editor/README.md +819 -0
  96. package/dist/memo-editor/README_CN.md +819 -0
  97. package/dist/message-box/README.md +398 -0
  98. package/dist/message-box/README_CN.md +398 -0
  99. package/dist/number-editor/NumberEditor.svelte +2 -2
  100. package/dist/number-editor/NumberEditor.svelte.d.ts +1 -1
  101. package/dist/number-editor/README.md +353 -22
  102. package/dist/number-editor/README_CN.md +357 -0
  103. package/dist/number-range/README.md +443 -0
  104. package/dist/number-range/README_CN.md +443 -0
  105. package/dist/options-multi-select/OptionsMultiSelect.svelte +87 -12
  106. package/dist/options-multi-select/OptionsMultiSelect.svelte.d.ts +3 -1
  107. package/dist/options-multi-select/README.md +480 -0
  108. package/dist/options-multi-select/README_CN.md +480 -0
  109. package/dist/options-select/OptionsSelect.svelte +36 -5
  110. package/dist/options-select/OptionsSelect.svelte.d.ts +3 -4
  111. package/dist/options-select/README.md +632 -0
  112. package/dist/options-select/README_CN.md +632 -0
  113. package/dist/page/README.md +605 -0
  114. package/dist/page/README_CN.md +605 -0
  115. package/dist/pagination/README.md +946 -0
  116. package/dist/pagination/README_CN.md +946 -0
  117. package/dist/pagination-panel/README.md +1075 -0
  118. package/dist/pagination-panel/README_CN.md +1075 -0
  119. package/dist/popup-hint/README.md +841 -0
  120. package/dist/popup-hint/README_CN.md +840 -0
  121. package/dist/progress-bar/README.md +242 -0
  122. package/dist/progress-bar/README_CN.md +242 -0
  123. package/dist/progress-step-bar/README.md +316 -0
  124. package/dist/progress-step-bar/README_CN.md +316 -0
  125. package/dist/prompts-text-editor/PromptsTextEditor.svelte +6 -3
  126. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +3 -1
  127. package/dist/prompts-text-editor/README.md +329 -0
  128. package/dist/prompts-text-editor/README_CN.md +329 -0
  129. package/dist/property-editor/README.md +969 -0
  130. package/dist/property-editor/README_CN.md +969 -0
  131. package/dist/radio-button/README.md +372 -0
  132. package/dist/radio-button/README_CN.md +372 -0
  133. package/dist/radio-button/RadioButton.svelte +32 -3
  134. package/dist/radio-button/RadioButton.svelte.d.ts +12 -1
  135. package/dist/search-box/README.md +425 -0
  136. package/dist/search-box/README_CN.md +424 -0
  137. package/dist/search-box/SearchBox.svelte +22 -6
  138. package/dist/search-box/SearchBox.svelte.d.ts +4 -1
  139. package/dist/tabs/README.md +919 -0
  140. package/dist/tabs/README_CN.md +920 -0
  141. package/dist/tag/README.md +922 -0
  142. package/dist/tag/README_CN.md +922 -0
  143. package/dist/text-editor/PasswordEditor.svelte +17 -2
  144. package/dist/text-editor/PasswordEditor.svelte.d.ts +3 -3
  145. package/dist/text-editor/PasswordEditor_README.md +551 -0
  146. package/dist/text-editor/PasswordEditor_README_CN.md +551 -0
  147. package/dist/text-editor/README.md +466 -0
  148. package/dist/text-editor/README_CN.md +466 -0
  149. package/dist/text-editor/TextEditor.svelte +51 -19
  150. package/dist/text-editor/TextEditor.svelte.d.ts +0 -1
  151. package/dist/time-editor/README.md +498 -24
  152. package/dist/time-editor/README_CN.md +498 -0
  153. package/dist/time-editor/TimeEditor.svelte +7 -3
  154. package/dist/time-editor/TimeEditor.svelte.d.ts +3 -1
  155. package/dist/toast/README.md +667 -0
  156. package/dist/toast/README_CN.md +667 -0
  157. package/dist/transfer/README.md +795 -0
  158. package/dist/transfer/Transfer.svelte +6 -4
  159. package/dist/transfer/Transfer.svelte.d.ts +3 -1
  160. package/dist/tree-view/README.md +761 -0
  161. package/dist/tree-view/README_CN.md +761 -0
  162. package/dist/tree-view/TreeView.svelte +5 -3
  163. package/dist/tree-view/TreeView.svelte.d.ts +3 -1
  164. package/dist/unit-number-editor/README.md +546 -20
  165. package/dist/unit-number-editor/README_CN.md +525 -0
  166. package/dist/unit-number-editor/UnitNumberEditor.svelte +62 -8
  167. package/dist/unit-number-editor/UnitNumberEditor.svelte.d.ts +5 -1
  168. package/docs/form-field/cn/README_CN.md +364 -0
  169. package/docs/form-field/en/README.md +364 -0
  170. package/docs/form-panel/flex-form/cn/README_CN.md +586 -0
  171. package/docs/form-panel/flex-form/en/README.md +586 -0
  172. package/docs/form-panel/flex-row-form/cn/README_CN.md +787 -0
  173. package/docs/form-panel/flex-row-form/en/README.md +787 -0
  174. package/docs/form-panel/grid-form/en/README.md +744 -0
  175. package/package.json +1 -1
  176. package/dist/drawer/README-CN.md +0 -1
@@ -0,0 +1,357 @@
1
+ # AppTopBar Component
2
+
3
+ A flexible application top bar component for displaying titles, navigation, and action elements.
4
+
5
+ ## Features
6
+
7
+ - **Flexible Layout**: Three distinct areas - home/logo, main content, and right actions
8
+ - **Customizable Content**: Support for both props and slot-based content
9
+ - **Responsive Design**: Adapts to different screen sizes
10
+ - **Simple Integration**: Easy to integrate into any application layout
11
+ - **Custom Styling**: Supports custom CSS styles
12
+
13
+ ## Basic Usage
14
+
15
+ ```svelte
16
+ <script>
17
+ import AppTopBar from '@ticatec/uniface-element/AppTopBar';
18
+ </script>
19
+
20
+ <AppTopBar title="My Application" />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Default | Description |
26
+ |------|------|---------|-------------|
27
+ | `title` | `string` | - | The title text to display in the main content area |
28
+ | `style` | `string` | `''` | Custom CSS styles for the top bar |
29
+
30
+ ## Slots
31
+
32
+ | Slot | Description |
33
+ |------|-------------|
34
+ | `home` | Content for the left side (typically logo or home button) |
35
+ | `default` | Main content area (overrides title prop when used) |
36
+ | `right` | Content for the right side (typically user menu, actions) |
37
+
38
+ ## Examples
39
+
40
+ ### Basic Title Bar
41
+
42
+ ```svelte
43
+ <AppTopBar title="Dashboard" />
44
+ ```
45
+
46
+ ### With Logo and User Menu
47
+
48
+ ```svelte
49
+ <AppTopBar title="My App">
50
+ <div slot="home">
51
+ <img src="/logo.png" alt="Logo" class="logo" />
52
+ </div>
53
+
54
+ <div slot="right">
55
+ <button class="user-menu">
56
+ <i class="icon_google_account_circle"></i>
57
+ John Doe
58
+ </button>
59
+ </div>
60
+ </AppTopBar>
61
+ ```
62
+
63
+ ### Custom Main Content
64
+
65
+ ```svelte
66
+ <AppTopBar>
67
+ <div slot="home">
68
+ <button class="menu-toggle">
69
+ <i class="icon_google_menu"></i>
70
+ </button>
71
+ </div>
72
+
73
+ <!-- Custom main content instead of title -->
74
+ <div class="breadcrumbs">
75
+ <span>Home</span>
76
+ <i class="icon_google_chevron_right"></i>
77
+ <span>Dashboard</span>
78
+ <i class="icon_google_chevron_right"></i>
79
+ <span>Reports</span>
80
+ </div>
81
+
82
+ <div slot="right">
83
+ <button class="notifications">
84
+ <i class="icon_google_notifications"></i>
85
+ <span class="badge">3</span>
86
+ </button>
87
+ <button class="settings">
88
+ <i class="icon_google_settings"></i>
89
+ </button>
90
+ </div>
91
+ </AppTopBar>
92
+ ```
93
+
94
+ ### Search Bar Integration
95
+
96
+ ```svelte
97
+ <AppTopBar>
98
+ <div slot="home">
99
+ <h1 class="app-title">MyApp</h1>
100
+ </div>
101
+
102
+ <div class="search-container">
103
+ <input
104
+ type="search"
105
+ placeholder="Search..."
106
+ class="search-input"
107
+ />
108
+ <i class="icon_google_search search-icon"></i>
109
+ </div>
110
+
111
+ <div slot="right">
112
+ <div class="user-profile">
113
+ <img src="/avatar.jpg" alt="User" class="avatar" />
114
+ <span>Welcome, User</span>
115
+ </div>
116
+ </div>
117
+ </AppTopBar>
118
+ ```
119
+
120
+ ### Navigation Tabs
121
+
122
+ ```svelte
123
+ <AppTopBar>
124
+ <div slot="home">
125
+ <img src="/logo.svg" alt="Company" class="company-logo" />
126
+ </div>
127
+
128
+ <nav class="main-navigation">
129
+ <a href="/dashboard" class="nav-link active">Dashboard</a>
130
+ <a href="/projects" class="nav-link">Projects</a>
131
+ <a href="/team" class="nav-link">Team</a>
132
+ <a href="/reports" class="nav-link">Reports</a>
133
+ </nav>
134
+
135
+ <div slot="right">
136
+ <button class="help-button">
137
+ <i class="icon_google_help"></i>
138
+ </button>
139
+ <div class="user-dropdown">
140
+ <button class="dropdown-trigger">
141
+ <i class="icon_google_account_circle"></i>
142
+ <i class="icon_google_arrow_drop_down"></i>
143
+ </button>
144
+ </div>
145
+ </div>
146
+ </AppTopBar>
147
+ ```
148
+
149
+ ### With Custom Styling
150
+
151
+ ```svelte
152
+ <AppTopBar
153
+ title="Styled App"
154
+ style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; box-shadow: 0 2px 10px rgba(0,0,0,0.1);"
155
+ >
156
+ <div slot="home">
157
+ <i class="icon_google_apps" style="font-size: 24px;"></i>
158
+ </div>
159
+
160
+ <div slot="right">
161
+ <button style="background: rgba(255,255,255,0.2); border: none; color: white; padding: 8px 16px; border-radius: 4px;">
162
+ Sign Out
163
+ </button>
164
+ </div>
165
+ </AppTopBar>
166
+ ```
167
+
168
+ ## Layout Structure
169
+
170
+ The AppTopBar uses a three-column layout:
171
+
172
+ 1. **Home Section** (left): Optional logo, menu button, or home link
173
+ 2. **Main Content** (center): Title or custom content with flex-grow
174
+ 3. **Right Section** (right): Actions, user menu, or other controls
175
+
176
+ ## Styling
177
+
178
+ The component uses the following CSS classes:
179
+
180
+ - `.uniface-top-bar` - Main container
181
+ - `.bar-home` - Home/logo section container
182
+ - `.main-content` - Main content area
183
+
184
+ ### Example CSS
185
+
186
+ ```css
187
+ .uniface-top-bar {
188
+ display: flex;
189
+ align-items: center;
190
+ padding: 0 16px;
191
+ height: 48px;
192
+ background: #ffffff;
193
+ border-bottom: 1px solid #e0e0e0;
194
+ }
195
+
196
+ .bar-home {
197
+ flex: 0 0 auto;
198
+ margin-right: 16px;
199
+ }
200
+
201
+ .main-content {
202
+ flex: 1 1 auto;
203
+ font-weight: 500;
204
+ }
205
+
206
+ /* Custom styles for slots */
207
+ .logo {
208
+ height: 32px;
209
+ width: auto;
210
+ }
211
+
212
+ .user-menu {
213
+ display: flex;
214
+ align-items: center;
215
+ gap: 8px;
216
+ background: none;
217
+ border: none;
218
+ cursor: pointer;
219
+ }
220
+ ```
221
+
222
+ ## Common Patterns
223
+
224
+ ### Application Header
225
+
226
+ ```svelte
227
+ <AppTopBar title="Project Management">
228
+ <div slot="home">
229
+ <button class="sidebar-toggle" on:click={toggleSidebar}>
230
+ <i class="icon_google_menu"></i>
231
+ </button>
232
+ </div>
233
+
234
+ <div slot="right">
235
+ <button class="new-project">
236
+ <i class="icon_google_add"></i>
237
+ New Project
238
+ </button>
239
+ <div class="user-profile">
240
+ <img src={user.avatar} alt={user.name} />
241
+ {user.name}
242
+ </div>
243
+ </div>
244
+ </AppTopBar>
245
+ ```
246
+
247
+ ### E-commerce Header
248
+
249
+ ```svelte
250
+ <AppTopBar>
251
+ <div slot="home">
252
+ <img src="/store-logo.png" alt="Store" class="store-logo" />
253
+ </div>
254
+
255
+ <div class="search-bar">
256
+ <input type="search" placeholder="Search products..." />
257
+ <button type="submit">
258
+ <i class="icon_google_search"></i>
259
+ </button>
260
+ </div>
261
+
262
+ <div slot="right">
263
+ <button class="cart">
264
+ <i class="icon_google_shopping_cart"></i>
265
+ <span class="cart-count">{cartItems}</span>
266
+ </button>
267
+ <button class="account">
268
+ <i class="icon_google_person"></i>
269
+ Account
270
+ </button>
271
+ </div>
272
+ </AppTopBar>
273
+ ```
274
+
275
+ ### Admin Dashboard
276
+
277
+ ```svelte
278
+ <AppTopBar>
279
+ <div slot="home">
280
+ <h1>Admin Panel</h1>
281
+ </div>
282
+
283
+ <div class="admin-nav">
284
+ <a href="/admin/users">Users</a>
285
+ <a href="/admin/settings">Settings</a>
286
+ <a href="/admin/reports">Reports</a>
287
+ </div>
288
+
289
+ <div slot="right">
290
+ <div class="admin-actions">
291
+ <button class="system-status">
292
+ <i class="icon_google_check_circle" style="color: green;"></i>
293
+ System OK
294
+ </button>
295
+ <button class="admin-logout">
296
+ <i class="icon_google_exit_to_app"></i>
297
+ Logout
298
+ </button>
299
+ </div>
300
+ </div>
301
+ </AppTopBar>
302
+ ```
303
+
304
+ ## Responsive Considerations
305
+
306
+ For mobile responsiveness, consider:
307
+
308
+ ```css
309
+ @media (max-width: 768px) {
310
+ .uniface-top-bar {
311
+ padding: 0 8px;
312
+ }
313
+
314
+ .main-content {
315
+ font-size: 14px;
316
+ }
317
+
318
+ /* Hide less important items on mobile */
319
+ .hide-mobile {
320
+ display: none;
321
+ }
322
+ }
323
+ ```
324
+
325
+ ## Accessibility
326
+
327
+ - Use semantic HTML elements within slots
328
+ - Ensure buttons have proper labels or aria-labels
329
+ - Maintain adequate color contrast
330
+ - Support keyboard navigation for interactive elements
331
+
332
+ ## Best Practices
333
+
334
+ 1. **Keep It Simple**: Don't overcrowd the top bar with too many elements
335
+ 2. **Consistent Branding**: Use consistent logo placement and styling
336
+ 3. **User Actions**: Place the most important user actions on the right side
337
+ 4. **Mobile First**: Design with mobile devices in mind
338
+ 5. **Visual Hierarchy**: Use appropriate font weights and sizes to establish hierarchy
339
+ 6. **Icon Usage**: Use consistent icon styles and sizes throughout
340
+
341
+ ## Integration with Layouts
342
+
343
+ The AppTopBar works well with layout components:
344
+
345
+ ```svelte
346
+ <SidebarLayout headerHeight="56px">
347
+ <AppTopBar slot="header" title="My Application">
348
+ <!-- topbar content -->
349
+ </AppTopBar>
350
+
351
+ <div slot="sidebar">
352
+ <!-- sidebar content -->
353
+ </div>
354
+
355
+ <!-- main content -->
356
+ </SidebarLayout>
357
+ ```
@@ -0,0 +1,365 @@
1
+ # AppTopBar 组件
2
+
3
+ 一个灵活的应用程序顶部栏组件,用于显示标题、导航和操作元素。
4
+
5
+ ## 功能特性
6
+
7
+ - **灵活布局**: 三个不同区域 - 主页/标志、主内容和右侧操作
8
+ - **可定制内容**: 支持属性和基于插槽的内容
9
+ - **响应式设计**: 适应不同屏幕尺寸
10
+ - **简单集成**: 易于集成到任何应用程序布局中
11
+ - **自定义样式**: 支持自定义CSS样式
12
+
13
+ ## 基本用法
14
+
15
+ ```svelte
16
+ <script>
17
+ import AppTopBar from '@ticatec/uniface-element/AppTopBar';
18
+ </script>
19
+
20
+ <AppTopBar title="我的应用程序" />
21
+ ```
22
+
23
+ ## 属性参数
24
+
25
+ | 属性 | 类型 | 默认值 | 描述 |
26
+ |------|------|---------|-------------|
27
+ | `title` | `string` | - | 在主内容区域显示的标题文本 |
28
+ | `style` | `string` | `''` | 顶部栏的自定义CSS样式 |
29
+
30
+ ## 插槽
31
+
32
+ | 插槽 | 描述 |
33
+ |------|-------------|
34
+ | `home` | 左侧内容(通常是标志或主页按钮) |
35
+ | `default` | 主内容区域(使用时覆盖title属性) |
36
+ | `right` | 右侧内容(通常是用户菜单、操作) |
37
+
38
+ ## 使用示例
39
+
40
+ ### 基础标题栏
41
+
42
+ ```svelte
43
+ <AppTopBar title="仪表板" />
44
+ ```
45
+
46
+ ### 带标志和用户菜单
47
+
48
+ ```svelte
49
+ <AppTopBar title="我的应用">
50
+ <div slot="home">
51
+ <img src="/logo.png" alt="标志" class="logo" />
52
+ </div>
53
+
54
+ <div slot="right">
55
+ <button class="user-menu">
56
+ <i class="icon_google_account_circle"></i>
57
+ 张三
58
+ </button>
59
+ </div>
60
+ </AppTopBar>
61
+ ```
62
+
63
+ ### 自定义主内容
64
+
65
+ ```svelte
66
+ <AppTopBar>
67
+ <div slot="home">
68
+ <button class="menu-toggle">
69
+ <i class="icon_google_menu"></i>
70
+ </button>
71
+ </div>
72
+
73
+ <!-- 自定义主内容而不是标题 -->
74
+ <div class="breadcrumbs">
75
+ <span>首页</span>
76
+ <i class="icon_google_chevron_right"></i>
77
+ <span>仪表板</span>
78
+ <i class="icon_google_chevron_right"></i>
79
+ <span>报告</span>
80
+ </div>
81
+
82
+ <div slot="right">
83
+ <button class="notifications">
84
+ <i class="icon_google_notifications"></i>
85
+ <span class="badge">3</span>
86
+ </button>
87
+ <button class="settings">
88
+ <i class="icon_google_settings"></i>
89
+ </button>
90
+ </div>
91
+ </AppTopBar>
92
+ ```
93
+
94
+ ### 搜索栏集成
95
+
96
+ ```svelte
97
+ <AppTopBar>
98
+ <div slot="home">
99
+ <h1 class="app-title">我的应用</h1>
100
+ </div>
101
+
102
+ <div class="search-container">
103
+ <input
104
+ type="search"
105
+ placeholder="搜索..."
106
+ class="search-input"
107
+ />
108
+ <i class="icon_google_search search-icon"></i>
109
+ </div>
110
+
111
+ <div slot="right">
112
+ <div class="user-profile">
113
+ <img src="/avatar.jpg" alt="用户" class="avatar" />
114
+ <span>欢迎,用户</span>
115
+ </div>
116
+ </div>
117
+ </AppTopBar>
118
+ ```
119
+
120
+ ### 导航标签
121
+
122
+ ```svelte
123
+ <AppTopBar>
124
+ <div slot="home">
125
+ <img src="/logo.svg" alt="公司" class="company-logo" />
126
+ </div>
127
+
128
+ <nav class="main-navigation">
129
+ <a href="/dashboard" class="nav-link active">仪表板</a>
130
+ <a href="/projects" class="nav-link">项目</a>
131
+ <a href="/team" class="nav-link">团队</a>
132
+ <a href="/reports" class="nav-link">报告</a>
133
+ </nav>
134
+
135
+ <div slot="right">
136
+ <button class="help-button">
137
+ <i class="icon_google_help"></i>
138
+ </button>
139
+ <div class="user-dropdown">
140
+ <button class="dropdown-trigger">
141
+ <i class="icon_google_account_circle"></i>
142
+ <i class="icon_google_arrow_drop_down"></i>
143
+ </button>
144
+ </div>
145
+ </div>
146
+ </AppTopBar>
147
+ ```
148
+
149
+ ### 自定义样式
150
+
151
+ ```svelte
152
+ <AppTopBar
153
+ title="样式化应用"
154
+ style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; box-shadow: 0 2px 10px rgba(0,0,0,0.1);"
155
+ >
156
+ <div slot="home">
157
+ <i class="icon_google_apps" style="font-size: 24px;"></i>
158
+ </div>
159
+
160
+ <div slot="right">
161
+ <button style="background: rgba(255,255,255,0.2); border: none; color: white; padding: 8px 16px; border-radius: 4px;">
162
+ 退出登录
163
+ </button>
164
+ </div>
165
+ </AppTopBar>
166
+ ```
167
+
168
+ ## 布局结构
169
+
170
+ AppTopBar使用三列布局:
171
+
172
+ 1. **主页区域**(左): 可选的标志、菜单按钮或主页链接
173
+ 2. **主内容**(中): 标题或自定义内容,具有flex-grow
174
+ 3. **右侧区域**(右): 操作、用户菜单或其他控件
175
+
176
+ ## 样式定制
177
+
178
+ 组件使用以下CSS类:
179
+
180
+ - `.uniface-top-bar` - 主容器
181
+ - `.bar-home` - 主页/标志区域容器
182
+ - `.main-content` - 主内容区域
183
+
184
+ ### CSS示例
185
+
186
+ ```css
187
+ .uniface-top-bar {
188
+ display: flex;
189
+ align-items: center;
190
+ padding: 0 16px;
191
+ height: 48px;
192
+ background: #ffffff;
193
+ border-bottom: 1px solid #e0e0e0;
194
+ }
195
+
196
+ .bar-home {
197
+ flex: 0 0 auto;
198
+ margin-right: 16px;
199
+ }
200
+
201
+ .main-content {
202
+ flex: 1 1 auto;
203
+ font-weight: 500;
204
+ }
205
+
206
+ /* 插槽的自定义样式 */
207
+ .logo {
208
+ height: 32px;
209
+ width: auto;
210
+ }
211
+
212
+ .user-menu {
213
+ display: flex;
214
+ align-items: center;
215
+ gap: 8px;
216
+ background: none;
217
+ border: none;
218
+ cursor: pointer;
219
+ }
220
+ ```
221
+
222
+ ## 常见模式
223
+
224
+ ### 应用程序标题栏
225
+
226
+ ```svelte
227
+ <AppTopBar title="项目管理">
228
+ <div slot="home">
229
+ <button class="sidebar-toggle" on:click={toggleSidebar}>
230
+ <i class="icon_google_menu"></i>
231
+ </button>
232
+ </div>
233
+
234
+ <div slot="right">
235
+ <button class="new-project">
236
+ <i class="icon_google_add"></i>
237
+ 新建项目
238
+ </button>
239
+ <div class="user-profile">
240
+ <img src={user.avatar} alt={user.name} />
241
+ {user.name}
242
+ </div>
243
+ </div>
244
+ </AppTopBar>
245
+ ```
246
+
247
+ ### 电商标题栏
248
+
249
+ ```svelte
250
+ <AppTopBar>
251
+ <div slot="home">
252
+ <img src="/store-logo.png" alt="商店" class="store-logo" />
253
+ </div>
254
+
255
+ <div class="search-bar">
256
+ <input type="search" placeholder="搜索商品..." />
257
+ <button type="submit">
258
+ <i class="icon_google_search"></i>
259
+ </button>
260
+ </div>
261
+
262
+ <div slot="right">
263
+ <button class="cart">
264
+ <i class="icon_google_shopping_cart"></i>
265
+ <span class="cart-count">{cartItems}</span>
266
+ </button>
267
+ <button class="account">
268
+ <i class="icon_google_person"></i>
269
+ 账户
270
+ </button>
271
+ </div>
272
+ </AppTopBar>
273
+ ```
274
+
275
+ ### 管理后台
276
+
277
+ ```svelte
278
+ <AppTopBar>
279
+ <div slot="home">
280
+ <h1>管理面板</h1>
281
+ </div>
282
+
283
+ <div class="admin-nav">
284
+ <a href="/admin/users">用户</a>
285
+ <a href="/admin/settings">设置</a>
286
+ <a href="/admin/reports">报告</a>
287
+ </div>
288
+
289
+ <div slot="right">
290
+ <div class="admin-actions">
291
+ <button class="system-status">
292
+ <i class="icon_google_check_circle" style="color: green;"></i>
293
+ 系统正常
294
+ </button>
295
+ <button class="admin-logout">
296
+ <i class="icon_google_exit_to_app"></i>
297
+ 退出登录
298
+ </button>
299
+ </div>
300
+ </div>
301
+ </AppTopBar>
302
+ ```
303
+
304
+ ## 响应式考虑
305
+
306
+ 对于移动端响应式,考虑:
307
+
308
+ ```css
309
+ @media (max-width: 768px) {
310
+ .uniface-top-bar {
311
+ padding: 0 8px;
312
+ }
313
+
314
+ .main-content {
315
+ font-size: 14px;
316
+ }
317
+
318
+ /* 在移动设备上隐藏不重要的项目 */
319
+ .hide-mobile {
320
+ display: none;
321
+ }
322
+ }
323
+ ```
324
+
325
+ ## 无障碍访问
326
+
327
+ - 在插槽中使用语义化HTML元素
328
+ - 确保按钮有适当的标签或aria-labels
329
+ - 保持足够的颜色对比度
330
+ - 支持交互元素的键盘导航
331
+
332
+ ## 最佳实践
333
+
334
+ 1. **保持简洁**: 不要在顶部栏中放置过多元素
335
+ 2. **一致的品牌**: 使用一致的标志放置和样式
336
+ 3. **用户操作**: 将最重要的用户操作放在右侧
337
+ 4. **移动优先**: 以移动设备为设计出发点
338
+ 5. **视觉层次**: 使用适当的字体粗细和大小建立层次
339
+ 6. **图标使用**: 在整个界面中使用一致的图标样式和大小
340
+
341
+ ## 与布局组件集成
342
+
343
+ AppTopBar与布局组件配合良好:
344
+
345
+ ```svelte
346
+ <SidebarLayout headerHeight="56px">
347
+ <AppTopBar slot="header" title="我的应用程序">
348
+ <!-- 顶部栏内容 -->
349
+ </AppTopBar>
350
+
351
+ <div slot="sidebar">
352
+ <!-- 侧边栏内容 -->
353
+ </div>
354
+
355
+ <!-- 主内容 -->
356
+ </SidebarLayout>
357
+ ```
358
+
359
+ ## 注意事项
360
+
361
+ - 确保在不同屏幕尺寸下测试布局
362
+ - 考虑长标题的文本截断处理
363
+ - 在设计时考虑不同语言的文本长度变化
364
+ - 为移动设备优化触摸交互区域
365
+ - 保持与整体应用程序设计风格的一致性