@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,262 @@
|
|
|
1
|
+
# SidebarLayout
|
|
2
|
+
|
|
3
|
+
The SidebarLayout component provides a flexible layout with a sidebar, header, and main content area. The sidebar can be resized dynamically, and the layout adapts based on provided properties.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Flexible Sidebar**: Resizable sidebar with configurable minimum and maximum widths
|
|
8
|
+
- **Header Support**: Optional header area for navigation or branding
|
|
9
|
+
- **Responsive Design**: Adapts to different screen sizes and configurations
|
|
10
|
+
- **Split Panel Integration**: Uses Split component for smooth resizing functionality
|
|
11
|
+
- **Customizable Dimensions**: Configurable heights and widths for all areas
|
|
12
|
+
|
|
13
|
+
## Import
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
| Property | Type | Default | Description |
|
|
22
|
+
|----------|------|---------|-------------|
|
|
23
|
+
| `sidebarResize` | `boolean` | `false` | If set to true, enables the sidebar resizing feature |
|
|
24
|
+
| `headerHeight` | `string` | `"48px"` | Sets the height of the header |
|
|
25
|
+
| `sidebarWidth` | `string` | `"300px"` | Sets the initial width of the sidebar |
|
|
26
|
+
| `sidebarMaxWidth` | `string \| null` | `null` | Sets the maximum width for the sidebar when resizing |
|
|
27
|
+
| `sidebarMinWidth` | `string \| null` | `null` | Sets the minimum width for the sidebar when resizing |
|
|
28
|
+
|
|
29
|
+
## Slots
|
|
30
|
+
|
|
31
|
+
- **sidebar**: The content to be displayed in the sidebar
|
|
32
|
+
- **header**: The content to be displayed in the header (optional)
|
|
33
|
+
- **Default Slot**: The main content to be displayed in the main area
|
|
34
|
+
|
|
35
|
+
## Basic Usage
|
|
36
|
+
|
|
37
|
+
```svelte
|
|
38
|
+
<script lang="ts">
|
|
39
|
+
import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<SidebarLayout
|
|
43
|
+
sidebarResize={true}
|
|
44
|
+
sidebarWidth="250px"
|
|
45
|
+
sidebarMaxWidth="400px"
|
|
46
|
+
sidebarMinWidth="200px"
|
|
47
|
+
>
|
|
48
|
+
<div slot="sidebar">
|
|
49
|
+
<p>Sidebar content</p>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div slot="header">
|
|
53
|
+
<h1>Header content</h1>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<div>
|
|
57
|
+
<p>Main content area</p>
|
|
58
|
+
</div>
|
|
59
|
+
</SidebarLayout>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Advanced Examples
|
|
63
|
+
|
|
64
|
+
### Application Layout with Navigation
|
|
65
|
+
|
|
66
|
+
```svelte
|
|
67
|
+
<script lang="ts">
|
|
68
|
+
import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
|
|
69
|
+
import NavigatorMenu from '@ticatec/uniface-element/NavigatorMenu';
|
|
70
|
+
import Button from '@ticatec/uniface-element/Button';
|
|
71
|
+
|
|
72
|
+
let menuItems = [
|
|
73
|
+
{ id: 1, text: 'Dashboard', icon: 'dashboard' },
|
|
74
|
+
{ id: 2, text: 'Users', icon: 'people' },
|
|
75
|
+
{ id: 3, text: 'Settings', icon: 'settings' }
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
let currentPage = 'Dashboard';
|
|
79
|
+
</script>
|
|
80
|
+
|
|
81
|
+
<SidebarLayout
|
|
82
|
+
sidebarResize={true}
|
|
83
|
+
headerHeight="60px"
|
|
84
|
+
sidebarWidth="280px"
|
|
85
|
+
sidebarMaxWidth="400px"
|
|
86
|
+
sidebarMinWidth="200px"
|
|
87
|
+
>
|
|
88
|
+
<div slot="header" class="app-header">
|
|
89
|
+
<div class="header-left">
|
|
90
|
+
<h1>My Application</h1>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="header-right">
|
|
93
|
+
<Button variant="outlined">Profile</Button>
|
|
94
|
+
<Button type="primary">Logout</Button>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<div slot="sidebar" class="app-sidebar">
|
|
99
|
+
<NavigatorMenu
|
|
100
|
+
items={menuItems}
|
|
101
|
+
on:select={(e) => currentPage = e.detail.text}
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<main class="app-content">
|
|
106
|
+
<h2>{currentPage}</h2>
|
|
107
|
+
<p>Content for {currentPage} page goes here...</p>
|
|
108
|
+
</main>
|
|
109
|
+
</SidebarLayout>
|
|
110
|
+
|
|
111
|
+
<style>
|
|
112
|
+
.app-header {
|
|
113
|
+
display: flex;
|
|
114
|
+
justify-content: space-between;
|
|
115
|
+
align-items: center;
|
|
116
|
+
padding: 0 20px;
|
|
117
|
+
background: #f5f5f5;
|
|
118
|
+
border-bottom: 1px solid #e0e0e0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.header-right {
|
|
122
|
+
display: flex;
|
|
123
|
+
gap: 10px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.app-sidebar {
|
|
127
|
+
padding: 20px 0;
|
|
128
|
+
background: #fafafa;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.app-content {
|
|
132
|
+
padding: 20px;
|
|
133
|
+
}
|
|
134
|
+
</style>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Collapsible Sidebar Layout
|
|
138
|
+
|
|
139
|
+
```svelte
|
|
140
|
+
<script lang="ts">
|
|
141
|
+
import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
|
|
142
|
+
import IconButton from '@ticatec/uniface-element/IconButton';
|
|
143
|
+
|
|
144
|
+
let sidebarCollapsed = false;
|
|
145
|
+
let sidebarWidth = sidebarCollapsed ? '60px' : '250px';
|
|
146
|
+
|
|
147
|
+
const toggleSidebar = () => {
|
|
148
|
+
sidebarCollapsed = !sidebarCollapsed;
|
|
149
|
+
sidebarWidth = sidebarCollapsed ? '60px' : '250px';
|
|
150
|
+
};
|
|
151
|
+
</script>
|
|
152
|
+
|
|
153
|
+
<SidebarLayout
|
|
154
|
+
sidebarResize={false}
|
|
155
|
+
{sidebarWidth}
|
|
156
|
+
headerHeight="50px"
|
|
157
|
+
>
|
|
158
|
+
<div slot="header" class="header-with-toggle">
|
|
159
|
+
<IconButton
|
|
160
|
+
icon="menu"
|
|
161
|
+
on:click={toggleSidebar}
|
|
162
|
+
title={sidebarCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}
|
|
163
|
+
/>
|
|
164
|
+
<h1>Dashboard</h1>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div slot="sidebar" class="collapsible-sidebar">
|
|
168
|
+
{#if sidebarCollapsed}
|
|
169
|
+
<div class="sidebar-icons">
|
|
170
|
+
<IconButton icon="dashboard" title="Dashboard" />
|
|
171
|
+
<IconButton icon="people" title="Users" />
|
|
172
|
+
<IconButton icon="settings" title="Settings" />
|
|
173
|
+
</div>
|
|
174
|
+
{:else}
|
|
175
|
+
<nav class="sidebar-nav">
|
|
176
|
+
<a href="#dashboard">Dashboard</a>
|
|
177
|
+
<a href="#users">Users</a>
|
|
178
|
+
<a href="#settings">Settings</a>
|
|
179
|
+
</nav>
|
|
180
|
+
{/if}
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<div class="main-content">
|
|
184
|
+
<p>Main application content</p>
|
|
185
|
+
</div>
|
|
186
|
+
</SidebarLayout>
|
|
187
|
+
|
|
188
|
+
<style>
|
|
189
|
+
.header-with-toggle {
|
|
190
|
+
display: flex;
|
|
191
|
+
align-items: center;
|
|
192
|
+
gap: 15px;
|
|
193
|
+
padding: 0 20px;
|
|
194
|
+
background: white;
|
|
195
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.collapsible-sidebar {
|
|
199
|
+
background: #2c3e50;
|
|
200
|
+
color: white;
|
|
201
|
+
transition: all 0.3s ease;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.sidebar-icons {
|
|
205
|
+
display: flex;
|
|
206
|
+
flex-direction: column;
|
|
207
|
+
padding: 20px 5px;
|
|
208
|
+
gap: 10px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.sidebar-nav {
|
|
212
|
+
padding: 20px 0;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.sidebar-nav a {
|
|
216
|
+
display: block;
|
|
217
|
+
padding: 12px 20px;
|
|
218
|
+
color: white;
|
|
219
|
+
text-decoration: none;
|
|
220
|
+
transition: background-color 0.2s;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.sidebar-nav a:hover {
|
|
224
|
+
background-color: rgba(255,255,255,0.1);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.main-content {
|
|
228
|
+
padding: 30px;
|
|
229
|
+
}
|
|
230
|
+
</style>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Best Practices
|
|
234
|
+
|
|
235
|
+
1. **Sidebar Content**: Keep sidebar content organized and easily scannable
|
|
236
|
+
2. **Responsive Design**: Consider how the layout behaves on smaller screens
|
|
237
|
+
3. **Resize Limits**: Set appropriate minimum and maximum widths for the sidebar
|
|
238
|
+
4. **Header Usage**: Use the header slot for consistent navigation across pages
|
|
239
|
+
5. **Content Hierarchy**: Organize main content with proper heading structure
|
|
240
|
+
6. **Performance**: Avoid heavy components in the sidebar that might affect resize performance
|
|
241
|
+
|
|
242
|
+
## Accessibility Considerations
|
|
243
|
+
|
|
244
|
+
- Ensure keyboard navigation works properly across all sections
|
|
245
|
+
- Provide appropriate ARIA labels for resize handles and navigation elements
|
|
246
|
+
- Maintain focus management when sidebar is collapsed/expanded
|
|
247
|
+
- Use semantic HTML elements (nav, main, header) within slots
|
|
248
|
+
- Ensure color contrast meets accessibility standards
|
|
249
|
+
|
|
250
|
+
## Browser Support
|
|
251
|
+
|
|
252
|
+
- Modern browsers with CSS Grid and Flexbox support
|
|
253
|
+
- Resize functionality requires pointer events support
|
|
254
|
+
- Smooth animations work in browsers supporting CSS transitions
|
|
255
|
+
|
|
256
|
+
## Notes
|
|
257
|
+
|
|
258
|
+
- The component uses the Split component internally for resize functionality
|
|
259
|
+
- You can specify minimum and maximum widths for the sidebar when resizing
|
|
260
|
+
- The layout automatically adapts to the provided dimensions and slot content
|
|
261
|
+
- Header slot is optional - the layout works without it
|
|
262
|
+
- All dimensions can be specified in any valid CSS unit (px, %, rem, etc.)
|