@ticatec/uniface-element 0.2.0 → 0.2.2

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 (209) hide show
  1. package/README.md +320 -1
  2. package/README_CN.md +392 -0
  3. package/dist/accordion/Accordion.svelte +1 -1
  4. package/dist/action-bar/ActionBar.svelte +7 -1
  5. package/dist/attachment-files/FileRender.svelte +1 -1
  6. package/dist/attachment-files/FileUploadBar.svelte +7 -6
  7. package/dist/attachment-files/FileUploadPanel.svelte +2 -2
  8. package/dist/base-calendar/DateContext.js +5 -4
  9. package/dist/base-calendar/YearPickupPanel.svelte +4 -4
  10. package/dist/card/Card.svelte +1 -1
  11. package/dist/card/Card.svelte.d.ts +1 -1
  12. package/dist/cascade-options-select/CascadeOptionSelect.svelte +2 -3
  13. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +46 -1
  14. package/dist/cascade-options-select/CascadePanel.svelte +1 -1
  15. package/dist/checkbox/CheckBox.svelte +1 -1
  16. package/dist/color-picker/ColorPicker.svelte +9 -9
  17. package/dist/color-picker/ColorPicker.svelte.d.ts +0 -2
  18. package/dist/color-picker/ColorPickerPanel.svelte +11 -15
  19. package/dist/color-picker/ColorPickerPanel.svelte.d.ts +1 -1
  20. package/dist/common/CommonPicker.svelte +2 -2
  21. package/dist/common/CommonPicker.svelte.d.ts +1 -1
  22. package/dist/common/MouseClickHandler.d.ts +1 -1
  23. package/dist/common/Popover.svelte +28 -6
  24. package/dist/common/Popover.svelte.d.ts +9 -3
  25. package/dist/common/uniface-utils.js +6 -4
  26. package/dist/common-editor/CommonEditor.svelte +1 -1
  27. package/dist/common-editor/CommonEditor.svelte.d.ts +1 -1
  28. package/dist/common-editor/NumberInput.svelte +1 -1
  29. package/dist/common-editor/NumberInput.svelte.d.ts +1 -1
  30. package/dist/concise-data-table/ConciseListTable.svelte +7 -2
  31. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +1 -0
  32. package/dist/concise-data-table/DataRow.svelte +1 -1
  33. package/dist/concise-data-table/TableOptions.d.ts +1 -1
  34. package/dist/data-table/DataTable.svelte +1 -1
  35. package/dist/data-table/parts/ActionsPanel.svelte +4 -3
  36. package/dist/data-table/parts/ActionsRow.svelte +3 -3
  37. package/dist/data-table/parts/ContentPanel.svelte +3 -2
  38. package/dist/data-table/parts/FixedColumnsPanel.svelte +0 -1
  39. package/dist/data-table/parts/FixedColumnsPanel.svelte.d.ts +1 -2
  40. package/dist/data-table/parts/FixedHeaderPanel.svelte +2 -2
  41. package/dist/data-table/parts/FixedRow.svelte +2 -1
  42. package/dist/data-table/parts/FixedRow.svelte.d.ts +1 -1
  43. package/dist/data-table/parts/HrefCell.svelte +23 -2
  44. package/dist/data-table/parts/PopupMenu.svelte +25 -2
  45. package/dist/data-table/parts/PopupMenu.svelte.d.ts +8 -1
  46. package/dist/date-picker/DatePicker.svelte +0 -1
  47. package/dist/date-picker/DateTimePicker.svelte +3 -3
  48. package/dist/date-picker/ScrollBar.svelte +4 -7
  49. package/dist/date-range/DateRangeEditor.svelte +1 -1
  50. package/dist/dialog/CommonDialog.svelte +8 -5
  51. package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
  52. package/dist/dialog/Dialog.svelte +37 -12
  53. package/dist/dialog/Dialog.svelte.d.ts +4 -3
  54. package/dist/dialog/DialogBoard.svelte +11 -8
  55. package/dist/dialog/DialogWrapper.svelte +10 -0
  56. package/dist/{common-editor/DateInput.svelte.d.ts → dialog/DialogWrapper.svelte.d.ts} +6 -13
  57. package/dist/dialog/Dialogs.js +1 -1
  58. package/dist/dialog/ModalResult.d.ts +5 -0
  59. package/dist/dialog/ModalResult.js +5 -0
  60. package/dist/drawer/Drawer.svelte +1 -1
  61. package/dist/form-field/FormField.svelte +2 -1
  62. package/dist/form-field/FormField.svelte.d.ts +1 -0
  63. package/dist/form-panel/flex-row-form/FormContainer.svelte +1 -1
  64. package/dist/form-panel/grid-form/EmptyCell.svelte +8 -7
  65. package/dist/form-panel/grid-form/EmptyCell.svelte.d.ts +2 -2
  66. package/dist/form-panel/grid-form/GridField.svelte +1 -1
  67. package/dist/i18nRes/i18nRes.d.ts +2 -0
  68. package/dist/i18nRes/i18nRes.js +44 -0
  69. package/dist/i18nRes/index.d.ts +2 -0
  70. package/dist/i18nRes/index.js +2 -0
  71. package/dist/image-files/ImageFilesField.svelte +1 -1
  72. package/dist/indicator/IndicatorBoard.svelte +1 -1
  73. package/dist/inline-cell-editor/InvalidEditor.svelte +1 -0
  74. package/dist/input-options-select/InputOptionsSelect.svelte +6 -6
  75. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +1 -1
  76. package/dist/layout/flex/FlexBlock.svelte +1 -1
  77. package/dist/lookup-editor/LookupEditor.svelte +1 -1
  78. package/dist/memo-editor/MemoEditor.svelte +2 -2
  79. package/dist/message-box/IMessageBox.d.ts +2 -4
  80. package/dist/message-box/IMessageBox.js +4 -6
  81. package/dist/message-box/MessageBoxBoard.svelte +1 -3
  82. package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
  83. package/dist/prompts-text-editor/PromptsTextEditor.svelte +2 -2
  84. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +1 -1
  85. package/dist/property-editor/PropertyEditor.svelte +3 -3
  86. package/dist/text-editor/PasswordEditor.svelte +1 -1
  87. package/dist/transfer/Transfer.svelte +17 -12
  88. package/dist/transfer/Transfer.svelte.d.ts +0 -1
  89. package/dist/unit-number-editor/UnitNumberEditor.svelte +2 -2
  90. package/docs/buttons/cn/ActionBar.md +459 -0
  91. package/docs/buttons/cn/Button.md +228 -0
  92. package/docs/buttons/cn/IconButton.md +294 -0
  93. package/docs/buttons/cn/README.md +600 -0
  94. package/docs/buttons/cn/TextButton.md +163 -0
  95. package/docs/buttons/en/ActionBar.md +459 -0
  96. package/docs/buttons/en/Button.md +228 -0
  97. package/docs/buttons/en/IconButton.md +294 -0
  98. package/docs/buttons/en/README.md +600 -0
  99. package/docs/buttons/en/TextButton.md +163 -0
  100. package/docs/containers/cn/accordion.md +622 -0
  101. package/docs/containers/cn/box.md +445 -0
  102. package/docs/containers/cn/card.md +404 -0
  103. package/docs/containers/cn/page.md +576 -0
  104. package/docs/containers/cn/tabs.md +686 -0
  105. package/docs/containers/en/accordion.md +622 -0
  106. package/docs/containers/en/box.md +445 -0
  107. package/docs/containers/en/card.md +404 -0
  108. package/docs/containers/en/page.md +576 -0
  109. package/docs/containers/en/tabs.md +686 -0
  110. package/docs/data-display/cn/concise-data-table.md +731 -0
  111. package/docs/data-display/cn/listbox.md +786 -0
  112. package/docs/data-display/cn/treeview.md +863 -0
  113. package/docs/data-display/en/concise-data-table.md +732 -0
  114. package/docs/data-display/en/listbox.md +786 -0
  115. package/docs/data-display/en/treeview.md +863 -0
  116. package/docs/data-table/cn/README.md +596 -0
  117. package/docs/data-table/en/README.md +596 -0
  118. package/docs/dialog/cn/README.md +767 -0
  119. package/docs/dialog/en/README.md +767 -0
  120. package/docs/form/cn/README.md +847 -0
  121. package/docs/form/en/README.md +847 -0
  122. package/docs/form-components/cn/README.md +495 -0
  123. package/docs/form-components/cn/attachmentfilesfield.md +757 -0
  124. package/docs/form-components/cn/cascade-options-select.md +374 -0
  125. package/docs/form-components/cn/checkbox.md +58 -0
  126. package/docs/form-components/cn/date-picker.md +138 -0
  127. package/docs/form-components/cn/datetime-picker.md +228 -0
  128. package/docs/form-components/cn/group-checkbox.md +405 -0
  129. package/docs/form-components/cn/group-radiobox.md +525 -0
  130. package/docs/form-components/cn/imagefilesfield.md +651 -0
  131. package/docs/form-components/cn/input-options-select.md +250 -0
  132. package/docs/form-components/cn/lookup-editor.md +406 -0
  133. package/docs/form-components/cn/memoeditor.md +409 -0
  134. package/docs/form-components/cn/number-editor.md +261 -0
  135. package/docs/form-components/cn/options-multi-select.md +177 -0
  136. package/docs/form-components/cn/options-select.md +83 -0
  137. package/docs/form-components/cn/passwordeditor.md +538 -0
  138. package/docs/form-components/cn/prompts-text-editor.md +241 -0
  139. package/docs/form-components/cn/radiobutton.md +84 -0
  140. package/docs/form-components/cn/switch.md +178 -0
  141. package/docs/form-components/cn/text-editor.md +142 -0
  142. package/docs/form-components/cn/time-editor.md +159 -0
  143. package/docs/form-components/cn/unit-number-editor.md +164 -0
  144. package/docs/form-components/en/README.md +463 -0
  145. package/docs/form-components/en/attachmentfilesfield.md +757 -0
  146. package/docs/form-components/en/cascade-options-select.md +358 -0
  147. package/docs/form-components/en/checkbox.md +59 -0
  148. package/docs/form-components/en/date-picker.md +138 -0
  149. package/docs/form-components/en/datetime-picker.md +228 -0
  150. package/docs/form-components/en/group-checkbox.md +395 -0
  151. package/docs/form-components/en/group-radiobox.md +498 -0
  152. package/docs/form-components/en/imagefilesfield.md +651 -0
  153. package/docs/form-components/en/input-options-select.md +239 -0
  154. package/docs/form-components/en/lookup-editor.md +389 -0
  155. package/docs/form-components/en/memoeditor.md +409 -0
  156. package/docs/form-components/en/number-editor.md +249 -0
  157. package/docs/form-components/en/options-multi-select.md +177 -0
  158. package/docs/form-components/en/options-select.md +83 -0
  159. package/docs/form-components/en/passwordeditor.md +538 -0
  160. package/docs/form-components/en/prompts-text-editor.md +241 -0
  161. package/docs/form-components/en/radiobutton.md +84 -0
  162. package/docs/form-components/en/switch.md +180 -0
  163. package/docs/form-components/en/text-editor.md +142 -0
  164. package/docs/form-components/en/time-editor.md +159 -0
  165. package/docs/form-components/en/unit-number-editor.md +164 -0
  166. package/docs/form-layout/cn/criteria-field.md +652 -0
  167. package/docs/form-layout/cn/flex-form.md +454 -0
  168. package/docs/form-layout/cn/flex-row-form.md +542 -0
  169. package/docs/form-layout/cn/form-field.md +923 -0
  170. package/docs/form-layout/cn/grid-form.md +676 -0
  171. package/docs/form-layout/en/criteria-field.md +652 -0
  172. package/docs/form-layout/en/flex-form.md +454 -0
  173. package/docs/form-layout/en/flex-row-form.md +542 -0
  174. package/docs/form-layout/en/form-field.md +923 -0
  175. package/docs/form-layout/en/grid-form.md +676 -0
  176. package/docs/global/cn/README.md +534 -0
  177. package/docs/global/en/README.md +534 -0
  178. package/docs/layout/cn/classiclayout.md +460 -0
  179. package/docs/layout/cn/headerlayout.md +524 -0
  180. package/docs/layout/cn/sidebarlayout.md +263 -0
  181. package/docs/layout/en/classiclayout.md +951 -0
  182. package/docs/layout/en/headerlayout.md +524 -0
  183. package/docs/layout/en/sidebarlayout.md +262 -0
  184. package/docs/misc/cn/README.md +1217 -0
  185. package/docs/misc/en/README.md +1217 -0
  186. package/docs/navigation/cn/breadcrumb.md +291 -0
  187. package/docs/navigation/cn/navigator.md +322 -0
  188. package/docs/navigation/cn/navigatormenu.md +512 -0
  189. package/docs/navigation/cn/progressbar.md +199 -0
  190. package/docs/navigation/cn/progressstepbar.md +299 -0
  191. package/docs/navigation/en/breadcrumb.md +291 -0
  192. package/docs/navigation/en/navigator.md +322 -0
  193. package/docs/navigation/en/navigatormenu.md +512 -0
  194. package/docs/navigation/en/progressbar.md +199 -0
  195. package/docs/navigation/en/progressstepbar.md +299 -0
  196. package/docs/search-filters/cn/daterange.md +1156 -0
  197. package/docs/search-filters/cn/numberrange.md +688 -0
  198. package/docs/search-filters/cn/searchbox.md +1582 -0
  199. package/docs/search-filters/en/daterange.md +1156 -0
  200. package/docs/search-filters/en/numberrange.md +688 -0
  201. package/docs/search-filters/en/searchbox.md +1582 -0
  202. package/package.json +53 -13
  203. package/dist/common-editor/DateInput.svelte +0 -27
  204. package/dist/i18n_resources/index.d.ts +0 -3
  205. package/dist/i18n_resources/index.js +0 -3
  206. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.d.ts +0 -0
  207. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.js +0 -0
  208. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.d.ts +0 -0
  209. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.js +0 -0
