@ticatec/uniface-element 0.2.3 → 0.3.0

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 (178) hide show
  1. package/dist/accordion/README.md +169 -0
  2. package/dist/accordion/README_CN.md +176 -0
  3. package/dist/action-bar/README.md +275 -0
  4. package/dist/action-bar/README_CN.md +285 -0
  5. package/dist/app-layout/README.md +374 -0
  6. package/dist/app-layout/README_CN.md +381 -0
  7. package/dist/app-top-bar/README.md +357 -0
  8. package/dist/app-top-bar/README_CN.md +365 -0
  9. package/dist/attachment-files/AttachmentFilesField.svelte +67 -1
  10. package/dist/attachment-files/AttachmentFilesField.svelte.d.ts +8 -1
  11. package/dist/base-calendar/CalendarBase.svelte +0 -3
  12. package/dist/box/README.md +385 -0
  13. package/dist/box/README_CN.md +393 -0
  14. package/dist/breadcrumbs/README.md +442 -0
  15. package/dist/breadcrumbs/README_CN.md +442 -0
  16. package/dist/button/Button.svelte +27 -7
  17. package/dist/button/Button.svelte.d.ts +3 -1
  18. package/dist/button/IconButton.svelte +26 -6
  19. package/dist/button/IconButton.svelte.d.ts +3 -1
  20. package/dist/button/IconButton_README.md +513 -0
  21. package/dist/button/IconButton_README_CN.md +513 -0
  22. package/dist/button/README.md +428 -0
  23. package/dist/button/README_CN.md +428 -0
  24. package/dist/button/TextButton.svelte +26 -6
  25. package/dist/button/TextButton.svelte.d.ts +3 -1
  26. package/dist/button/TextButton_README.md +571 -0
  27. package/dist/button/TextButton_README_CN.md +571 -0
  28. package/dist/card/README.md +666 -0
  29. package/dist/card/README_CN.md +666 -0
  30. package/dist/cascade-options-select/CascadeOptionSelect.svelte +43 -7
  31. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +3 -4
  32. package/dist/cascade-options-select/README.md +663 -2
  33. package/dist/cascade-options-select/README_CN.md +664 -0
  34. package/dist/checkbox/CheckBox.svelte +20 -6
  35. package/dist/checkbox/CheckBox.svelte.d.ts +4 -2
  36. package/dist/checkbox/README.md +562 -0
  37. package/dist/checkbox/README_CN.md +727 -0
  38. package/dist/common-editor/NumberInput.svelte +39 -26
  39. package/dist/common-editor/NumberInput.svelte.d.ts +5 -1
  40. package/dist/concise-data-table/ConciseListTable.svelte +133 -36
  41. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +8 -1
  42. package/dist/concise-data-table/DataCell.svelte +5 -6
  43. package/dist/concise-data-table/DataRow.svelte +22 -2
  44. package/dist/concise-data-table/DataRow.svelte.d.ts +1 -0
  45. package/dist/concise-data-table/README.md +606 -0
  46. package/dist/concise-data-table/README_CN.md +611 -0
  47. package/dist/context-menu/ContextMenu.svelte +138 -21
  48. package/dist/context-menu/ContextMenu.svelte.d.ts +5 -0
  49. package/dist/context-menu/ContextMenuItem.d.ts +20 -4
  50. package/dist/context-menu/README.md +551 -0
  51. package/dist/context-menu/README_CN.md +551 -0
  52. package/dist/criteria-field/CriteriaField.svelte +3 -5
  53. package/dist/criteria-field/README.md +532 -0
  54. package/dist/criteria-field/README_CN.md +532 -0
  55. package/dist/data-table/README.md +712 -0
  56. package/dist/data-table/README_CN.md +712 -0
  57. package/dist/date-picker/DatePicker.svelte +44 -7
  58. package/dist/date-picker/DatePicker.svelte.d.ts +3 -4
  59. package/dist/date-picker/DateTimePicker.svelte +32 -8
  60. package/dist/date-picker/DateTimePicker.svelte.d.ts +3 -4
  61. package/dist/date-picker/README.md +326 -0
  62. package/dist/date-picker/README_CN.md +316 -0
  63. package/dist/date-picker/ScrollBar.svelte +18 -8
  64. package/dist/date-picker/ScrollBar.svelte.d.ts +1 -1
  65. package/dist/date-picker/TimePanel.svelte +5 -5
  66. package/dist/date-picker/TimePanel.svelte.d.ts +1 -1
  67. package/dist/date-range/README.md +374 -0
  68. package/dist/date-range/README_CN.md +374 -0
  69. package/dist/dialog/DialogBoard.svelte +1 -1
  70. package/dist/dialog/README.md +596 -0
  71. package/dist/dialog/README_CN.md +596 -0
  72. package/dist/drawer/README.md +679 -1
  73. package/dist/drawer/README_CN.md +679 -0
  74. package/dist/group-box/group-check-box/GroupCheckBox.svelte +62 -5
  75. package/dist/group-box/group-check-box/GroupCheckBox.svelte.d.ts +7 -2
  76. package/dist/group-box/group-check-box/README.md +749 -0
  77. package/dist/group-box/group-check-box/README_CN.md +750 -0
  78. package/dist/group-box/group-radio-box/GroupRadioBox.svelte +69 -4
  79. package/dist/group-box/group-radio-box/GroupRadioBox.svelte.d.ts +8 -2
  80. package/dist/group-box/group-radio-box/README.md +920 -0
  81. package/dist/group-box/group-radio-box/README_CN.md +920 -0
  82. package/dist/image-files/README.md +1346 -0
  83. package/dist/image-files/README_CN.md +1346 -0
  84. package/dist/input-options-select/InputOptionsSelect.svelte +161 -65
  85. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +4 -1
  86. package/dist/lib/forwardAllEvents.d.ts +3 -0
  87. package/dist/lib/forwardAllEvents.js +24 -0
  88. package/dist/list-box/README.md +579 -0
  89. package/dist/list-box/README_CN.md +682 -0
  90. package/dist/lookup-editor/LookupEditor.svelte +15 -3
  91. package/dist/lookup-editor/LookupEditor.svelte.d.ts +3 -4
  92. package/dist/lookup-editor/README.md +684 -0
  93. package/dist/lookup-editor/README_CN.md +684 -0
  94. package/dist/memo-editor/MemoEditor.svelte +77 -27
  95. package/dist/memo-editor/MemoEditor.svelte.d.ts +6 -3
  96. package/dist/memo-editor/README.md +819 -0
  97. package/dist/memo-editor/README_CN.md +819 -0
  98. package/dist/message-box/README.md +398 -0
  99. package/dist/message-box/README_CN.md +398 -0
  100. package/dist/number-editor/NumberEditor.svelte +2 -2
  101. package/dist/number-editor/NumberEditor.svelte.d.ts +1 -1
  102. package/dist/number-editor/README.md +353 -22
  103. package/dist/number-editor/README_CN.md +357 -0
  104. package/dist/number-range/README.md +443 -0
  105. package/dist/number-range/README_CN.md +443 -0
  106. package/dist/options-multi-select/OptionsMultiSelect.svelte +87 -12
  107. package/dist/options-multi-select/OptionsMultiSelect.svelte.d.ts +3 -1
  108. package/dist/options-multi-select/README.md +480 -0
  109. package/dist/options-multi-select/README_CN.md +480 -0
  110. package/dist/options-select/OptionsSelect.svelte +36 -5
  111. package/dist/options-select/OptionsSelect.svelte.d.ts +3 -4
  112. package/dist/options-select/README.md +632 -0
  113. package/dist/options-select/README_CN.md +632 -0
  114. package/dist/page/README.md +605 -0
  115. package/dist/page/README_CN.md +605 -0
  116. package/dist/pagination/README.md +946 -0
  117. package/dist/pagination/README_CN.md +946 -0
  118. package/dist/pagination-panel/README.md +1075 -0
  119. package/dist/pagination-panel/README_CN.md +1075 -0
  120. package/dist/popup-hint/README.md +841 -0
  121. package/dist/popup-hint/README_CN.md +840 -0
  122. package/dist/progress-bar/README.md +242 -0
  123. package/dist/progress-bar/README_CN.md +242 -0
  124. package/dist/progress-step-bar/README.md +316 -0
  125. package/dist/progress-step-bar/README_CN.md +316 -0
  126. package/dist/prompts-text-editor/PromptsTextEditor.svelte +6 -3
  127. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +3 -1
  128. package/dist/prompts-text-editor/README.md +329 -0
  129. package/dist/prompts-text-editor/README_CN.md +329 -0
  130. package/dist/property-editor/README.md +969 -0
  131. package/dist/property-editor/README_CN.md +969 -0
  132. package/dist/radio-button/README.md +372 -0
  133. package/dist/radio-button/README_CN.md +372 -0
  134. package/dist/radio-button/RadioButton.svelte +32 -3
  135. package/dist/radio-button/RadioButton.svelte.d.ts +12 -1
  136. package/dist/search-box/README.md +425 -0
  137. package/dist/search-box/README_CN.md +424 -0
  138. package/dist/search-box/SearchBox.svelte +22 -6
  139. package/dist/search-box/SearchBox.svelte.d.ts +4 -1
  140. package/dist/tabs/README.md +919 -0
  141. package/dist/tabs/README_CN.md +920 -0
  142. package/dist/tag/README.md +922 -0
  143. package/dist/tag/README_CN.md +922 -0
  144. package/dist/text-editor/PasswordEditor.svelte +17 -2
  145. package/dist/text-editor/PasswordEditor.svelte.d.ts +3 -3
  146. package/dist/text-editor/PasswordEditor_README.md +551 -0
  147. package/dist/text-editor/PasswordEditor_README_CN.md +551 -0
  148. package/dist/text-editor/README.md +466 -0
  149. package/dist/text-editor/README_CN.md +466 -0
  150. package/dist/text-editor/TextEditor.svelte +51 -19
  151. package/dist/text-editor/TextEditor.svelte.d.ts +0 -1
  152. package/dist/ticatec-uniface-web.css +1 -0
  153. package/dist/time-editor/README.md +498 -24
  154. package/dist/time-editor/README_CN.md +498 -0
  155. package/dist/time-editor/TimeEditor.svelte +7 -3
  156. package/dist/time-editor/TimeEditor.svelte.d.ts +3 -1
  157. package/dist/toast/README.md +667 -0
  158. package/dist/toast/README_CN.md +667 -0
  159. package/dist/transfer/README.md +795 -0
  160. package/dist/transfer/Transfer.svelte +6 -4
  161. package/dist/transfer/Transfer.svelte.d.ts +3 -1
  162. package/dist/tree-view/README.md +761 -0
  163. package/dist/tree-view/README_CN.md +761 -0
  164. package/dist/tree-view/TreeView.svelte +5 -3
  165. package/dist/tree-view/TreeView.svelte.d.ts +3 -1
  166. package/dist/unit-number-editor/README.md +546 -20
  167. package/dist/unit-number-editor/README_CN.md +525 -0
  168. package/dist/unit-number-editor/UnitNumberEditor.svelte +62 -8
  169. package/dist/unit-number-editor/UnitNumberEditor.svelte.d.ts +5 -1
  170. package/docs/form-field/cn/README_CN.md +364 -0
  171. package/docs/form-field/en/README.md +364 -0
  172. package/docs/form-panel/flex-form/cn/README_CN.md +586 -0
  173. package/docs/form-panel/flex-form/en/README.md +586 -0
  174. package/docs/form-panel/flex-row-form/cn/README_CN.md +787 -0
  175. package/docs/form-panel/flex-row-form/en/README.md +787 -0
  176. package/docs/form-panel/grid-form/en/README.md +744 -0
  177. package/package.json +1 -1
  178. package/dist/drawer/README-CN.md +0 -1
