@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,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.)