@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.
- package/README.md +320 -1
- package/README_CN.md +392 -0
- package/dist/accordion/Accordion.svelte +1 -1
- package/dist/action-bar/ActionBar.svelte +7 -1
- package/dist/attachment-files/FileRender.svelte +1 -1
- package/dist/attachment-files/FileUploadBar.svelte +7 -6
- package/dist/attachment-files/FileUploadPanel.svelte +2 -2
- package/dist/base-calendar/DateContext.js +5 -4
- package/dist/base-calendar/YearPickupPanel.svelte +4 -4
- package/dist/card/Card.svelte +1 -1
- package/dist/card/Card.svelte.d.ts +1 -1
- package/dist/cascade-options-select/CascadeOptionSelect.svelte +2 -3
- package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +46 -1
- package/dist/cascade-options-select/CascadePanel.svelte +1 -1
- package/dist/checkbox/CheckBox.svelte +1 -1
- package/dist/color-picker/ColorPicker.svelte +9 -9
- package/dist/color-picker/ColorPicker.svelte.d.ts +0 -2
- package/dist/color-picker/ColorPickerPanel.svelte +11 -15
- package/dist/color-picker/ColorPickerPanel.svelte.d.ts +1 -1
- package/dist/common/CommonPicker.svelte +2 -2
- package/dist/common/CommonPicker.svelte.d.ts +1 -1
- package/dist/common/MouseClickHandler.d.ts +1 -1
- package/dist/common/Popover.svelte +28 -6
- package/dist/common/Popover.svelte.d.ts +9 -3
- package/dist/common/uniface-utils.js +6 -4
- package/dist/common-editor/CommonEditor.svelte +1 -1
- package/dist/common-editor/CommonEditor.svelte.d.ts +1 -1
- package/dist/common-editor/NumberInput.svelte +1 -1
- package/dist/common-editor/NumberInput.svelte.d.ts +1 -1
- package/dist/concise-data-table/ConciseListTable.svelte +7 -2
- package/dist/concise-data-table/ConciseListTable.svelte.d.ts +1 -0
- package/dist/concise-data-table/DataRow.svelte +1 -1
- package/dist/concise-data-table/TableOptions.d.ts +1 -1
- package/dist/data-table/DataTable.svelte +1 -1
- package/dist/data-table/parts/ActionsPanel.svelte +4 -3
- package/dist/data-table/parts/ActionsRow.svelte +3 -3
- package/dist/data-table/parts/ContentPanel.svelte +3 -2
- package/dist/data-table/parts/FixedColumnsPanel.svelte +0 -1
- package/dist/data-table/parts/FixedColumnsPanel.svelte.d.ts +1 -2
- package/dist/data-table/parts/FixedHeaderPanel.svelte +2 -2
- package/dist/data-table/parts/FixedRow.svelte +2 -1
- package/dist/data-table/parts/FixedRow.svelte.d.ts +1 -1
- package/dist/data-table/parts/HrefCell.svelte +23 -2
- package/dist/data-table/parts/PopupMenu.svelte +25 -2
- package/dist/data-table/parts/PopupMenu.svelte.d.ts +8 -1
- package/dist/date-picker/DatePicker.svelte +0 -1
- package/dist/date-picker/DateTimePicker.svelte +3 -3
- package/dist/date-picker/ScrollBar.svelte +4 -7
- package/dist/date-range/DateRangeEditor.svelte +1 -1
- package/dist/dialog/CommonDialog.svelte +8 -5
- package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
- package/dist/dialog/Dialog.svelte +37 -12
- package/dist/dialog/Dialog.svelte.d.ts +4 -3
- package/dist/dialog/DialogBoard.svelte +11 -8
- package/dist/dialog/DialogWrapper.svelte +10 -0
- package/dist/{common-editor/DateInput.svelte.d.ts → dialog/DialogWrapper.svelte.d.ts} +6 -13
- package/dist/dialog/Dialogs.js +1 -1
- package/dist/dialog/ModalResult.d.ts +5 -0
- package/dist/dialog/ModalResult.js +5 -0
- package/dist/drawer/Drawer.svelte +1 -1
- package/dist/form-field/FormField.svelte +2 -1
- package/dist/form-field/FormField.svelte.d.ts +1 -0
- package/dist/form-panel/flex-row-form/FormContainer.svelte +1 -1
- package/dist/form-panel/grid-form/EmptyCell.svelte +8 -7
- package/dist/form-panel/grid-form/EmptyCell.svelte.d.ts +2 -2
- package/dist/form-panel/grid-form/GridField.svelte +1 -1
- package/dist/i18nRes/i18nRes.d.ts +2 -0
- package/dist/i18nRes/i18nRes.js +44 -0
- package/dist/i18nRes/index.d.ts +2 -0
- package/dist/i18nRes/index.js +2 -0
- package/dist/image-files/ImageFilesField.svelte +1 -1
- package/dist/indicator/IndicatorBoard.svelte +1 -1
- package/dist/inline-cell-editor/InvalidEditor.svelte +1 -0
- package/dist/input-options-select/InputOptionsSelect.svelte +6 -6
- package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +1 -1
- package/dist/layout/flex/FlexBlock.svelte +1 -1
- package/dist/lookup-editor/LookupEditor.svelte +1 -1
- package/dist/memo-editor/MemoEditor.svelte +2 -2
- package/dist/message-box/IMessageBox.d.ts +2 -4
- package/dist/message-box/IMessageBox.js +4 -6
- package/dist/message-box/MessageBoxBoard.svelte +1 -3
- package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
- package/dist/prompts-text-editor/PromptsTextEditor.svelte +2 -2
- package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +1 -1
- package/dist/property-editor/PropertyEditor.svelte +3 -3
- package/dist/text-editor/PasswordEditor.svelte +1 -1
- package/dist/transfer/Transfer.svelte +17 -12
- package/dist/transfer/Transfer.svelte.d.ts +0 -1
- package/dist/unit-number-editor/UnitNumberEditor.svelte +2 -2
- package/docs/buttons/cn/ActionBar.md +459 -0
- package/docs/buttons/cn/Button.md +228 -0
- package/docs/buttons/cn/IconButton.md +294 -0
- package/docs/buttons/cn/README.md +600 -0
- package/docs/buttons/cn/TextButton.md +163 -0
- package/docs/buttons/en/ActionBar.md +459 -0
- package/docs/buttons/en/Button.md +228 -0
- package/docs/buttons/en/IconButton.md +294 -0
- package/docs/buttons/en/README.md +600 -0
- package/docs/buttons/en/TextButton.md +163 -0
- package/docs/containers/cn/accordion.md +622 -0
- package/docs/containers/cn/box.md +445 -0
- package/docs/containers/cn/card.md +404 -0
- package/docs/containers/cn/page.md +576 -0
- package/docs/containers/cn/tabs.md +686 -0
- package/docs/containers/en/accordion.md +622 -0
- package/docs/containers/en/box.md +445 -0
- package/docs/containers/en/card.md +404 -0
- package/docs/containers/en/page.md +576 -0
- package/docs/containers/en/tabs.md +686 -0
- package/docs/data-display/cn/concise-data-table.md +731 -0
- package/docs/data-display/cn/listbox.md +786 -0
- package/docs/data-display/cn/treeview.md +863 -0
- package/docs/data-display/en/concise-data-table.md +732 -0
- package/docs/data-display/en/listbox.md +786 -0
- package/docs/data-display/en/treeview.md +863 -0
- package/docs/data-table/cn/README.md +596 -0
- package/docs/data-table/en/README.md +596 -0
- package/docs/dialog/cn/README.md +767 -0
- package/docs/dialog/en/README.md +767 -0
- package/docs/form/cn/README.md +847 -0
- package/docs/form/en/README.md +847 -0
- package/docs/form-components/cn/README.md +495 -0
- package/docs/form-components/cn/attachmentfilesfield.md +757 -0
- package/docs/form-components/cn/cascade-options-select.md +374 -0
- package/docs/form-components/cn/checkbox.md +58 -0
- package/docs/form-components/cn/date-picker.md +138 -0
- package/docs/form-components/cn/datetime-picker.md +228 -0
- package/docs/form-components/cn/group-checkbox.md +405 -0
- package/docs/form-components/cn/group-radiobox.md +525 -0
- package/docs/form-components/cn/imagefilesfield.md +651 -0
- package/docs/form-components/cn/input-options-select.md +250 -0
- package/docs/form-components/cn/lookup-editor.md +406 -0
- package/docs/form-components/cn/memoeditor.md +409 -0
- package/docs/form-components/cn/number-editor.md +261 -0
- package/docs/form-components/cn/options-multi-select.md +177 -0
- package/docs/form-components/cn/options-select.md +83 -0
- package/docs/form-components/cn/passwordeditor.md +538 -0
- package/docs/form-components/cn/prompts-text-editor.md +241 -0
- package/docs/form-components/cn/radiobutton.md +84 -0
- package/docs/form-components/cn/switch.md +178 -0
- package/docs/form-components/cn/text-editor.md +142 -0
- package/docs/form-components/cn/time-editor.md +159 -0
- package/docs/form-components/cn/unit-number-editor.md +164 -0
- package/docs/form-components/en/README.md +463 -0
- package/docs/form-components/en/attachmentfilesfield.md +757 -0
- package/docs/form-components/en/cascade-options-select.md +358 -0
- package/docs/form-components/en/checkbox.md +59 -0
- package/docs/form-components/en/date-picker.md +138 -0
- package/docs/form-components/en/datetime-picker.md +228 -0
- package/docs/form-components/en/group-checkbox.md +395 -0
- package/docs/form-components/en/group-radiobox.md +498 -0
- package/docs/form-components/en/imagefilesfield.md +651 -0
- package/docs/form-components/en/input-options-select.md +239 -0
- package/docs/form-components/en/lookup-editor.md +389 -0
- package/docs/form-components/en/memoeditor.md +409 -0
- package/docs/form-components/en/number-editor.md +249 -0
- package/docs/form-components/en/options-multi-select.md +177 -0
- package/docs/form-components/en/options-select.md +83 -0
- package/docs/form-components/en/passwordeditor.md +538 -0
- package/docs/form-components/en/prompts-text-editor.md +241 -0
- package/docs/form-components/en/radiobutton.md +84 -0
- package/docs/form-components/en/switch.md +180 -0
- package/docs/form-components/en/text-editor.md +142 -0
- package/docs/form-components/en/time-editor.md +159 -0
- package/docs/form-components/en/unit-number-editor.md +164 -0
- package/docs/form-layout/cn/criteria-field.md +652 -0
- package/docs/form-layout/cn/flex-form.md +454 -0
- package/docs/form-layout/cn/flex-row-form.md +542 -0
- package/docs/form-layout/cn/form-field.md +923 -0
- package/docs/form-layout/cn/grid-form.md +676 -0
- package/docs/form-layout/en/criteria-field.md +652 -0
- package/docs/form-layout/en/flex-form.md +454 -0
- package/docs/form-layout/en/flex-row-form.md +542 -0
- package/docs/form-layout/en/form-field.md +923 -0
- package/docs/form-layout/en/grid-form.md +676 -0
- package/docs/global/cn/README.md +534 -0
- package/docs/global/en/README.md +534 -0
- package/docs/layout/cn/classiclayout.md +460 -0
- package/docs/layout/cn/headerlayout.md +524 -0
- package/docs/layout/cn/sidebarlayout.md +263 -0
- package/docs/layout/en/classiclayout.md +951 -0
- package/docs/layout/en/headerlayout.md +524 -0
- package/docs/layout/en/sidebarlayout.md +262 -0
- package/docs/misc/cn/README.md +1217 -0
- package/docs/misc/en/README.md +1217 -0
- package/docs/navigation/cn/breadcrumb.md +291 -0
- package/docs/navigation/cn/navigator.md +322 -0
- package/docs/navigation/cn/navigatormenu.md +512 -0
- package/docs/navigation/cn/progressbar.md +199 -0
- package/docs/navigation/cn/progressstepbar.md +299 -0
- package/docs/navigation/en/breadcrumb.md +291 -0
- package/docs/navigation/en/navigator.md +322 -0
- package/docs/navigation/en/navigatormenu.md +512 -0
- package/docs/navigation/en/progressbar.md +199 -0
- package/docs/navigation/en/progressstepbar.md +299 -0
- package/docs/search-filters/cn/daterange.md +1156 -0
- package/docs/search-filters/cn/numberrange.md +688 -0
- package/docs/search-filters/cn/searchbox.md +1582 -0
- package/docs/search-filters/en/daterange.md +1156 -0
- package/docs/search-filters/en/numberrange.md +688 -0
- package/docs/search-filters/en/searchbox.md +1582 -0
- package/package.json +53 -13
- package/dist/common-editor/DateInput.svelte +0 -27
- package/dist/i18n_resources/index.d.ts +0 -3
- package/dist/i18n_resources/index.js +0 -3
- /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.d.ts +0 -0
- /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.js +0 -0
- /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.d.ts +0 -0
- /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
|