@@ -0,0 +1,532 @@
1
+ # CriteriaField Component
2
+
3
+ A simple layout component for creating consistent criteria and filter form fields with proper labeling and sizing. Perfect for search forms, filter panels, and criteria-based interfaces.
4
+
5
+ ## Features
6
+
7
+ - **Consistent Layout**: Standardized label and field arrangement
8
+ - **Flexible Sizing**: Multiple predefined size options
9
+ - **Custom Styling**: Flexible label and container styling
10
+ - **Clean Structure**: Simple and lightweight component design
11
+
12
+ ## Basic Usage
13
+
14
+ ```svelte
15
+ <script>
16
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
17
+ import TextEditor from '@ticatec/uniface-element/TextEditor';
18
+
19
+ let searchName = '';
20
+ </script>
21
+
22
+ <CriteriaField label="Name" size="x25">
23
+ <TextEditor
24
+ variant="outlined"
25
+ bind:value={searchName}
26
+ placeholder="Enter name to search"
27
+ />
28
+ </CriteriaField>
29
+ ```
30
+
31
+ ## Props
32
+
33
+ | Prop | Type | Default | Description |
34
+ |------|------|---------|-------------|
35
+ | `label` | `string` | `"Label"` | Label text for the field |
36
+ | `style` | `string` | `''` | Custom CSS styles for the container |
37
+ | `label$style` | `string` | `''` | Custom CSS styles for the label |
38
+ | `size` | `'' \| 'x15' \| 'x20' \| 'x25' \| 'x30' \| 'x35' \| 'x40'` | `''` | Predefined size for the field |
39
+ | `labelSuffix` | `string` | `':'` | Suffix text after the label |
40
+ | `class` | `string` | `''` | Additional CSS classes |
41
+
42
+ ## Size Options
43
+
44
+ The `size` prop provides consistent widths for different layout needs:
45
+
46
+ - `x15`: Extra small width
47
+ - `x20`: Small width
48
+ - `x25`: Medium-small width
49
+ - `x30`: Medium width
50
+ - `x35`: Medium-large width
51
+ - `x40`: Large width
52
+
53
+ ## Basic Examples
54
+
55
+ ### Simple Text Search Field
56
+
57
+ ```svelte
58
+ <script>
59
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
60
+ import TextEditor from '@ticatec/uniface-element/TextEditor';
61
+
62
+ let searchText = '';
63
+ </script>
64
+
65
+ <CriteriaField label="Search" size="x30">
66
+ <TextEditor
67
+ variant="outlined"
68
+ bind:value={searchText}
69
+ placeholder="* is a wildcard character"
70
+ />
71
+ </CriteriaField>
72
+ ```
73
+
74
+ ### Date Range Filter
75
+
76
+ ```svelte
77
+ <script>
78
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
79
+ import DateRange from '@ticatec/uniface-element/DateRange';
80
+
81
+ let dateFrom = '';
82
+ let dateTo = '';
83
+ </script>
84
+
85
+ <CriteriaField label="Date Range" size="x35">
86
+ <DateRange
87
+ variant="outlined"
88
+ bind:fromValue={dateFrom}
89
+ bind:toValue={dateTo}
90
+ />
91
+ </CriteriaField>
92
+ ```
93
+
94
+ ### Number Range Filter
95
+
96
+ ```svelte
97
+ <script>
98
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
99
+ import NumberRange from '@ticatec/uniface-element/NumberRange';
100
+
101
+ let priceFrom = null;
102
+ let priceTo = null;
103
+ </script>
104
+
105
+ <CriteriaField label="Price Range" size="x30">
106
+ <NumberRange
107
+ variant="outlined"
108
+ bind:fromValue={priceFrom}
109
+ bind:toValue={priceTo}
110
+ placeholder="0.00"
111
+ />
112
+ </CriteriaField>
113
+ ```
114
+
115
+ ### Custom Styled Label
116
+
117
+ ```svelte
118
+ <script>
119
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
120
+ import SearchBox from '@ticatec/uniface-element/SearchBox';
121
+
122
+ let query = '';
123
+ </script>
124
+
125
+ <CriteriaField
126
+ label="Advanced Search"
127
+ size="x40"
128
+ label$style="color: #2563eb; font-weight: 600; font-size: 14px;"
129
+ labelSuffix=""
130
+ >
131
+ <SearchBox
132
+ bind:value={query}
133
+ placeholder="Enter search terms..."
134
+ />
135
+ </CriteriaField>
136
+ ```
137
+
138
+ ## Advanced Examples
139
+
140
+ ### Search Form with Multiple Criteria
141
+
142
+ ```svelte
143
+ <script>
144
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
145
+ import TextEditor from '@ticatec/uniface-element/TextEditor';
146
+ import DateRange from '@ticatec/uniface-element/DateRange';
147
+ import OptionsSelect from '@ticatec/uniface-element/OptionsSelect';
148
+ import CheckBox from '@ticatec/uniface-element/CheckBox';
149
+
150
+ let criteria = {
151
+ name: '',
152
+ email: '',
153
+ dateFrom: '',
154
+ dateTo: '',
155
+ status: '',
156
+ includeInactive: false
157
+ };
158
+
159
+ const statusOptions = [
160
+ { code: 'active', text: 'Active' },
161
+ { code: 'inactive', text: 'Inactive' },
162
+ { code: 'pending', text: 'Pending' }
163
+ ];
164
+
165
+ const handleSearch = () => {
166
+ console.log('Searching with criteria:', criteria);
167
+ };
168
+
169
+ const clearCriteria = () => {
170
+ criteria = {
171
+ name: '',
172
+ email: '',
173
+ dateFrom: '',
174
+ dateTo: '',
175
+ status: '',
176
+ includeInactive: false
177
+ };
178
+ };
179
+ </script>
180
+
181
+ <div class="search-form">
182
+ <h3>Customer Search</h3>
183
+
184
+ <div class="criteria-row">
185
+ <CriteriaField label="Name" size="x25">
186
+ <TextEditor
187
+ variant="outlined"
188
+ bind:value={criteria.name}
189
+ placeholder="Customer name (* for wildcard)"
190
+ />
191
+ </CriteriaField>
192
+
193
+ <CriteriaField label="Email" size="x30">
194
+ <TextEditor
195
+ variant="outlined"
196
+ bind:value={criteria.email}
197
+ placeholder="email@domain.com"
198
+ />
199
+ </CriteriaField>
200
+
201
+ <CriteriaField label="Status" size="x20">
202
+ <OptionsSelect
203
+ variant="outlined"
204
+ bind:value={criteria.status}
205
+ options={statusOptions}
206
+ placeholder="All statuses"
207
+ />
208
+ </CriteriaField>
209
+ </div>
210
+
211
+ <div class="criteria-row">
212
+ <CriteriaField label="Registration Date" size="x35">
213
+ <DateRange
214
+ variant="outlined"
215
+ bind:fromValue={criteria.dateFrom}
216
+ bind:toValue={criteria.dateTo}
217
+ />
218
+ </CriteriaField>
219
+
220
+ <CriteriaField label="Options" size="x25" labelSuffix="">
221
+ <CheckBox
222
+ label="Include inactive customers"
223
+ bind:value={criteria.includeInactive}
224
+ />
225
+ </CriteriaField>
226
+ </div>
227
+
228
+ <div class="form-actions">
229
+ <button class="btn-primary" on:click={handleSearch}>Search</button>
230
+ <button class="btn-secondary" on:click={clearCriteria}>Clear</button>
231
+ </div>
232
+ </div>
233
+
234
+ <style>
235
+ .search-form {
236
+ padding: 24px;
237
+ border: 1px solid #e5e7eb;
238
+ border-radius: 8px;
239
+ background: #f9fafb;
240
+ }
241
+
242
+ .criteria-row {
243
+ display: flex;
244
+ gap: 16px;
245
+ margin: 16px 0;
246
+ flex-wrap: wrap;
247
+ }
248
+
249
+ .form-actions {
250
+ margin-top: 24px;
251
+ display: flex;
252
+ gap: 12px;
253
+ }
254
+
255
+ .btn-primary, .btn-secondary {
256
+ padding: 8px 16px;
257
+ border-radius: 4px;
258
+ border: 1px solid;
259
+ cursor: pointer;
260
+ font-weight: 500;
261
+ }
262
+
263
+ .btn-primary {
264
+ background: #2563eb;
265
+ color: white;
266
+ border-color: #2563eb;
267
+ }
268
+
269
+ .btn-secondary {
270
+ background: white;
271
+ color: #374151;
272
+ border-color: #d1d5db;
273
+ }
274
+ </style>
275
+ ```
276
+
277
+ ### Filter Panel Layout
278
+
279
+ ```svelte
280
+ <script>
281
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
282
+ import TextEditor from '@ticatec/uniface-element/TextEditor';
283
+ import NumberRange from '@ticatec/uniface-element/NumberRange';
284
+ import OptionsSelect from '@ticatec/uniface-element/OptionsSelect';
285
+ import OptionsMultiSelect from '@ticatec/uniface-element/OptionsMultiSelect';
286
+
287
+ let filters = {
288
+ productName: '',
289
+ priceFrom: null,
290
+ priceTo: null,
291
+ category: '',
292
+ tags: '',
293
+ availability: ''
294
+ };
295
+
296
+ const categories = [
297
+ { code: 'electronics', text: 'Electronics' },
298
+ { code: 'clothing', text: 'Clothing' },
299
+ { code: 'books', text: 'Books' },
300
+ { code: 'home', text: 'Home & Garden' }
301
+ ];
302
+
303
+ const availabilityOptions = [
304
+ { code: 'in-stock', text: 'In Stock' },
305
+ { code: 'out-of-stock', text: 'Out of Stock' },
306
+ { code: 'pre-order', text: 'Pre-order' }
307
+ ];
308
+
309
+ const applyFilters = () => {
310
+ console.log('Applying filters:', filters);
311
+ };
312
+ </script>
313
+
314
+ <div class="filter-panel">
315
+ <h3>Product Filters</h3>
316
+
317
+ <div class="filter-group">
318
+ <h4>Basic</h4>
319
+ <CriteriaField label="Product Name" size="x35">
320
+ <TextEditor
321
+ variant="outlined"
322
+ bind:value={filters.productName}
323
+ placeholder="Search by product name"
324
+ />
325
+ </CriteriaField>
326
+
327
+ <CriteriaField label="Category" size="x25">
328
+ <OptionsSelect
329
+ variant="outlined"
330
+ bind:value={filters.category}
331
+ options={categories}
332
+ placeholder="Select category"
333
+ />
334
+ </CriteriaField>
335
+ </div>
336
+
337
+ <div class="filter-group">
338
+ <h4>Pricing</h4>
339
+ <CriteriaField label="Price Range" size="x30">
340
+ <NumberRange
341
+ variant="outlined"
342
+ bind:fromValue={filters.priceFrom}
343
+ bind:toValue={filters.priceTo}
344
+ placeholder="0.00"
345
+ />
346
+ </CriteriaField>
347
+ </div>
348
+
349
+ <div class="filter-group">
350
+ <h4>Advanced</h4>
351
+ <CriteriaField label="Tags" size="x35">
352
+ <OptionsMultiSelect
353
+ variant="outlined"
354
+ bind:value={filters.tags}
355
+ options={[
356
+ { code: 'new', text: 'New' },
357
+ { code: 'sale', text: 'On Sale' },
358
+ { code: 'featured', text: 'Featured' },
359
+ { code: 'bestseller', text: 'Bestseller' }
360
+ ]}
361
+ placeholder="Select tags"
362
+ />
363
+ </CriteriaField>
364
+
365
+ <CriteriaField label="Availability" size="x25">
366
+ <OptionsSelect
367
+ variant="outlined"
368
+ bind:value={filters.availability}
369
+ options={availabilityOptions}
370
+ placeholder="Any availability"
371
+ />
372
+ </CriteriaField>
373
+ </div>
374
+
375
+ <div class="filter-actions">
376
+ <button class="apply-btn" on:click={applyFilters}>Apply Filters</button>
377
+ </div>
378
+ </div>
379
+
380
+ <style>
381
+ .filter-panel {
382
+ width: 300px;
383
+ border: 1px solid #e5e7eb;
384
+ border-radius: 8px;
385
+ background: white;
386
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
387
+ padding: 16px;
388
+ }
389
+
390
+ .filter-panel h3 {
391
+ margin: 0 0 16px 0;
392
+ padding-bottom: 8px;
393
+ border-bottom: 1px solid #e5e7eb;
394
+ }
395
+
396
+ .filter-group {
397
+ margin: 16px 0;
398
+ }
399
+
400
+ .filter-group h4 {
401
+ margin: 0 0 12px 0;
402
+ font-size: 14px;
403
+ color: #6b7280;
404
+ text-transform: uppercase;
405
+ font-weight: 600;
406
+ }
407
+
408
+ .filter-actions {
409
+ margin-top: 24px;
410
+ padding-top: 16px;
411
+ border-top: 1px solid #e5e7eb;
412
+ }
413
+
414
+ .apply-btn {
415
+ width: 100%;
416
+ padding: 8px 16px;
417
+ background: #2563eb;
418
+ color: white;
419
+ border: none;
420
+ border-radius: 4px;
421
+ cursor: pointer;
422
+ font-weight: 500;
423
+ }
424
+
425
+ .apply-btn:hover {
426
+ background: #1d4ed8;
427
+ }
428
+ </style>
429
+ ```
430
+
431
+ ### Different Sizes Comparison
432
+
433
+ ```svelte
434
+ <script>
435
+ import CriteriaField from '@ticatec/uniface-element/CriteriaField';
436
+ import TextEditor from '@ticatec/uniface-element/TextEditor';
437
+
438
+ let values = {};
439
+ </script>
440
+
441
+ <div class="size-comparison">
442
+ <h3>Size Comparison</h3>
443
+
444
+ <CriteriaField label="Extra Small (x15)" size="x15">
445
+ <TextEditor variant="outlined" bind:value={values.x15} />
446
+ </CriteriaField>
447
+
448
+ <CriteriaField label="Small (x20)" size="x20">
449
+ <TextEditor variant="outlined" bind:value={values.x20} />
450
+ </CriteriaField>
451
+
452
+ <CriteriaField label="Medium-Small (x25)" size="x25">
453
+ <TextEditor variant="outlined" bind:value={values.x25} />
454
+ </CriteriaField>
455
+
456
+ <CriteriaField label="Medium (x30)" size="x30">
457
+ <TextEditor variant="outlined" bind:value={values.x30} />
458
+ </CriteriaField>
459
+
460
+ <CriteriaField label="Medium-Large (x35)" size="x35">
461
+ <TextEditor variant="outlined" bind:value={values.x35} />
462
+ </CriteriaField>
463
+
464
+ <CriteriaField label="Large (x40)" size="x40">
465
+ <TextEditor variant="outlined" bind:value={values.x40} />
466
+ </CriteriaField>
467
+ </div>
468
+
469
+ <style>
470
+ .size-comparison {
471
+ display: flex;
472
+ flex-direction: column;
473
+ gap: 16px;
474
+ padding: 20px;
475
+ max-width: 600px;
476
+ }
477
+ </style>
478
+ ```
479
+
480
+ ## Best Practices
481
+
482
+ ```svelte
483
+ <!-- Good: Clear, descriptive labels -->
484
+ <CriteriaField label="Customer Email Address">
485
+ <TextEditor variant="outlined" type="email" />
486
+ </CriteriaField>
487
+
488
+ <!-- Good: Consistent sizing in related fields -->
489
+ <div class="criteria-group">
490
+ <CriteriaField label="First Name" size="x25">
491
+ <TextEditor variant="outlined" />
492
+ </CriteriaField>
493
+ <CriteriaField label="Last Name" size="x25">
494
+ <TextEditor variant="outlined" />
495
+ </CriteriaField>
496
+ </div>
497
+
498
+ <!-- Good: Appropriate field types for content -->
499
+ <CriteriaField label="Birth Date" size="x20">
500
+ <DatePicker variant="outlined" />
501
+ </CriteriaField>
502
+
503
+ <!-- Good: Custom label styling for emphasis -->
504
+ <CriteriaField
505
+ label="Important Field"
506
+ label$style="color: red; font-weight: bold;"
507
+ >
508
+ <TextEditor variant="outlined" />
509
+ </CriteriaField>
510
+ ```
511
+
512
+ ## CSS Classes
513
+
514
+ The component applies the following CSS classes:
515
+
516
+ - `.uniface-filter-field` - Base class
517
+ - `.x15`, `.x20`, `.x25`, `.x30`, `.x35`, `.x40` - Size classes
518
+
519
+ ## Browser Support
520
+
521
+ Works in all modern browsers that support:
522
+ - ES6+ JavaScript
523
+ - Modern DOM APIs
524
+ - CSS custom properties
525
+ - Flexbox layout
526
+
527
+ ## Performance Considerations
528
+
529
+ - Lightweight component structure
530
+ - Minimal DOM elements
531
+ - Efficient slot-based content projection
532
+ - No complex state management