@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 Component
2
+
3
+ A simple and flexible container component that provides a structured layout with optional header, content, and footer sections.
4
+
5
+ ## Overview
6
+
7
+ The Box component is a versatile container that provides a clean, organized way to display content with optional header and footer sections. It's perfect for creating content sections, information panels, and structured layouts with consistent styling.
8
+
9
+ ## Installation
10
+
11
+ ```typescript
12
+ import Box from '@ticatec/uniface-element/Box';
13
+ ```
14
+
15
+ ## Basic Usage
16
+
17
+ ```svelte
18
+ <script lang="ts">
19
+ import Box from '@ticatec/uniface-element/Box';
20
+ </script>
21
+
22
+ <Box title="Basic Box">
23
+ <p>This is the main content area of the box component.</p>
24
+ </Box>
25
+ ```
26
+
27
+ ## Properties
28
+
29
+ | Property | Type | Default | Description |
30
+ |----------|------|---------|-------------|
31
+ | `style` | `string \| null` | `null` | Custom CSS styles for the box container |
32
+ | `title` | `string` | `null` | Box title (creates simple header) |
33
+ | `round` | `boolean` | `false` | Apply rounded corners to the box |
34
+ | `content$style` | `string \| null` | `null` | Custom styles for the content area |
35
+ | `header$style` | `string \| null` | `null` | Custom styles for the header area |
36
+ | `footer$style` | `string \| null` | `null` | Custom styles for the footer area |
37
+ | `class` | `string` | `null` | Additional CSS class names |
38
+
39
+ ## Slots
40
+
41
+ | Slot | Description |
42
+ |------|-------------|
43
+ | `default` | Main content area of the box |
44
+ | `header` | Custom header content (overrides title) |
45
+ | `footer` | Footer content area |
46
+
47
+ ## Usage Examples
48
+
49
+ ### Basic Box with Title
50
+
51
+ ```svelte
52
+ <script lang="ts">
53
+ import Box from '@ticatec/uniface-element/Box';
54
+ </script>
55
+
56
+ <Box title="User Profile">
57
+ <div class="profile-content">
58
+ <p><strong>Name:</strong> John Doe</p>
59
+ <p><strong>Department:</strong> Engineering</p>
60
+ <p><strong>Location:</strong> New York</p>
61
+ </div>
62
+ </Box>
63
+ ```
64
+
65
+ ### Rounded Box
66
+
67
+ ```svelte
68
+ <script lang="ts">
69
+ import Box from '@ticatec/uniface-element/Box';
70
+ </script>
71
+
72
+ <Box title="Rounded Container" round={true}>
73
+ <p>This box has rounded corners for a softer appearance.</p>
74
+ </Box>
75
+ ```
76
+
77
+ ### Box with Custom Header
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>Custom Header</h3>
87
+ <span class="status-indicator">Active</span>
88
+ </div>
89
+
90
+ <div class="content">
91
+ <p>Content with a custom header layout.</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
+ ### Box with Footer
113
+
114
+ ```svelte
115
+ <script lang="ts">
116
+ import Box from '@ticatec/uniface-element/Box';
117
+ </script>
118
+
119
+ <Box title="Article">
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">By: Jane Smith</span>
126
+ <span class="date">March 15, 2024</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
+ ### Styled Box with Custom Areas
143
+
144
+ ```svelte
145
+ <script lang="ts">
146
+ import Box from '@ticatec/uniface-element/Box';
147
+ </script>
148
+
149
+ <Box
150
+ title="Dashboard Stats"
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">Total Users</div>
161
+ </div>
162
+ <div class="stat-item">
163
+ <div class="stat-value">98.5%</div>
164
+ <div class="stat-label">Uptime</div>
165
+ </div>
166
+ </div>
167
+
168
+ <div slot="footer">
169
+ <small>Last updated: 5 minutes ago</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
+ ### Multiple Boxes Layout
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="Quick Stats" class="stat-box">
207
+ <div class="quick-stats">
208
+ <div class="stat">
209
+ <span class="number">156</span>
210
+ <span class="label">Orders</span>
211
+ </div>
212
+ <div class="stat">
213
+ <span class="number">$12,450</span>
214
+ <span class="label">Revenue</span>
215
+ </div>
216
+ </div>
217
+ </Box>
218
+
219
+ <Box title="Recent Activity" class="activity-box">
220
+ <ul class="activity-list">
221
+ <li>User John registered</li>
222
+ <li>Order #1234 completed</li>
223
+ <li>Payment received</li>
224
+ </ul>
225
+ </Box>
226
+
227
+ <Box title="System Status" round={true} class="status-box">
228
+ <div class="status-items">
229
+ <div class="status-item">
230
+ <span class="indicator green"></span>
231
+ <span>Database: Online</span>
232
+ </div>
233
+ <div class="status-item">
234
+ <span class="indicator green"></span>
235
+ <span>API: Healthy</span>
236
+ </div>
237
+ <div class="status-item">
238
+ <span class="indicator yellow"></span>
239
+ <span>Cache: Warning</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
+ ## Styling
315
+
316
+ The Box component uses the following CSS classes:
317
+
318
+ ```css
319
+ .uniface-box {
320
+ /* Base box container */
321
+ }
322
+
323
+ .uniface-box.round {
324
+ /* Rounded corners variant */
325
+ }
326
+
327
+ .box-header {
328
+ /* Header container */
329
+ }
330
+
331
+ .box-header .title {
332
+ /* Title within header */
333
+ }
334
+
335
+ .box-content {
336
+ /* Main content area */
337
+ }
338
+
339
+ .box-footer {
340
+ /* Footer container */
341
+ }
342
+
343
+ .flex-container {
344
+ /* Applied to header and footer for flexible layout */
345
+ }
346
+ ```
347
+
348
+ ## Advanced Usage
349
+
350
+ ### Box with Dynamic Content
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="User Management"
366
+ round={true}
367
+ content$style="min-height: 200px;"
368
+ >
369
+ <div class="user-stats">
370
+ <p>Total Users: <strong>{userCount}</strong></p>
371
+
372
+ {#if showAdvanced}
373
+ <div class="advanced-stats">
374
+ <p>Active Today: <strong>{Math.floor(userCount * 0.15)}</strong></p>
375
+ <p>New This Week: <strong>{Math.floor(userCount * 0.05)}</strong></p>
376
+ <p>Premium Users: <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 ? 'Hide' : 'Show'} Advanced Stats
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
+ ## Best Practices
420
+
421
+ 1. **Use descriptive titles** - Keep titles clear and informative
422
+ 2. **Consistent spacing** - Use the style properties to maintain consistent padding and margins
423
+ 3. **Semantic structure** - Use appropriate slots for different types of content
424
+ 4. **Responsive design** - Consider how boxes will stack and resize on different screen sizes
425
+ 5. **Visual hierarchy** - Use headers and footers to create clear content separation
426
+ 6. **Accessibility** - Ensure proper heading structure and color contrast
427
+
428
+ ## Comparison with Card Component
429
+
430
+ While both Box and Card components serve as containers, they have different purposes:
431
+
432
+ - **Box**: Simple, structural container focused on layout and organization
433
+ - **Card**: Feature-rich container with built-in action buttons and interactive elements
434
+
435
+ Choose Box for:
436
+ - Simple content organization
437
+ - Custom styling needs
438
+ - Minimal overhead
439
+ - Flexible layout requirements
440
+
441
+ Choose Card for:
442
+ - Interactive content
443
+ - Built-in action buttons
444
+ - Consistent card-based designs
445
+ - 3D visual effects