@@ -0,0 +1,445 @@
1
+ # Box 容器组件
2
+
3
+ 一个简单且灵活的容器组件,提供带有可选头部、内容和底部部分的结构化布局。
4
+
5
+ ## 概述
6
+
7
+ Box 组件是一个多用途容器,提供了一种清洁、有组织的方式来显示带有可选头部和底部部分的内容。它非常适合创建内容区域、信息面板和具有一致样式的结构化布局。
8
+
9
+ ## 安装
10
+
11
+ ```typescript
12
+ import Box from '@ticatec/uniface-element/Box';
13
+ ```
14
+
15
+ ## 基本用法
16
+
17
+ ```svelte
18
+ <script lang="ts">
19
+ import Box from '@ticatec/uniface-element/Box';
20
+ </script>
21
+
22
+ <Box title="基础容器">
23
+ <p>这是容器组件的主要内容区域。</p>
24
+ </Box>
25
+ ```
26
+
27
+ ## 属性
28
+
29
+ | 属性 | 类型 | 默认值 | 描述 |
30
+ |------|------|--------|------|
31
+ | `style` | `string \| null` | `null` | 容器的自定义 CSS 样式 |
32
+ | `title` | `string` | `null` | 容器标题(创建简单头部) |
33
+ | `round` | `boolean` | `false` | 为容器应用圆角 |
34
+ | `content$style` | `string \| null` | `null` | 内容区域的自定义样式 |
35
+ | `header$style` | `string \| null` | `null` | 头部区域的自定义样式 |
36
+ | `footer$style` | `string \| null` | `null` | 底部区域的自定义样式 |
37
+ | `class` | `string` | `null` | 额外的 CSS 类名 |
38
+
39
+ ## 插槽
40
+
41
+ | 插槽 | 描述 |
42
+ |------|------|
43
+ | `default` | 容器的主要内容区域 |
44
+ | `header` | 自定义头部内容(覆盖标题) |
45
+ | `footer` | 底部内容区域 |
46
+
47
+ ## 使用示例
48
+
49
+ ### 带标题的基础容器
50
+
51
+ ```svelte
52
+ <script lang="ts">
53
+ import Box from '@ticatec/uniface-element/Box';
54
+ </script>
55
+
56
+ <Box title="用户资料">
57
+ <div class="profile-content">
58
+ <p><strong>姓名:</strong> 张三</p>
59
+ <p><strong>部门:</strong> 工程部</p>
60
+ <p><strong>位置:</strong> 北京</p>
61
+ </div>
62
+ </Box>
63
+ ```
64
+
65
+ ### 圆角容器
66
+
67
+ ```svelte
68
+ <script lang="ts">
69
+ import Box from '@ticatec/uniface-element/Box';
70
+ </script>
71
+
72
+ <Box title="圆角容器" round={true}>
73
+ <p>这个容器有圆角,外观更柔和。</p>
74
+ </Box>
75
+ ```
76
+
77
+ ### 带自定义头部的容器
78
+
79
+ ```svelte
80
+ <script lang="ts">
81
+ import Box from '@ticatec/uniface-element/Box';
82
+ </script>
83
+
84
+ <Box>
85
+ <div slot="header" class="custom-header">
86
+ <h3>自定义头部</h3>
87
+ <span class="status-indicator">活跃</span>
88
+ </div>
89
+
90
+ <div class="content">
91
+ <p>带有自定义头部布局的内容。</p>
92
+ </div>
93
+ </Box>
94
+
95
+ <style>
96
+ .custom-header {
97
+ display: flex;
98
+ justify-content: space-between;
99
+ align-items: center;
100
+ }
101
+
102
+ .status-indicator {
103
+ background-color: #28a745;
104
+ color: white;
105
+ padding: 2px 8px;
106
+ border-radius: 12px;
107
+ font-size: 0.75rem;
108
+ }
109
+ </style>
110
+ ```
111
+
112
+ ### 带底部的容器
113
+
114
+ ```svelte
115
+ <script lang="ts">
116
+ import Box from '@ticatec/uniface-element/Box';
117
+ </script>
118
+
119
+ <Box title="文章">
120
+ <div class="article-content">
121
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
122
+ </div>
123
+
124
+ <div slot="footer" class="article-footer">
125
+ <span class="author">作者: 王小明</span>
126
+ <span class="date">2024年3月15日</span>
127
+ </div>
128
+ </Box>
129
+
130
+ <style>
131
+ .article-footer {
132
+ display: flex;
133
+ justify-content: space-between;
134
+ color: #666;
135
+ font-size: 0.875rem;
136
+ border-top: 1px solid #eee;
137
+ padding-top: 8px;
138
+ }
139
+ </style>
140
+ ```
141
+
142
+ ### 带自定义区域样式的容器
143
+
144
+ ```svelte
145
+ <script lang="ts">
146
+ import Box from '@ticatec/uniface-element/Box';
147
+ </script>
148
+
149
+ <Box
150
+ title="仪表板统计"
151
+ round={true}
152
+ style="border: 2px solid #007bff; max-width: 400px;"
153
+ header$style="background-color: #007bff; color: white; padding: 12px 16px;"
154
+ content$style="padding: 20px;"
155
+ footer$style="background-color: #f8f9fa; padding: 8px 16px;"
156
+ >
157
+ <div class="stats-grid">
158
+ <div class="stat-item">
159
+ <div class="stat-value">1,234</div>
160
+ <div class="stat-label">总用户数</div>
161
+ </div>
162
+ <div class="stat-item">
163
+ <div class="stat-value">98.5%</div>
164
+ <div class="stat-label">运行时间</div>
165
+ </div>
166
+ </div>
167
+
168
+ <div slot="footer">
169
+ <small>最后更新: 5分钟前</small>
170
+ </div>
171
+ </Box>
172
+
173
+ <style>
174
+ .stats-grid {
175
+ display: grid;
176
+ grid-template-columns: 1fr 1fr;
177
+ gap: 20px;
178
+ }
179
+
180
+ .stat-item {
181
+ text-align: center;
182
+ }
183
+
184
+ .stat-value {
185
+ font-size: 2rem;
186
+ font-weight: bold;
187
+ color: #007bff;
188
+ }
189
+
190
+ .stat-label {
191
+ font-size: 0.875rem;
192
+ color: #666;
193
+ margin-top: 4px;
194
+ }
195
+ </style>
196
+ ```
197
+
198
+ ### 多容器布局
199
+
200
+ ```svelte
201
+ <script lang="ts">
202
+ import Box from '@ticatec/uniface-element/Box';
203
+ </script>
204
+
205
+ <div class="box-grid">
206
+ <Box title="快速统计" class="stat-box">
207
+ <div class="quick-stats">
208
+ <div class="stat">
209
+ <span class="number">156</span>
210
+ <span class="label">订单</span>
211
+ </div>
212
+ <div class="stat">
213
+ <span class="number">¥12,450</span>
214
+ <span class="label">收入</span>
215
+ </div>
216
+ </div>
217
+ </Box>
218
+
219
+ <Box title="最近活动" class="activity-box">
220
+ <ul class="activity-list">
221
+ <li>用户张三已注册</li>
222
+ <li>订单 #1234 已完成</li>
223
+ <li>收到付款</li>
224
+ </ul>
225
+ </Box>
226
+
227
+ <Box title="系统状态" round={true} class="status-box">
228
+ <div class="status-items">
229
+ <div class="status-item">
230
+ <span class="indicator green"></span>
231
+ <span>数据库: 在线</span>
232
+ </div>
233
+ <div class="status-item">
234
+ <span class="indicator green"></span>
235
+ <span>API: 正常</span>
236
+ </div>
237
+ <div class="status-item">
238
+ <span class="indicator yellow"></span>
239
+ <span>缓存: 警告</span>
240
+ </div>
241
+ </div>
242
+ </Box>
243
+ </div>
244
+
245
+ <style>
246
+ .box-grid {
247
+ display: grid;
248
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
249
+ gap: 20px;
250
+ margin: 20px 0;
251
+ }
252
+
253
+ .quick-stats {
254
+ display: flex;
255
+ justify-content: space-around;
256
+ text-align: center;
257
+ }
258
+
259
+ .stat .number {
260
+ display: block;
261
+ font-size: 1.5rem;
262
+ font-weight: bold;
263
+ color: #007bff;
264
+ }
265
+
266
+ .stat .label {
267
+ font-size: 0.875rem;
268
+ color: #666;
269
+ }
270
+
271
+ .activity-list {
272
+ list-style: none;
273
+ padding: 0;
274
+ margin: 0;
275
+ }
276
+
277
+ .activity-list li {
278
+ padding: 8px 0;
279
+ border-bottom: 1px solid #eee;
280
+ }
281
+
282
+ .activity-list li:last-child {
283
+ border-bottom: none;
284
+ }
285
+
286
+ .status-items {
287
+ display: flex;
288
+ flex-direction: column;
289
+ gap: 12px;
290
+ }
291
+
292
+ .status-item {
293
+ display: flex;
294
+ align-items: center;
295
+ gap: 8px;
296
+ }
297
+
298
+ .indicator {
299
+ width: 8px;
300
+ height: 8px;
301
+ border-radius: 50%;
302
+ }
303
+
304
+ .indicator.green {
305
+ background-color: #28a745;
306
+ }
307
+
308
+ .indicator.yellow {
309
+ background-color: #ffc107;
310
+ }
311
+ </style>
312
+ ```
313
+
314
+ ## 样式
315
+
316
+ Box 组件使用以下 CSS 类:
317
+
318
+ ```css
319
+ .uniface-box {
320
+ /* 基础容器 */
321
+ }
322
+
323
+ .uniface-box.round {
324
+ /* 圆角变体 */
325
+ }
326
+
327
+ .box-header {
328
+ /* 头部容器 */
329
+ }
330
+
331
+ .box-header .title {
332
+ /* 头部中的标题 */
333
+ }
334
+
335
+ .box-content {
336
+ /* 主要内容区域 */
337
+ }
338
+
339
+ .box-footer {
340
+ /* 底部容器 */
341
+ }
342
+
343
+ .flex-container {
344
+ /* 应用于头部和底部的弹性布局 */
345
+ }
346
+ ```
347
+
348
+ ## 高级用法
349
+
350
+ ### 带动态内容的容器
351
+
352
+ ```svelte
353
+ <script lang="ts">
354
+ import Box from '@ticatec/uniface-element/Box';
355
+
356
+ let showAdvanced = false;
357
+ let userCount = 1250;
358
+
359
+ function toggleAdvanced() {
360
+ showAdvanced = !showAdvanced;
361
+ }
362
+ </script>
363
+
364
+ <Box
365
+ title="用户管理"
366
+ round={true}
367
+ content$style="min-height: 200px;"
368
+ >
369
+ <div class="user-stats">
370
+ <p>总用户数: <strong>{userCount}</strong></p>
371
+
372
+ {#if showAdvanced}
373
+ <div class="advanced-stats">
374
+ <p>今日活跃: <strong>{Math.floor(userCount * 0.15)}</strong></p>
375
+ <p>本周新增: <strong>{Math.floor(userCount * 0.05)}</strong></p>
376
+ <p>高级用户: <strong>{Math.floor(userCount * 0.12)}</strong></p>
377
+ </div>
378
+ {/if}
379
+ </div>
380
+
381
+ <div slot="footer" class="actions">
382
+ <button on:click={toggleAdvanced}>
383
+ {showAdvanced ? '隐藏' : '显示'} 高级统计
384
+ </button>
385
+ </div>
386
+ </Box>
387
+
388
+ <style>
389
+ .user-stats {
390
+ padding: 8px 0;
391
+ }
392
+
393
+ .advanced-stats {
394
+ margin-top: 16px;
395
+ padding: 16px;
396
+ background-color: #f8f9fa;
397
+ border-radius: 4px;
398
+ }
399
+
400
+ .actions {
401
+ text-align: right;
402
+ }
403
+
404
+ .actions button {
405
+ padding: 6px 12px;
406
+ border: 1px solid #007bff;
407
+ background-color: #007bff;
408
+ color: white;
409
+ border-radius: 4px;
410
+ cursor: pointer;
411
+ }
412
+
413
+ .actions button:hover {
414
+ background-color: #0056b3;
415
+ }
416
+ </style>
417
+ ```
418
+
419
+ ## 最佳实践
420
+
421
+ 1. **使用描述性标题** - 保持标题清晰且信息丰富
422
+ 2. **一致的间距** - 使用样式属性保持一致的内边距和外边距
423
+ 3. **语义化结构** - 为不同类型的内容使用适当的插槽
424
+ 4. **响应式设计** - 考虑容器在不同屏幕尺寸上的堆叠和调整大小
425
+ 5. **视觉层次** - 使用头部和底部创建清晰的内容分离
426
+ 6. **可访问性** - 确保适当的标题结构和颜色对比度
427
+
428
+ ## 与 Card 组件的比较
429
+
430
+ 虽然 Box 和 Card 组件都作为容器使用,但它们有不同的用途:
431
+
432
+ - **Box**: 简单的结构化容器,专注于布局和组织
433
+ - **Card**: 功能丰富的容器,具有内置操作按钮和交互元素
434
+
435
+ 选择 Box 用于:
436
+ - 简单的内容组织
437
+ - 自定义样式需求
438
+ - 最小开销
439
+ - 灵活的布局要求
440
+
441
+ 选择 Card 用于:
442
+ - 交互式内容
443
+ - 内置操作按钮
444
+ - 一致的基于卡片的设计
445
+ - 3D 视觉效果