@ticatec/uniface-element 0.1.71 → 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 (129) 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/data-table/UniDataTable.js +6 -0
  5. package/dist/data-table/lib/DataColumn.d.ts +4 -0
  6. package/dist/dialog/CommonDialog.svelte +6 -3
  7. package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
  8. package/dist/dialog/Dialog.svelte +36 -10
  9. package/dist/dialog/Dialog.svelte.d.ts +4 -3
  10. package/dist/dialog/DialogBoard.svelte +11 -8
  11. package/dist/dialog/DialogWrapper.svelte +10 -0
  12. package/dist/dialog/DialogWrapper.svelte.d.ts +22 -0
  13. package/dist/dialog/Dialogs.js +1 -1
  14. package/dist/dialog/ModalResult.d.ts +5 -0
  15. package/dist/dialog/ModalResult.js +5 -0
  16. package/dist/ticatec-uniface-web.css +7 -0
  17. package/docs/buttons/cn/ActionBar.md +459 -0
  18. package/docs/buttons/cn/Button.md +228 -0
  19. package/docs/buttons/cn/IconButton.md +294 -0
  20. package/docs/buttons/cn/README.md +600 -0
  21. package/docs/buttons/cn/TextButton.md +163 -0
  22. package/docs/buttons/en/ActionBar.md +459 -0
  23. package/docs/buttons/en/Button.md +228 -0
  24. package/docs/buttons/en/IconButton.md +294 -0
  25. package/docs/buttons/en/README.md +600 -0
  26. package/docs/buttons/en/TextButton.md +163 -0
  27. package/docs/containers/cn/accordion.md +622 -0
  28. package/docs/containers/cn/box.md +445 -0
  29. package/docs/containers/cn/card.md +404 -0
  30. package/docs/containers/cn/page.md +576 -0
  31. package/docs/containers/cn/tabs.md +686 -0
  32. package/docs/containers/en/accordion.md +622 -0
  33. package/docs/containers/en/box.md +445 -0
  34. package/docs/containers/en/card.md +404 -0
  35. package/docs/containers/en/page.md +576 -0
  36. package/docs/containers/en/tabs.md +686 -0
  37. package/docs/data-display/cn/concise-data-table.md +731 -0
  38. package/docs/data-display/cn/listbox.md +786 -0
  39. package/docs/data-display/cn/treeview.md +863 -0
  40. package/docs/data-display/en/concise-data-table.md +732 -0
  41. package/docs/data-display/en/listbox.md +786 -0
  42. package/docs/data-display/en/treeview.md +863 -0
  43. package/docs/data-table/cn/README.md +596 -0
  44. package/docs/data-table/en/README.md +596 -0
  45. package/docs/dialog/cn/README.md +767 -0
  46. package/docs/dialog/en/README.md +767 -0
  47. package/docs/form/cn/README.md +847 -0
  48. package/docs/form/en/README.md +847 -0
  49. package/docs/form-components/cn/README.md +495 -0
  50. package/docs/form-components/cn/attachmentfilesfield.md +757 -0
  51. package/docs/form-components/cn/cascade-options-select.md +374 -0
  52. package/docs/form-components/cn/checkbox.md +58 -0
  53. package/docs/form-components/cn/date-picker.md +138 -0
  54. package/docs/form-components/cn/datetime-picker.md +228 -0
  55. package/docs/form-components/cn/group-checkbox.md +405 -0
  56. package/docs/form-components/cn/group-radiobox.md +525 -0
  57. package/docs/form-components/cn/imagefilesfield.md +651 -0
  58. package/docs/form-components/cn/input-options-select.md +250 -0
  59. package/docs/form-components/cn/lookup-editor.md +406 -0
  60. package/docs/form-components/cn/memoeditor.md +409 -0
  61. package/docs/form-components/cn/number-editor.md +261 -0
  62. package/docs/form-components/cn/options-multi-select.md +177 -0
  63. package/docs/form-components/cn/options-select.md +83 -0
  64. package/docs/form-components/cn/passwordeditor.md +538 -0
  65. package/docs/form-components/cn/prompts-text-editor.md +241 -0
  66. package/docs/form-components/cn/radiobutton.md +84 -0
  67. package/docs/form-components/cn/switch.md +178 -0
  68. package/docs/form-components/cn/text-editor.md +142 -0
  69. package/docs/form-components/cn/time-editor.md +159 -0
  70. package/docs/form-components/cn/unit-number-editor.md +164 -0
  71. package/docs/form-components/en/README.md +463 -0
  72. package/docs/form-components/en/attachmentfilesfield.md +757 -0
  73. package/docs/form-components/en/cascade-options-select.md +358 -0
  74. package/docs/form-components/en/checkbox.md +59 -0
  75. package/docs/form-components/en/date-picker.md +138 -0
  76. package/docs/form-components/en/datetime-picker.md +228 -0
  77. package/docs/form-components/en/group-checkbox.md +395 -0
  78. package/docs/form-components/en/group-radiobox.md +498 -0
  79. package/docs/form-components/en/imagefilesfield.md +651 -0
  80. package/docs/form-components/en/input-options-select.md +239 -0
  81. package/docs/form-components/en/lookup-editor.md +389 -0
  82. package/docs/form-components/en/memoeditor.md +409 -0
  83. package/docs/form-components/en/number-editor.md +249 -0
  84. package/docs/form-components/en/options-multi-select.md +177 -0
  85. package/docs/form-components/en/options-select.md +83 -0
  86. package/docs/form-components/en/passwordeditor.md +538 -0
  87. package/docs/form-components/en/prompts-text-editor.md +241 -0
  88. package/docs/form-components/en/radiobutton.md +84 -0
  89. package/docs/form-components/en/switch.md +180 -0
  90. package/docs/form-components/en/text-editor.md +142 -0
  91. package/docs/form-components/en/time-editor.md +159 -0
  92. package/docs/form-components/en/unit-number-editor.md +164 -0
  93. package/docs/form-layout/cn/criteria-field.md +652 -0
  94. package/docs/form-layout/cn/flex-form.md +454 -0
  95. package/docs/form-layout/cn/flex-row-form.md +542 -0
  96. package/docs/form-layout/cn/form-field.md +923 -0
  97. package/docs/form-layout/cn/grid-form.md +676 -0
  98. package/docs/form-layout/en/criteria-field.md +652 -0
  99. package/docs/form-layout/en/flex-form.md +454 -0
  100. package/docs/form-layout/en/flex-row-form.md +542 -0
  101. package/docs/form-layout/en/form-field.md +923 -0
  102. package/docs/form-layout/en/grid-form.md +676 -0
  103. package/docs/global/cn/README.md +534 -0
  104. package/docs/global/en/README.md +534 -0
  105. package/docs/layout/cn/classiclayout.md +460 -0
  106. package/docs/layout/cn/headerlayout.md +524 -0
  107. package/docs/layout/cn/sidebarlayout.md +263 -0
  108. package/docs/layout/en/classiclayout.md +951 -0
  109. package/docs/layout/en/headerlayout.md +524 -0
  110. package/docs/layout/en/sidebarlayout.md +262 -0
  111. package/docs/misc/cn/README.md +1217 -0
  112. package/docs/misc/en/README.md +1217 -0
  113. package/docs/navigation/cn/breadcrumb.md +291 -0
  114. package/docs/navigation/cn/navigator.md +322 -0
  115. package/docs/navigation/cn/navigatormenu.md +512 -0
  116. package/docs/navigation/cn/progressbar.md +199 -0
  117. package/docs/navigation/cn/progressstepbar.md +299 -0
  118. package/docs/navigation/en/breadcrumb.md +291 -0
  119. package/docs/navigation/en/navigator.md +322 -0
  120. package/docs/navigation/en/navigatormenu.md +512 -0
  121. package/docs/navigation/en/progressbar.md +199 -0
  122. package/docs/navigation/en/progressstepbar.md +299 -0
  123. package/docs/search-filters/cn/daterange.md +1156 -0
  124. package/docs/search-filters/cn/numberrange.md +688 -0
  125. package/docs/search-filters/cn/searchbox.md +1582 -0
  126. package/docs/search-filters/en/daterange.md +1156 -0
  127. package/docs/search-filters/en/numberrange.md +688 -0
  128. package/docs/search-filters/en/searchbox.md +1582 -0
  129. package/package.json +38 -5
