@ticatec/uniface-element 0.2.0 → 0.2.1

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 (126) hide show
  1. package/README.md +273 -1
  2. package/README_CN.md +341 -0
  3. package/dist/common/MouseClickHandler.d.ts +1 -1
  4. package/dist/dialog/CommonDialog.svelte +6 -3
  5. package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
  6. package/dist/dialog/Dialog.svelte +36 -10
  7. package/dist/dialog/Dialog.svelte.d.ts +4 -3
  8. package/dist/dialog/DialogBoard.svelte +11 -8
  9. package/dist/dialog/DialogWrapper.svelte +10 -0
  10. package/dist/dialog/DialogWrapper.svelte.d.ts +22 -0
  11. package/dist/dialog/Dialogs.js +1 -1
  12. package/dist/dialog/ModalResult.d.ts +5 -0
  13. package/dist/dialog/ModalResult.js +5 -0
  14. package/docs/buttons/cn/ActionBar.md +459 -0
  15. package/docs/buttons/cn/Button.md +228 -0
  16. package/docs/buttons/cn/IconButton.md +294 -0
  17. package/docs/buttons/cn/README.md +600 -0
  18. package/docs/buttons/cn/TextButton.md +163 -0
  19. package/docs/buttons/en/ActionBar.md +459 -0
  20. package/docs/buttons/en/Button.md +228 -0
  21. package/docs/buttons/en/IconButton.md +294 -0
  22. package/docs/buttons/en/README.md +600 -0
  23. package/docs/buttons/en/TextButton.md +163 -0
  24. package/docs/containers/cn/accordion.md +622 -0
  25. package/docs/containers/cn/box.md +445 -0
  26. package/docs/containers/cn/card.md +404 -0
  27. package/docs/containers/cn/page.md +576 -0
  28. package/docs/containers/cn/tabs.md +686 -0
  29. package/docs/containers/en/accordion.md +622 -0
  30. package/docs/containers/en/box.md +445 -0
  31. package/docs/containers/en/card.md +404 -0
  32. package/docs/containers/en/page.md +576 -0
  33. package/docs/containers/en/tabs.md +686 -0
  34. package/docs/data-display/cn/concise-data-table.md +731 -0
  35. package/docs/data-display/cn/listbox.md +786 -0
  36. package/docs/data-display/cn/treeview.md +863 -0
  37. package/docs/data-display/en/concise-data-table.md +732 -0
  38. package/docs/data-display/en/listbox.md +786 -0
  39. package/docs/data-display/en/treeview.md +863 -0
  40. package/docs/data-table/cn/README.md +596 -0
  41. package/docs/data-table/en/README.md +596 -0
  42. package/docs/dialog/cn/README.md +767 -0
  43. package/docs/dialog/en/README.md +767 -0
  44. package/docs/form/cn/README.md +847 -0
  45. package/docs/form/en/README.md +847 -0
  46. package/docs/form-components/cn/README.md +495 -0
  47. package/docs/form-components/cn/attachmentfilesfield.md +757 -0
  48. package/docs/form-components/cn/cascade-options-select.md +374 -0
  49. package/docs/form-components/cn/checkbox.md +58 -0
  50. package/docs/form-components/cn/date-picker.md +138 -0
  51. package/docs/form-components/cn/datetime-picker.md +228 -0
  52. package/docs/form-components/cn/group-checkbox.md +405 -0
  53. package/docs/form-components/cn/group-radiobox.md +525 -0
  54. package/docs/form-components/cn/imagefilesfield.md +651 -0
  55. package/docs/form-components/cn/input-options-select.md +250 -0
  56. package/docs/form-components/cn/lookup-editor.md +406 -0
  57. package/docs/form-components/cn/memoeditor.md +409 -0
  58. package/docs/form-components/cn/number-editor.md +261 -0
  59. package/docs/form-components/cn/options-multi-select.md +177 -0
  60. package/docs/form-components/cn/options-select.md +83 -0
  61. package/docs/form-components/cn/passwordeditor.md +538 -0
  62. package/docs/form-components/cn/prompts-text-editor.md +241 -0
  63. package/docs/form-components/cn/radiobutton.md +84 -0
  64. package/docs/form-components/cn/switch.md +178 -0
  65. package/docs/form-components/cn/text-editor.md +142 -0
  66. package/docs/form-components/cn/time-editor.md +159 -0
  67. package/docs/form-components/cn/unit-number-editor.md +164 -0
  68. package/docs/form-components/en/README.md +463 -0
  69. package/docs/form-components/en/attachmentfilesfield.md +757 -0
  70. package/docs/form-components/en/cascade-options-select.md +358 -0
  71. package/docs/form-components/en/checkbox.md +59 -0
  72. package/docs/form-components/en/date-picker.md +138 -0
  73. package/docs/form-components/en/datetime-picker.md +228 -0
  74. package/docs/form-components/en/group-checkbox.md +395 -0
  75. package/docs/form-components/en/group-radiobox.md +498 -0
  76. package/docs/form-components/en/imagefilesfield.md +651 -0
  77. package/docs/form-components/en/input-options-select.md +239 -0
  78. package/docs/form-components/en/lookup-editor.md +389 -0
  79. package/docs/form-components/en/memoeditor.md +409 -0
  80. package/docs/form-components/en/number-editor.md +249 -0
  81. package/docs/form-components/en/options-multi-select.md +177 -0
  82. package/docs/form-components/en/options-select.md +83 -0
  83. package/docs/form-components/en/passwordeditor.md +538 -0
  84. package/docs/form-components/en/prompts-text-editor.md +241 -0
  85. package/docs/form-components/en/radiobutton.md +84 -0
  86. package/docs/form-components/en/switch.md +180 -0
  87. package/docs/form-components/en/text-editor.md +142 -0
  88. package/docs/form-components/en/time-editor.md +159 -0
  89. package/docs/form-components/en/unit-number-editor.md +164 -0
  90. package/docs/form-layout/cn/criteria-field.md +652 -0
  91. package/docs/form-layout/cn/flex-form.md +454 -0
  92. package/docs/form-layout/cn/flex-row-form.md +542 -0
  93. package/docs/form-layout/cn/form-field.md +923 -0
  94. package/docs/form-layout/cn/grid-form.md +676 -0
  95. package/docs/form-layout/en/criteria-field.md +652 -0
  96. package/docs/form-layout/en/flex-form.md +454 -0
  97. package/docs/form-layout/en/flex-row-form.md +542 -0
  98. package/docs/form-layout/en/form-field.md +923 -0
  99. package/docs/form-layout/en/grid-form.md +676 -0
  100. package/docs/global/cn/README.md +534 -0
  101. package/docs/global/en/README.md +534 -0
  102. package/docs/layout/cn/classiclayout.md +460 -0
  103. package/docs/layout/cn/headerlayout.md +524 -0
  104. package/docs/layout/cn/sidebarlayout.md +263 -0
  105. package/docs/layout/en/classiclayout.md +951 -0
  106. package/docs/layout/en/headerlayout.md +524 -0
  107. package/docs/layout/en/sidebarlayout.md +262 -0
  108. package/docs/misc/cn/README.md +1217 -0
  109. package/docs/misc/en/README.md +1217 -0
  110. package/docs/navigation/cn/breadcrumb.md +291 -0
  111. package/docs/navigation/cn/navigator.md +322 -0
  112. package/docs/navigation/cn/navigatormenu.md +512 -0
  113. package/docs/navigation/cn/progressbar.md +199 -0
  114. package/docs/navigation/cn/progressstepbar.md +299 -0
  115. package/docs/navigation/en/breadcrumb.md +291 -0
  116. package/docs/navigation/en/navigator.md +322 -0
  117. package/docs/navigation/en/navigatormenu.md +512 -0
  118. package/docs/navigation/en/progressbar.md +199 -0
  119. package/docs/navigation/en/progressstepbar.md +299 -0
  120. package/docs/search-filters/cn/daterange.md +1156 -0
  121. package/docs/search-filters/cn/numberrange.md +688 -0
  122. package/docs/search-filters/cn/searchbox.md +1582 -0
  123. package/docs/search-filters/en/daterange.md +1156 -0
  124. package/docs/search-filters/en/numberrange.md +688 -0
  125. package/docs/search-filters/en/searchbox.md +1582 -0
  126. package/package.json +38 -5
@@ -0,0 +1,263 @@
1
+ # 侧边栏布局 SidebarLayout
2
+
3
+ SidebarLayout组件提供了一个灵活的布局,包含侧边栏、头部和主要内容区域。侧边栏可以动态调整大小,并且布局会根据提供的属性进行适配。
4
+
5
+ ## 功能特性
6
+
7
+ - **灵活侧边栏**:可调整大小的侧边栏,支持配置最小和最大宽度
8
+ - **头部支持**:可选的头部区域,用于导航或品牌展示
9
+ - **响应式设计**:适应不同屏幕尺寸和配置
10
+ - **分割面板集成**:使用Split组件实现平滑的调整大小功能
11
+ - **可定制尺寸**:所有区域的高度和宽度都可配置
12
+
13
+ ## 导入
14
+
15
+ ```typescript
16
+ import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
17
+ ```
18
+
19
+ ## 属性
20
+
21
+ | 属性 | 类型 | 默认值 | 描述 |
22
+ |------|------|--------|------|
23
+ | `sidebarResize` | `boolean` | `false` | 如果设置为 true,则启用侧边栏调整大小功能 |
24
+ | `headerHeight` | `string` | `"48px"` | 设置头部的高度 |
25
+ | `sidebarWidth` | `string` | `"300px"` | 设置侧边栏的初始宽度 |
26
+ | `sidebarMaxWidth` | `string \| null` | `null` | 设置调整大小时侧边栏的最大宽度 |
27
+ | `sidebarMinWidth` | `string \| null` | `null` | 设置调整大小时侧边栏的最小宽度 |
28
+
29
+ ## 插槽
30
+
31
+ - **sidebar**: 要在侧边栏中显示的内容
32
+ - **header**: 要在头部中显示的内容(可选)
33
+ - **Default Slot**: 要在主要区域显示的主要内容
34
+
35
+ ## 基本用法
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
+ headerHeight="60px"
45
+ sidebarWidth="250px"
46
+ sidebarMaxWidth="400px"
47
+ sidebarMinWidth="200px"
48
+ >
49
+ <div slot="sidebar">
50
+ <p>侧边栏内容</p>
51
+ </div>
52
+
53
+ <div slot="header">
54
+ <h1>头部内容</h1>
55
+ </div>
56
+
57
+ <div>
58
+ <p>主要内容区域</p>
59
+ </div>
60
+ </SidebarLayout>
61
+ ```
62
+
63
+ ## 高级示例
64
+
65
+ ### 带导航的应用程序布局
66
+
67
+ ```svelte
68
+ <script lang="ts">
69
+ import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
70
+ import NavigatorMenu from '@ticatec/uniface-element/NavigatorMenu';
71
+ import Button from '@ticatec/uniface-element/Button';
72
+
73
+ let menuItems = [
74
+ { id: 1, text: '仪表板', icon: 'dashboard' },
75
+ { id: 2, text: '用户管理', icon: 'people' },
76
+ { id: 3, text: '系统设置', icon: 'settings' }
77
+ ];
78
+
79
+ let currentPage = '仪表板';
80
+ </script>
81
+
82
+ <SidebarLayout
83
+ sidebarResize={true}
84
+ headerHeight="60px"
85
+ sidebarWidth="280px"
86
+ sidebarMaxWidth="400px"
87
+ sidebarMinWidth="200px"
88
+ >
89
+ <div slot="header" class="app-header">
90
+ <div class="header-left">
91
+ <h1>我的应用程序</h1>
92
+ </div>
93
+ <div class="header-right">
94
+ <Button variant="outlined">个人资料</Button>
95
+ <Button type="primary">退出登录</Button>
96
+ </div>
97
+ </div>
98
+
99
+ <div slot="sidebar" class="app-sidebar">
100
+ <NavigatorMenu
101
+ items={menuItems}
102
+ on:select={(e) => currentPage = e.detail.text}
103
+ />
104
+ </div>
105
+
106
+ <main class="app-content">
107
+ <h2>{currentPage}</h2>
108
+ <p>{currentPage}页面的内容显示在这里...</p>
109
+ </main>
110
+ </SidebarLayout>
111
+
112
+ <style>
113
+ .app-header {
114
+ display: flex;
115
+ justify-content: space-between;
116
+ align-items: center;
117
+ padding: 0 20px;
118
+ background: #f5f5f5;
119
+ border-bottom: 1px solid #e0e0e0;
120
+ }
121
+
122
+ .header-right {
123
+ display: flex;
124
+ gap: 10px;
125
+ }
126
+
127
+ .app-sidebar {
128
+ padding: 20px 0;
129
+ background: #fafafa;
130
+ }
131
+
132
+ .app-content {
133
+ padding: 20px;
134
+ }
135
+ </style>
136
+ ```
137
+
138
+ ### 可折叠侧边栏布局
139
+
140
+ ```svelte
141
+ <script lang="ts">
142
+ import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
143
+ import IconButton from '@ticatec/uniface-element/IconButton';
144
+
145
+ let sidebarCollapsed = false;
146
+ let sidebarWidth = sidebarCollapsed ? '60px' : '250px';
147
+
148
+ const toggleSidebar = () => {
149
+ sidebarCollapsed = !sidebarCollapsed;
150
+ sidebarWidth = sidebarCollapsed ? '60px' : '250px';
151
+ };
152
+ </script>
153
+
154
+ <SidebarLayout
155
+ sidebarResize={false}
156
+ {sidebarWidth}
157
+ headerHeight="50px"
158
+ >
159
+ <div slot="header" class="header-with-toggle">
160
+ <IconButton
161
+ icon="menu"
162
+ on:click={toggleSidebar}
163
+ title={sidebarCollapsed ? '展开侧边栏' : '折叠侧边栏'}
164
+ />
165
+ <h1>仪表板</h1>
166
+ </div>
167
+
168
+ <div slot="sidebar" class="collapsible-sidebar">
169
+ {#if sidebarCollapsed}
170
+ <div class="sidebar-icons">
171
+ <IconButton icon="dashboard" title="仪表板" />
172
+ <IconButton icon="people" title="用户管理" />
173
+ <IconButton icon="settings" title="系统设置" />
174
+ </div>
175
+ {:else}
176
+ <nav class="sidebar-nav">
177
+ <a href="#dashboard">仪表板</a>
178
+ <a href="#users">用户管理</a>
179
+ <a href="#settings">系统设置</a>
180
+ </nav>
181
+ {/if}
182
+ </div>
183
+
184
+ <div class="main-content">
185
+ <p>主应用程序内容</p>
186
+ </div>
187
+ </SidebarLayout>
188
+
189
+ <style>
190
+ .header-with-toggle {
191
+ display: flex;
192
+ align-items: center;
193
+ gap: 15px;
194
+ padding: 0 20px;
195
+ background: white;
196
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1);
197
+ }
198
+
199
+ .collapsible-sidebar {
200
+ background: #2c3e50;
201
+ color: white;
202
+ transition: all 0.3s ease;
203
+ }
204
+
205
+ .sidebar-icons {
206
+ display: flex;
207
+ flex-direction: column;
208
+ padding: 20px 5px;
209
+ gap: 10px;
210
+ }
211
+
212
+ .sidebar-nav {
213
+ padding: 20px 0;
214
+ }
215
+
216
+ .sidebar-nav a {
217
+ display: block;
218
+ padding: 12px 20px;
219
+ color: white;
220
+ text-decoration: none;
221
+ transition: background-color 0.2s;
222
+ }
223
+
224
+ .sidebar-nav a:hover {
225
+ background-color: rgba(255,255,255,0.1);
226
+ }
227
+
228
+ .main-content {
229
+ padding: 30px;
230
+ }
231
+ </style>
232
+ ```
233
+
234
+ ## 最佳实践
235
+
236
+ 1. **侧边栏内容**:保持侧边栏内容有序且易于扫描
237
+ 2. **响应式设计**:考虑布局在小屏幕上的表现
238
+ 3. **调整限制**:为侧边栏设置适当的最小和最大宽度
239
+ 4. **头部使用**:使用头部插槽在页面间保持导航一致性
240
+ 5. **内容层次**:使用合适的标题结构组织主要内容
241
+ 6. **性能考虑**:避免在侧边栏中放置可能影响调整大小性能的重型组件
242
+
243
+ ## 无障碍访问注意事项
244
+
245
+ - 确保键盘导航在所有区域都能正常工作
246
+ - 为调整大小手柄和导航元素提供适当的ARIA标签
247
+ - 在侧边栏折叠/展开时保持焦点管理
248
+ - 在插槽内使用语义化HTML元素(nav、main、header)
249
+ - 确保颜色对比度符合无障碍标准
250
+
251
+ ## 浏览器支持
252
+
253
+ - 支持CSS Grid和Flexbox的现代浏览器
254
+ - 调整大小功能需要指针事件支持
255
+ - 平滑动画需要支持CSS过渡的浏览器
256
+
257
+ ## 注意事项
258
+
259
+ - 该组件内部使用Split组件实现调整大小功能
260
+ - 你可以指定调整大小时侧边栏的最小和最大宽度
261
+ - 布局将自动适配提供的尺寸和插槽内容
262
+ - 头部插槽是可选的 - 没有头部插槽布局也能正常工作
263
+ - 所有尺寸都可以用任何有效的CSS单位指定(px、%、rem等)