@@ -0,0 +1,294 @@
1
+ # IconButton 组件
2
+
3
+ `IconButton` 组件专为紧凑界面中的纯图标按钮而设计。
4
+
5
+ ## 基础用法
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import IconButton from '@ticatec/uniface-element/IconButton';
10
+
11
+ const handleEdit = async (event: MouseEvent) => {
12
+ // 处理编辑操作
13
+ };
14
+ </script>
15
+
16
+ <IconButton
17
+ icon="icon_google_edit"
18
+ type="primary"
19
+ onClick={handleEdit}
20
+ />
21
+ ```
22
+
23
+ ## 使用示例
24
+
25
+ ```svelte
26
+ <script lang="ts">
27
+ import IconButton from '@ticatec/uniface-element/IconButton';
28
+
29
+ const toolbarActions = {
30
+ edit: async () => { /* 编辑逻辑 */ },
31
+ delete: async () => { /* 删除逻辑 */ },
32
+ share: async () => { /* 分享逻辑 */ },
33
+ favorite: async () => { /* 收藏逻辑 */ }
34
+ };
35
+ </script>
36
+
37
+ <!-- 工具栏图标按钮 -->
38
+ <div class="toolbar">
39
+ <IconButton icon="icon_google_edit" type="default" onClick={toolbarActions.edit} />
40
+ <IconButton icon="icon_google_delete" type="third" onClick={toolbarActions.delete} />
41
+ <IconButton icon="icon_google_share" type="secondary" onClick={toolbarActions.share} />
42
+ <IconButton icon="icon_google_favorite" type="primary" onClick={toolbarActions.favorite} />
43
+ </div>
44
+
45
+ <!-- 不同大小 -->
46
+ <IconButton icon="icon_google_settings" size="big" onClick={toolbarActions.edit} />
47
+ <IconButton icon="icon_google_settings" size="medium" onClick={toolbarActions.edit} />
48
+ <IconButton icon="icon_google_settings" size="mini" onClick={toolbarActions.edit} />
49
+
50
+ <!-- 带自定义插槽内容 -->
51
+ <IconButton type="primary" onClick={toolbarActions.edit}>
52
+ <i class="icon_google_edit"></i>
53
+ </IconButton>
54
+
55
+ <style>
56
+ .toolbar {
57
+ display: flex;
58
+ gap: 8px;
59
+ align-items: center;
60
+ }
61
+ </style>
62
+ ```
63
+
64
+ ## 属性
65
+
66
+ | 属性 | 类型 | 默认值 | 描述 |
67
+ |------|------|--------|------|
68
+ | `icon` | `string` | `''` | 图标类(如 Google Material Icons) |
69
+ | `type` | `ButtonType` | `'default'` | 视觉样式变体 |
70
+ | `size` | `'big' \| 'medium' \| 'mini'` | `'medium'` | 按钮大小 |
71
+ | `disabled` | `boolean` | `false` | 禁用按钮交互 |
72
+ | `style` | `string` | `''` | 自定义 CSS 样式 |
73
+ | `onClick` | `(event: MouseEvent) => void` | - | 点击事件处理器 |
74
+
75
+ ## 样式变体
76
+
77
+ ### ButtonType 选项
78
+
79
+ ```typescript
80
+ type ButtonType = 'default' | 'primary' | 'secondary' | 'third' | 'forth';
81
+ ```
82
+
83
+ ### 视觉外观
84
+
85
+ - **default**: 标准中性按钮外观
86
+ - **primary**: 强调主要操作的按钮(通常为蓝色)
87
+ - **secondary**: 次要操作按钮(通常为灰色)
88
+ - **third**: 替代样式(通常用于警告/注意)
89
+ - **forth**: 附加样式变体
90
+
91
+ ### 大小变体
92
+
93
+ - **big**: 大图标按钮,用于突出操作
94
+ - **medium**: 标准图标按钮,适用于大多数使用场景
95
+ - **mini**: 小图标按钮,用于紧凑界面
96
+
97
+ ## 常用图标
98
+
99
+ 使用 `@ticatec/uniface-google-material-icons` 图标库:
100
+
101
+ ```svelte
102
+ <!-- 编辑操作 -->
103
+ <IconButton icon="icon_google_edit" />
104
+ <IconButton icon="icon_google_create" />
105
+ <IconButton icon="icon_google_mode_edit" />
106
+
107
+ <!-- 删除操作 -->
108
+ <IconButton icon="icon_google_delete" type="third" />
109
+ <IconButton icon="icon_google_delete_forever" type="third" />
110
+ <IconButton icon="icon_google_remove" type="third" />
111
+
112
+ <!-- 查看操作 -->
113
+ <IconButton icon="icon_google_visibility" />
114
+ <IconButton icon="icon_google_preview" />
115
+ <IconButton icon="icon_google_search" />
116
+
117
+ <!-- 设置操作 -->
118
+ <IconButton icon="icon_google_settings" />
119
+ <IconButton icon="icon_google_tune" />
120
+ <IconButton icon="icon_google_more_vert" />
121
+
122
+ <!-- 导航操作 -->
123
+ <IconButton icon="icon_google_arrow_back" />
124
+ <IconButton icon="icon_google_arrow_forward" />
125
+ <IconButton icon="icon_google_close" />
126
+
127
+ <!-- 状态操作 -->
128
+ <IconButton icon="icon_google_favorite" type="primary" />
129
+ <IconButton icon="icon_google_star" type="primary" />
130
+ <IconButton icon="icon_google_bookmark" />
131
+ ```
132
+
133
+ ## 使用场景
134
+
135
+ IconButton 组件特别适合以下场景:
136
+
137
+ - 数据表格行操作
138
+ - 工具栏按钮
139
+ - 卡片操作
140
+ - 紧凑的导航控件
141
+ - 状态切换按钮
142
+
143
+ ## 最佳实践
144
+
145
+ ### 数据表格行操作
146
+
147
+ ```svelte
148
+ <script lang="ts">
149
+ import IconButton from '@ticatec/uniface-element/IconButton';
150
+
151
+ export let item: any;
152
+ export let onEdit: (item: any) => Promise<void>;
153
+ export let onDelete: (item: any) => Promise<void>;
154
+ export let onView: (item: any) => Promise<void>;
155
+ </script>
156
+
157
+ <div class="table-actions">
158
+ <IconButton
159
+ icon="icon_google_visibility"
160
+ type="default"
161
+ onClick={async () => await onView(item)}
162
+ />
163
+ <IconButton
164
+ icon="icon_google_edit"
165
+ type="primary"
166
+ onClick={async () => await onEdit(item)}
167
+ />
168
+ <IconButton
169
+ icon="icon_google_delete"
170
+ type="third"
171
+ onClick={async () => await onDelete(item)}
172
+ />
173
+ </div>
174
+
175
+ <style>
176
+ .table-actions {
177
+ display: flex;
178
+ gap: 4px;
179
+ }
180
+ </style>
181
+ ```
182
+
183
+ ### 卡片操作栏
184
+
185
+ ```svelte
186
+ <script lang="ts">
187
+ import IconButton from '@ticatec/uniface-element/IconButton';
188
+
189
+ let isFavorite = false;
190
+ let isBookmarked = false;
191
+
192
+ const toggleFavorite = async () => {
193
+ isFavorite = !isFavorite;
194
+ // 保存状态到服务器
195
+ };
196
+
197
+ const toggleBookmark = async () => {
198
+ isBookmarked = !isBookmarked;
199
+ // 保存状态到服务器
200
+ };
201
+
202
+ const shareContent = async () => {
203
+ // 分享功能
204
+ };
205
+ </script>
206
+
207
+ <div class="card-actions">
208
+ <IconButton
209
+ icon={isFavorite ? "icon_google_favorite" : "icon_google_favorite_border"}
210
+ type={isFavorite ? "primary" : "default"}
211
+ onClick={toggleFavorite}
212
+ />
213
+ <IconButton
214
+ icon={isBookmarked ? "icon_google_bookmark" : "icon_google_bookmark_border"}
215
+ type={isBookmarked ? "primary" : "default"}
216
+ onClick={toggleBookmark}
217
+ />
218
+ <IconButton
219
+ icon="icon_google_share"
220
+ type="secondary"
221
+ onClick={shareContent}
222
+ />
223
+ </div>
224
+
225
+ <style>
226
+ .card-actions {
227
+ display: flex;
228
+ gap: 8px;
229
+ justify-content: flex-end;
230
+ padding: 8px 0;
231
+ }
232
+ </style>
233
+ ```
234
+
235
+ ### 工具栏布局
236
+
237
+ ```svelte
238
+ <script lang="ts">
239
+ import IconButton from '@ticatec/uniface-element/IconButton';
240
+
241
+ const toolbarActions = {
242
+ save: async () => { /* 保存 */ },
243
+ undo: async () => { /* 撤销 */ },
244
+ redo: async () => { /* 重做 */ },
245
+ settings: async () => { /* 设置 */ }
246
+ };
247
+ </script>
248
+
249
+ <div class="editor-toolbar">
250
+ <div class="toolbar-group">
251
+ <IconButton icon="icon_google_save" type="primary" onClick={toolbarActions.save} />
252
+ </div>
253
+
254
+ <div class="toolbar-divider"></div>
255
+
256
+ <div class="toolbar-group">
257
+ <IconButton icon="icon_google_undo" onClick={toolbarActions.undo} />
258
+ <IconButton icon="icon_google_redo" onClick={toolbarActions.redo} />
259
+ </div>
260
+
261
+ <div class="toolbar-divider"></div>
262
+
263
+ <div class="toolbar-group">
264
+ <IconButton icon="icon_google_settings" onClick={toolbarActions.settings} />
265
+ </div>
266
+ </div>
267
+
268
+ <style>
269
+ .editor-toolbar {
270
+ display: flex;
271
+ align-items: center;
272
+ gap: 8px;
273
+ padding: 8px;
274
+ border-bottom: 1px solid #e0e0e0;
275
+ background: #f8f9fa;
276
+ }
277
+
278
+ .toolbar-group {
279
+ display: flex;
280
+ gap: 4px;
281
+ }
282
+
283
+ .toolbar-divider {
284
+ width: 1px;
285
+ height: 24px;
286
+ background: #d0d0d0;
287
+ margin: 0 4px;
288
+ }
289
+ </style>
290
+ ```
291
+
292
+ ## 点击节流
293
+
294
+ IconButton 组件实现了自动点击节流,具有 500ms 冷却时间,以防止意外的双击并确保正确的异步操作处理。