@retailcrm/embed-ui-v1-components 0.9.18 → 0.9.21
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/AGENTS.md +8 -0
- package/README.md +5 -1
- package/bin/embed-ui-v1-components.mjs +32 -24
- package/bin/postinstall.mjs +2 -2
- package/dist/host.cjs +19 -13
- package/dist/host.css +8 -10
- package/dist/host.d.ts +52 -58
- package/dist/host.js +19 -13
- package/dist/remote.cjs +110 -100
- package/dist/remote.d.ts +30 -36
- package/dist/remote.js +110 -100
- package/docs/AGENT-DESIGN-GUIDELINES.md +463 -0
- package/docs/AI.md +89 -6
- package/docs/FORMAT.md +11 -9
- package/docs/PROFILES.md +9 -5
- package/docs/README.md +14 -5
- package/docs/assets/page-guidelines/card-settings-page.png +0 -0
- package/docs/assets/page-guidelines/collapse-block-page.png +0 -0
- package/docs/assets/page-guidelines/entity-list-page.png +0 -0
- package/docs/assets/page-guidelines/modal-sidebar.png +0 -0
- package/docs/assets/page-guidelines/modal-window.png +0 -0
- package/docs/assets/page-guidelines/multi-column-page.png +0 -0
- package/docs/profiles/UiAddButton.yml +30 -0
- package/docs/profiles/UiAlert.yml +27 -0
- package/docs/profiles/UiAvatar.yml +26 -0
- package/docs/profiles/UiAvatarList.yml +28 -0
- package/docs/profiles/UiButton.yml +1 -8
- package/docs/profiles/UiCalendar.yml +28 -0
- package/docs/profiles/UiCheckbox.yml +32 -0
- package/docs/profiles/UiCollapse.yml +34 -0
- package/docs/profiles/UiCollapseBox.yml +30 -0
- package/docs/profiles/UiCollapseGroup.yml +26 -0
- package/docs/profiles/UiCopyButton.yml +35 -0
- package/docs/profiles/UiDate.yml +28 -0
- package/docs/profiles/UiDatePicker.yml +30 -0
- package/docs/profiles/UiError.yml +45 -0
- package/docs/profiles/UiField.yml +1 -15
- package/docs/profiles/UiImage.yml +28 -0
- package/docs/profiles/UiInfobox.yml +33 -0
- package/docs/profiles/UiLink.yml +40 -0
- package/docs/profiles/UiLoader.yml +35 -0
- package/docs/profiles/UiMenuItem.yml +38 -0
- package/docs/profiles/UiMenuItemGroup.yml +27 -0
- package/docs/profiles/UiModalSidebar.yml +32 -0
- package/docs/profiles/UiModalWindow.yml +42 -0
- package/docs/profiles/UiModalWindowSurface.yml +32 -0
- package/docs/profiles/UiNumberStepper.yml +36 -0
- package/docs/profiles/UiPageHeader.yml +1 -23
- package/docs/profiles/UiPopper.yml +1 -13
- package/docs/profiles/UiPopperConnector.yml +7 -25
- package/docs/profiles/UiPopperTarget.yml +7 -25
- package/docs/profiles/UiRadio.yml +40 -0
- package/docs/profiles/UiRadioSwitch.yml +1 -32
- package/docs/profiles/UiRadioSwitchOption.yml +9 -13
- package/docs/profiles/UiScrollBox.yml +34 -0
- package/docs/profiles/UiSelect.yml +1 -44
- package/docs/profiles/UiSelectOption.yml +32 -0
- package/docs/profiles/UiSelectOptionGroup.yml +30 -0
- package/docs/profiles/UiSkeleton.yml +32 -0
- package/docs/profiles/UiSlider.yml +40 -0
- package/docs/profiles/UiSwitch.yml +38 -0
- package/docs/profiles/UiTab.yml +7 -16
- package/docs/profiles/UiTabGroup.yml +1 -30
- package/docs/profiles/UiTable.yml +148 -0
- package/docs/profiles/UiTableBodyCell.yml +28 -0
- package/docs/profiles/UiTableColumn.yml +39 -0
- package/docs/profiles/UiTableFooterButton.yml +43 -0
- package/docs/profiles/UiTableFooterSection.yml +37 -0
- package/docs/profiles/UiTableHeadCell.yml +28 -0
- package/docs/profiles/UiTableSorter.yml +29 -0
- package/docs/profiles/UiTag.yml +38 -0
- package/docs/profiles/UiTextbox.yml +1 -32
- package/docs/profiles/UiTimePicker.yml +40 -0
- package/docs/profiles/UiToggleButton.yml +1 -11
- package/docs/profiles/UiToggleGroup.yml +1 -13
- package/docs/profiles/UiToggleGroupOption.yml +9 -11
- package/docs/profiles/UiToolbarButton.yml +37 -0
- package/docs/profiles/UiToolbarLink.yml +37 -0
- package/docs/profiles/UiTooltip.yml +38 -0
- package/docs/profiles/UiTransition.yml +37 -0
- package/docs/profiles/UiYandexMap.yml +53 -0
- package/package.json +15 -15
|
@@ -2,6 +2,7 @@ component: UiTable
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTable is the main data table component. It supports row rendering, grouping, expandable rows,
|
|
4
4
|
footer areas, and row-level interactions.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -10,6 +11,9 @@ public_import:
|
|
|
10
11
|
|
|
11
12
|
related_components:
|
|
12
13
|
- UiTableColumn
|
|
14
|
+
- UiTableFooterButton
|
|
15
|
+
- UiTableFooterSection
|
|
16
|
+
- UiTableSorter
|
|
13
17
|
|
|
14
18
|
use_when:
|
|
15
19
|
- You need structured tabular data.
|
|
@@ -36,6 +40,18 @@ api:
|
|
|
36
40
|
- name: footer
|
|
37
41
|
zone: footer
|
|
38
42
|
creates: Full footer area.
|
|
43
|
+
- name: footer-summary
|
|
44
|
+
zone: structured-footer
|
|
45
|
+
creates: Summary or selected-count area above table footer controls.
|
|
46
|
+
- name: footer-page-size
|
|
47
|
+
zone: structured-footer
|
|
48
|
+
creates: Page-size controls in the footer control row.
|
|
49
|
+
- name: footer-export
|
|
50
|
+
zone: structured-footer
|
|
51
|
+
creates: Export controls in the footer control row.
|
|
52
|
+
- name: footer-pagination
|
|
53
|
+
zone: structured-footer
|
|
54
|
+
creates: Pagination controls in the footer control row.
|
|
39
55
|
- name: group-head
|
|
40
56
|
zone: group-head
|
|
41
57
|
creates: Group heading content.
|
|
@@ -75,12 +91,16 @@ geometry:
|
|
|
75
91
|
- Root fills available width.
|
|
76
92
|
- fixed=true switches table-layout from auto to fixed.
|
|
77
93
|
- bordered=true adds border and corner rounding through CSS variables.
|
|
94
|
+
- Filters and search controls should usually be placed above the table, not in the table root.
|
|
95
|
+
- Table-scoped pagination belongs in footer slots when custom controls are needed.
|
|
78
96
|
|
|
79
97
|
styling:
|
|
80
98
|
notes:
|
|
81
99
|
- UiTable exposes a relatively rich CSS-variable surface for spacing and table chrome.
|
|
82
100
|
- Prefer table props and slot composition first, then CSS variables for spacing or background tuning.
|
|
83
101
|
- Internal classes are descriptive and mainly useful for debugging or narrow local integration.
|
|
102
|
+
- For reference-style footers, add a local class to UiTable and scope footer styles through that class.
|
|
103
|
+
- When styling footer pagination buttons, combine the internal footer button class with the local state class so base footer styles do not override page, active, or arrow colors.
|
|
84
104
|
root_classes:
|
|
85
105
|
- .ui-v1-table
|
|
86
106
|
state_classes:
|
|
@@ -150,3 +170,131 @@ styling:
|
|
|
150
170
|
size: 12px
|
|
151
171
|
line_height: 14px
|
|
152
172
|
weight: 400
|
|
173
|
+
reference_footer_css:
|
|
174
|
+
notes:
|
|
175
|
+
- Use this as the minimum CSS contract when recreating the Storybook reference table footer.
|
|
176
|
+
- Keep class names local to the screen, but preserve the same geometry and state rules.
|
|
177
|
+
- Plain CSS values below mirror the package palette: blue #005eeb, black #1e2248, grey #afb9c3 / #dee2e6.
|
|
178
|
+
example: |
|
|
179
|
+
.entity-list-table {
|
|
180
|
+
--ui-v1-table-cell-padding-x: 12px;
|
|
181
|
+
--ui-v1-table-cell-padding-y: 12px;
|
|
182
|
+
--ui-v1-table-padding-start: 16px;
|
|
183
|
+
--ui-v1-table-padding-end: 16px;
|
|
184
|
+
--ui-v1-table-rounding: 4px;
|
|
185
|
+
--ui-v1-table-head-cell-padding-block-start: 14px;
|
|
186
|
+
--ui-v1-table-head-cell-padding-block-end: 14px;
|
|
187
|
+
--ui-v1-table-body-cell-padding-block-start: 15px;
|
|
188
|
+
--ui-v1-table-body-cell-padding-block-end: 15px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.entity-list-table .ui-v1-table__footer-meta {
|
|
192
|
+
min-height: 40px;
|
|
193
|
+
font-weight: 400;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.entity-list-table .ui-v1-table__footer-controls {
|
|
197
|
+
min-height: 52px;
|
|
198
|
+
background: #f9fafb;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.entity-list-table .ui-v1-table__footer-section {
|
|
202
|
+
font-size: 14px;
|
|
203
|
+
line-height: 20px;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.entity-list-table .ui-v1-table__footer-side > .entity-list-table__pagination-section {
|
|
207
|
+
padding-block: 8px;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.entity-list-table__pagination {
|
|
211
|
+
display: flex;
|
|
212
|
+
align-items: center;
|
|
213
|
+
gap: 8px;
|
|
214
|
+
height: 36px;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.entity-list-table__pagination-button,
|
|
218
|
+
.entity-list-table__pagination-arrow {
|
|
219
|
+
width: 36px;
|
|
220
|
+
height: 36px;
|
|
221
|
+
border-radius: 4px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.entity-list-table .ui-v1-table__footer-button.entity-list-table__pagination-button {
|
|
225
|
+
color: #1e2248;
|
|
226
|
+
font-size: 14px;
|
|
227
|
+
line-height: 20px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.entity-list-table .ui-v1-table__footer-button.entity-list-table__pagination-button_current {
|
|
231
|
+
color: #fff;
|
|
232
|
+
background: #005eeb;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.entity-list-table .ui-v1-table__footer-button.entity-list-table__pagination-arrow {
|
|
236
|
+
color: #afb9c3;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.entity-list-table__pagination-arrow-icon {
|
|
240
|
+
display: block;
|
|
241
|
+
width: 24px;
|
|
242
|
+
height: 24px;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.entity-list-table__pagination-divider {
|
|
246
|
+
width: 1px;
|
|
247
|
+
height: 52px;
|
|
248
|
+
margin-block: -8px;
|
|
249
|
+
background: #dee2e6;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
composition:
|
|
253
|
+
filters:
|
|
254
|
+
notes:
|
|
255
|
+
- Keep filter controls directly above UiTable so the relationship between filters and rows is obvious.
|
|
256
|
+
- Use UiTextbox for text search and UiSelect or compact toggle controls for finite filters.
|
|
257
|
+
- Persist filter values in URL query parameters when routing is available.
|
|
258
|
+
sorting:
|
|
259
|
+
notes:
|
|
260
|
+
- Use UiTableSorter inside a UiTableColumn label slot for sortable columns.
|
|
261
|
+
- Reset pagination to the first page when sorting changes.
|
|
262
|
+
- Persist sort key and direction in URL query parameters when routing is available.
|
|
263
|
+
pagination:
|
|
264
|
+
notes:
|
|
265
|
+
- Use footer-summary, footer-page-size, footer-export, and footer-pagination slots for structured footer controls.
|
|
266
|
+
- footer-pagination should use UiTableFooterSection as the root wrapper.
|
|
267
|
+
- Use UiTableFooterButton for page numbers and previous/next arrow controls.
|
|
268
|
+
- Do not use regular UiButton for table footer pagination.
|
|
269
|
+
- Use a local inner flex group for page buttons, dividers, and arrow buttons when recreating the reference-table footer pattern.
|
|
270
|
+
- Use chevron icon assets for previous/next arrows instead of text glyphs such as < or >.
|
|
271
|
+
- Add scoped CSS for footer meta height, control-row background, pagination button size, active page state, arrow icon size, and vertical dividers.
|
|
272
|
+
- Persist page and page size in URL query parameters when routing is available.
|
|
273
|
+
- Reset page to 1 when filters or sorting change.
|
|
274
|
+
|
|
275
|
+
ai_notes:
|
|
276
|
+
do:
|
|
277
|
+
- Read ../AI.md table-screen rules before generating complete table screens.
|
|
278
|
+
- Provide row-key for stable row identity.
|
|
279
|
+
- Put table filters above the table.
|
|
280
|
+
- Use structured footer slots for summary, page-size controls, export, and pagination.
|
|
281
|
+
- Compose footer controls with UiTableFooterSection and UiTableFooterButton.
|
|
282
|
+
- Copy the reference_footer_css pattern when building a realistic entity-list footer.
|
|
283
|
+
- Use UiTableSorter for sortable headers.
|
|
284
|
+
avoid:
|
|
285
|
+
- Do not hide table filters in page header actions.
|
|
286
|
+
- Do not use UiButton inside table footer pagination.
|
|
287
|
+
- Do not put pagination only in local state when the screen has routable result sets.
|
|
288
|
+
- Do not import table internals from host or src paths.
|
|
289
|
+
|
|
290
|
+
behavior:
|
|
291
|
+
notes:
|
|
292
|
+
- Read key_props first to identify supported states and variants.
|
|
293
|
+
- Prefer controlled props and documented emits when synchronizing component state with screen logic.
|
|
294
|
+
|
|
295
|
+
accessibility:
|
|
296
|
+
notes:
|
|
297
|
+
- Use meaningful column labels so screen-reader users can understand each cell in context.
|
|
298
|
+
- Use stable row keys so expanded rows and row-level state remain attached to the correct data item.
|
|
299
|
+
- Put interactive controls inside cells as real controls such as UiLink or UiButton, not plain clickable text.
|
|
300
|
+
- When rows are clickable, keep the primary row action visible as a link or button as well.
|
|
@@ -2,6 +2,7 @@ component: UiTableBodyCell
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableBodyCell is the low-level body cell primitive used inside UiTable rows.
|
|
4
4
|
Use it only for custom table layouts built from public table parts.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -43,5 +44,32 @@ geometry:
|
|
|
43
44
|
ai_notes:
|
|
44
45
|
do:
|
|
45
46
|
- Keep it inside UiTable row composition.
|
|
47
|
+
- Use theme="group" only for group header style cells.
|
|
46
48
|
avoid:
|
|
47
49
|
- Do not use it as a generic box or layout wrapper.
|
|
50
|
+
|
|
51
|
+
composition:
|
|
52
|
+
works_well_with:
|
|
53
|
+
- UiTable
|
|
54
|
+
- UiTableColumn
|
|
55
|
+
patterns:
|
|
56
|
+
- title: Custom row structure
|
|
57
|
+
notes: Prefer UiTableColumn cell slots first; use UiTableBodyCell only for low-level custom rows.
|
|
58
|
+
|
|
59
|
+
behavior:
|
|
60
|
+
notes:
|
|
61
|
+
- Behavior is mostly coordinated by the parent component.
|
|
62
|
+
- Use this child only in the documented parent composition.
|
|
63
|
+
|
|
64
|
+
accessibility:
|
|
65
|
+
notes:
|
|
66
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
67
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
68
|
+
|
|
69
|
+
styling:
|
|
70
|
+
notes:
|
|
71
|
+
- Use documented props and slots as the primary styling API.
|
|
72
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
73
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
74
|
+
root_classes:
|
|
75
|
+
- .ui-v1-table
|
|
@@ -2,6 +2,7 @@ component: UiTableColumn
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableColumn declares one logical column inside UiTable. It carries label and sizing metadata
|
|
4
4
|
and defines how header labels and cells render.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -48,3 +49,41 @@ geometry:
|
|
|
48
49
|
layout: structural table column
|
|
49
50
|
root_display: table-column
|
|
50
51
|
width_behavior: controlled by table layout and width props on the parent table
|
|
52
|
+
|
|
53
|
+
composition:
|
|
54
|
+
works_well_with:
|
|
55
|
+
- UiTable
|
|
56
|
+
- UiTableSorter
|
|
57
|
+
- UiLink
|
|
58
|
+
- UiTag
|
|
59
|
+
patterns:
|
|
60
|
+
- title: Primary link column
|
|
61
|
+
notes: Put the row's main UiLink in the first meaningful text column and set link size to small.
|
|
62
|
+
- title: Sortable header
|
|
63
|
+
notes: Use the label slot with UiTableSorter when the column supports sorting.
|
|
64
|
+
- title: Status column
|
|
65
|
+
notes: Use UiTag for categorical statuses instead of raw colored text.
|
|
66
|
+
|
|
67
|
+
ai_notes:
|
|
68
|
+
do:
|
|
69
|
+
- Set minWidth for important text columns so generated tables remain scannable.
|
|
70
|
+
- Use align="right" for numbers, money, and percentages.
|
|
71
|
+
- Use trim only for narrow checkbox, icon, or action columns.
|
|
72
|
+
avoid:
|
|
73
|
+
- Do not place filters inside column labels; filters belong above the table.
|
|
74
|
+
|
|
75
|
+
behavior:
|
|
76
|
+
notes:
|
|
77
|
+
- Behavior is mostly coordinated by the parent component.
|
|
78
|
+
- Use this child only in the documented parent composition.
|
|
79
|
+
|
|
80
|
+
accessibility:
|
|
81
|
+
notes:
|
|
82
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
83
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
84
|
+
|
|
85
|
+
styling:
|
|
86
|
+
notes:
|
|
87
|
+
- Use documented props and slots as the primary styling API.
|
|
88
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
89
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
@@ -2,6 +2,7 @@ component: UiTableFooterButton
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableFooterButton is a footer-scoped action control for custom table footer layouts.
|
|
4
4
|
It behaves like a table-specific button primitive rather than a full replacement for UiButton.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.20/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -40,5 +41,47 @@ geometry:
|
|
|
40
41
|
ai_notes:
|
|
41
42
|
do:
|
|
42
43
|
- Keep it in table footer usage.
|
|
44
|
+
- Use for page-size, pagination, export, and compact table-scoped footer actions.
|
|
43
45
|
avoid:
|
|
44
46
|
- Do not substitute it for general page-level actions.
|
|
47
|
+
|
|
48
|
+
composition:
|
|
49
|
+
works_well_with:
|
|
50
|
+
- UiTableFooterSection
|
|
51
|
+
- UiTable
|
|
52
|
+
patterns:
|
|
53
|
+
- title: Pagination control
|
|
54
|
+
notes: Use inside footer-pagination slot for previous, next, and page controls.
|
|
55
|
+
states:
|
|
56
|
+
- name: ordinary-page
|
|
57
|
+
notes: Render the page number as UiTableFooterButton text.
|
|
58
|
+
- name: current-page
|
|
59
|
+
notes: Mark the active page with a local custom class and style it inside the table example scope.
|
|
60
|
+
- name: arrow
|
|
61
|
+
notes: Render the previous/next chevron icon inside UiTableFooterButton and provide an aria-label.
|
|
62
|
+
- name: passive-or-disabled
|
|
63
|
+
notes: Use disabled when the control is unavailable; use a local custom class only for visual passive states such as selected page size.
|
|
64
|
+
- title: Page-size control
|
|
65
|
+
notes: Use inside footer-page-size slot for compact page-size choices.
|
|
66
|
+
|
|
67
|
+
behavior:
|
|
68
|
+
notes:
|
|
69
|
+
- Behavior is mostly coordinated by the parent component.
|
|
70
|
+
- Use this child only in the documented parent composition.
|
|
71
|
+
|
|
72
|
+
accessibility:
|
|
73
|
+
notes:
|
|
74
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
75
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
76
|
+
|
|
77
|
+
styling:
|
|
78
|
+
notes:
|
|
79
|
+
- Use documented props and slots as the primary styling API.
|
|
80
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
81
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
82
|
+
- For footer pagination, style local custom classes on UiTableFooterButton instead of replacing it with UiButton.
|
|
83
|
+
- For page buttons, use a 36px square target with 4px radius, 14px text, black ordinary page color, and blue active background.
|
|
84
|
+
- For arrow buttons, use a 36px square target with a 24px chevron icon and grey color.
|
|
85
|
+
- Combine selectors like `.entity-list-table .ui-v1-table__footer-button.entity-list-table__pagination-button_current` when overriding active states, because base footer button styles set link-like colors.
|
|
86
|
+
root_classes:
|
|
87
|
+
- .ui-v1-table
|
|
@@ -2,6 +2,7 @@ component: UiTableFooterSection
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableFooterSection is the low-level footer container for custom table footer layouts.
|
|
4
4
|
It is mainly useful when UiTable footer slots are not enough on their own.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.20/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -19,6 +20,12 @@ avoid_when:
|
|
|
19
20
|
- UiTable footer slots already solve the layout.
|
|
20
21
|
- You do not need explicit footer structure.
|
|
21
22
|
|
|
23
|
+
api:
|
|
24
|
+
slots:
|
|
25
|
+
- name: default
|
|
26
|
+
zone: footer-section-content
|
|
27
|
+
creates: Compact footer controls or metadata.
|
|
28
|
+
|
|
22
29
|
rendered_structure:
|
|
23
30
|
descriptive_only: true
|
|
24
31
|
root:
|
|
@@ -34,5 +41,35 @@ geometry:
|
|
|
34
41
|
ai_notes:
|
|
35
42
|
do:
|
|
36
43
|
- Use it only as part of custom table footer composition.
|
|
44
|
+
- Keep content compact and table-scoped.
|
|
45
|
+
- Add local CSS on the table root for footer row height, background, typography, and pagination spacing when recreating the reference footer.
|
|
37
46
|
avoid:
|
|
38
47
|
- Do not treat it as a standalone layout section.
|
|
48
|
+
|
|
49
|
+
composition:
|
|
50
|
+
works_well_with:
|
|
51
|
+
- UiTable
|
|
52
|
+
- UiTableFooterButton
|
|
53
|
+
patterns:
|
|
54
|
+
- title: Structured table footer
|
|
55
|
+
notes: Use in footer-page-size, footer-export, and footer-pagination slots to match table footer spacing.
|
|
56
|
+
|
|
57
|
+
behavior:
|
|
58
|
+
notes:
|
|
59
|
+
- Behavior is mostly coordinated by the parent component.
|
|
60
|
+
- Use this child only in the documented parent composition.
|
|
61
|
+
|
|
62
|
+
accessibility:
|
|
63
|
+
notes:
|
|
64
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
65
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
66
|
+
|
|
67
|
+
styling:
|
|
68
|
+
notes:
|
|
69
|
+
- Use documented props and slots as the primary styling API.
|
|
70
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
71
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
72
|
+
- For reference-style footer controls, apply a local class to each UiTableFooterSection and style it through the UiTable root class.
|
|
73
|
+
- The pagination section usually needs padding-block 8px and an inner flex group with 8px gaps.
|
|
74
|
+
root_classes:
|
|
75
|
+
- .ui-v1-table
|
|
@@ -2,6 +2,7 @@ component: UiTableHeadCell
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableHeadCell is the low-level table header cell primitive used inside UiTable head rows.
|
|
4
4
|
Use it only when you build custom table structure from public table parts.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -40,5 +41,32 @@ geometry:
|
|
|
40
41
|
ai_notes:
|
|
41
42
|
do:
|
|
42
43
|
- Prefer UiTableColumn first for regular table headers.
|
|
44
|
+
- Use with UiTableSorter when building fully custom table structure.
|
|
43
45
|
avoid:
|
|
44
46
|
- Do not use it as a generic container outside table head rows.
|
|
47
|
+
|
|
48
|
+
composition:
|
|
49
|
+
works_well_with:
|
|
50
|
+
- UiTableSorter
|
|
51
|
+
- UiTableColumn
|
|
52
|
+
patterns:
|
|
53
|
+
- title: Low-level sortable head
|
|
54
|
+
notes: Use only when UiTableColumn label slot cannot express the needed header.
|
|
55
|
+
|
|
56
|
+
behavior:
|
|
57
|
+
notes:
|
|
58
|
+
- Behavior is mostly coordinated by the parent component.
|
|
59
|
+
- Use this child only in the documented parent composition.
|
|
60
|
+
|
|
61
|
+
accessibility:
|
|
62
|
+
notes:
|
|
63
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
64
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
65
|
+
|
|
66
|
+
styling:
|
|
67
|
+
notes:
|
|
68
|
+
- Use documented props and slots as the primary styling API.
|
|
69
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
70
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
71
|
+
root_classes:
|
|
72
|
+
- .ui-v1-table
|
|
@@ -2,6 +2,7 @@ component: UiTableSorter
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTableSorter is a compact sort control primitive for custom table head content.
|
|
4
4
|
Use it when header rendering is composed manually and sorting state must be shown explicitly.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -41,5 +42,33 @@ geometry:
|
|
|
41
42
|
ai_notes:
|
|
42
43
|
do:
|
|
43
44
|
- Pair it with explicit sort state in screen logic.
|
|
45
|
+
- Persist sort key and direction in URL query parameters when the table is routable.
|
|
46
|
+
- Reset the current page to 1 when sorting changes.
|
|
44
47
|
avoid:
|
|
45
48
|
- Do not use it as a generic icon-only control outside table headers.
|
|
49
|
+
|
|
50
|
+
composition:
|
|
51
|
+
works_well_with:
|
|
52
|
+
- UiTableColumn
|
|
53
|
+
- UiTableHeadCell
|
|
54
|
+
patterns:
|
|
55
|
+
- title: Column label slot
|
|
56
|
+
notes: Place in UiTableColumn label slot for normal sortable columns.
|
|
57
|
+
|
|
58
|
+
behavior:
|
|
59
|
+
notes:
|
|
60
|
+
- Behavior is mostly coordinated by the parent component.
|
|
61
|
+
- Use this child only in the documented parent composition.
|
|
62
|
+
|
|
63
|
+
accessibility:
|
|
64
|
+
notes:
|
|
65
|
+
- This component is normally used inside its parent composition; accessibility behavior is completed by the parent component.
|
|
66
|
+
- Keep labels and visible text meaningful because parent keyboard and screen-reader behavior depends on child content.
|
|
67
|
+
|
|
68
|
+
styling:
|
|
69
|
+
notes:
|
|
70
|
+
- Use documented props and slots as the primary styling API.
|
|
71
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
72
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
73
|
+
root_classes:
|
|
74
|
+
- .ui-v1-table
|
package/docs/profiles/UiTag.yml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
component: UiTag
|
|
2
2
|
summary: >
|
|
3
3
|
UiTag is a compact label or status pill. It can be interactive, removable, pinned, or visually saturated.
|
|
4
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitag--docs
|
|
4
5
|
|
|
5
6
|
public_import:
|
|
6
7
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -39,3 +40,40 @@ geometry:
|
|
|
39
40
|
layout: wrapper around a content-sized tag pill
|
|
40
41
|
root_display: block
|
|
41
42
|
width_behavior: root follows normal block flow, inner tag stays content-sized
|
|
43
|
+
|
|
44
|
+
behavior:
|
|
45
|
+
notes:
|
|
46
|
+
- interactive makes the tag feel actionable; use it only when click handling exists.
|
|
47
|
+
- removable should emit remove and needs a clear removal consequence.
|
|
48
|
+
- background is useful for semantic status palettes, but keep contrast readable.
|
|
49
|
+
|
|
50
|
+
composition:
|
|
51
|
+
works_well_with:
|
|
52
|
+
- UiTable
|
|
53
|
+
- UiSelectOption
|
|
54
|
+
- UiMenuItem
|
|
55
|
+
patterns:
|
|
56
|
+
- title: Table status
|
|
57
|
+
notes: Use in UiTable cells for categorical states instead of raw colored text.
|
|
58
|
+
- title: Removable filter chip
|
|
59
|
+
notes: Use removable tags to show active filters when space allows.
|
|
60
|
+
|
|
61
|
+
ai_notes:
|
|
62
|
+
do:
|
|
63
|
+
- Use for short statuses, categories, and active filter chips.
|
|
64
|
+
- Keep labels concise; tags should scan quickly.
|
|
65
|
+
avoid:
|
|
66
|
+
- Do not use as a full command button or as long explanatory text.
|
|
67
|
+
|
|
68
|
+
accessibility:
|
|
69
|
+
notes:
|
|
70
|
+
- Keep rendered text concise and meaningful for screen-reader users.
|
|
71
|
+
- Do not use this component as the only carrier of critical state if the state also needs form-level validation or focus management.
|
|
72
|
+
|
|
73
|
+
styling:
|
|
74
|
+
notes:
|
|
75
|
+
- Use documented props and slots as the primary styling API.
|
|
76
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
77
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
78
|
+
root_classes:
|
|
79
|
+
- .ui-v1-tag-wrapper
|
|
@@ -2,6 +2,7 @@ component: UiTextbox
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTextbox is the base text and numeric input component. It covers single-line input,
|
|
4
4
|
textarea mode, numeric and decimal input, plus prefix, suffix, icon zones, and a clear action.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitextbox--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -346,38 +347,6 @@ composition:
|
|
|
346
347
|
- title: Inline control
|
|
347
348
|
notes: Use UiTextbox as a self-contained control, not as a wrapper for arbitrary content.
|
|
348
349
|
|
|
349
|
-
examples:
|
|
350
|
-
- title: Field wiring
|
|
351
|
-
goal: Build a standard text field with correct ARIA wiring.
|
|
352
|
-
code: |
|
|
353
|
-
<UiField id="name" label="Name">
|
|
354
|
-
<template #default="field">
|
|
355
|
-
<UiTextbox
|
|
356
|
-
:id="field.id"
|
|
357
|
-
:input-attributes="{
|
|
358
|
-
'aria-labelledby': field.ariaLabelledby,
|
|
359
|
-
'aria-invalid': field.ariaInvalid,
|
|
360
|
-
}"
|
|
361
|
-
v-model:value="name"
|
|
362
|
-
/>
|
|
363
|
-
</template>
|
|
364
|
-
</UiField>
|
|
365
|
-
- title: Search pattern
|
|
366
|
-
goal: Build a textbox with a leading icon and clear action.
|
|
367
|
-
code: |
|
|
368
|
-
<UiTextbox v-model:value="term" clearable>
|
|
369
|
-
<template #leading-icon>
|
|
370
|
-
<IconSearch aria-hidden="true" />
|
|
371
|
-
</template>
|
|
372
|
-
</UiTextbox>
|
|
373
|
-
- title: Prefix and suffix zones
|
|
374
|
-
goal: Show safe markup for prefix and suffix content.
|
|
375
|
-
code: |
|
|
376
|
-
<UiTextbox v-model:value="amount" inputmode="decimal" suffix="₽">
|
|
377
|
-
<template #prefix>
|
|
378
|
-
<span>Amount</span>
|
|
379
|
-
</template>
|
|
380
|
-
</UiTextbox>
|
|
381
350
|
|
|
382
351
|
ai_notes:
|
|
383
352
|
do:
|
|
@@ -2,6 +2,7 @@ component: UiTimePicker
|
|
|
2
2
|
summary: >
|
|
3
3
|
UiTimePicker is a time input component that combines textbox-like entry with a list of
|
|
4
4
|
normalized time variants and bounds.
|
|
5
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitimepicker--docs
|
|
5
6
|
|
|
6
7
|
public_import:
|
|
7
8
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -44,3 +45,42 @@ geometry:
|
|
|
44
45
|
layout: combobox wrapper with floating menu
|
|
45
46
|
root_display: block
|
|
46
47
|
width_behavior: follows normal block flow for the wrapper, with a floating dropdown layer
|
|
48
|
+
|
|
49
|
+
behavior:
|
|
50
|
+
notes:
|
|
51
|
+
- interval and timeVariants shape the selectable list.
|
|
52
|
+
- minTime and maxTime constrain valid selection.
|
|
53
|
+
- textboxOptions should be used for trigger sizing and placeholder behavior.
|
|
54
|
+
|
|
55
|
+
composition:
|
|
56
|
+
works_well_with:
|
|
57
|
+
- UiField
|
|
58
|
+
- UiTextbox
|
|
59
|
+
patterns:
|
|
60
|
+
- title: Time field
|
|
61
|
+
notes: Wrap in UiField for forms and settings screens.
|
|
62
|
+
- title: Bounded scheduler input
|
|
63
|
+
notes: Use minTime, maxTime, and interval for schedules instead of allowing arbitrary text.
|
|
64
|
+
|
|
65
|
+
ai_notes:
|
|
66
|
+
do:
|
|
67
|
+
- Use for semantic time values and schedule inputs.
|
|
68
|
+
avoid:
|
|
69
|
+
- Do not use UiTextbox alone when the value must be a valid bounded time.
|
|
70
|
+
|
|
71
|
+
accessibility:
|
|
72
|
+
notes:
|
|
73
|
+
- Prefer visible text labels for interactive controls.
|
|
74
|
+
- For icon-only or custom visual content, provide an accessible name through the supported label, title, or ARIA attributes exposed by the component.
|
|
75
|
+
- Preserve native keyboard semantics by using the component root instead of recreating the control with arbitrary markup.
|
|
76
|
+
keyboard:
|
|
77
|
+
- Tab moves focus to the control when it is focusable.
|
|
78
|
+
- Enter or Space activates native button-like controls when the host implementation renders a button.
|
|
79
|
+
|
|
80
|
+
styling:
|
|
81
|
+
notes:
|
|
82
|
+
- Use documented props and slots as the primary styling API.
|
|
83
|
+
- Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
|
|
84
|
+
- Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
|
|
85
|
+
root_classes:
|
|
86
|
+
- .ui-v1-time-picker
|
|
@@ -4,6 +4,7 @@ summary: >
|
|
|
4
4
|
native button shape and methods, but the pressed state is controlled externally and
|
|
5
5
|
can be used either for a standalone toggle or as the visual basis of segmented groups
|
|
6
6
|
such as UiToggleGroup.
|
|
7
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitogglebutton--docs
|
|
7
8
|
|
|
8
9
|
public_import:
|
|
9
10
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -189,17 +190,6 @@ composition:
|
|
|
189
190
|
- title: Segmented multi-select primitive
|
|
190
191
|
notes: Use grouped buttons when composing a custom segmented row or when extending UiToggleGroup behavior.
|
|
191
192
|
|
|
192
|
-
examples:
|
|
193
|
-
- title: Standalone pressed state
|
|
194
|
-
goal: Build a toggleable filter button.
|
|
195
|
-
code: |
|
|
196
|
-
<UiToggleButton
|
|
197
|
-
:pressed="filtersOpened"
|
|
198
|
-
:aria-pressed="filtersOpened"
|
|
199
|
-
@click="filtersOpened = !filtersOpened"
|
|
200
|
-
>
|
|
201
|
-
Filters
|
|
202
|
-
</UiToggleButton>
|
|
203
193
|
|
|
204
194
|
ai_notes:
|
|
205
195
|
do:
|
|
@@ -4,6 +4,7 @@ summary: >
|
|
|
4
4
|
designed for short always-visible choice sets such as weekdays, filters, or compact
|
|
5
5
|
mode flags where classic checkboxes would feel visually heavy. For richer option
|
|
6
6
|
markup, compose it with UiToggleGroupOption instead of relying only on the options array.
|
|
7
|
+
usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitogglegroup--docs
|
|
7
8
|
|
|
8
9
|
public_import:
|
|
9
10
|
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
@@ -187,19 +188,6 @@ composition:
|
|
|
187
188
|
- title: Filter chips with icon
|
|
188
189
|
notes: Use manual option composition or the shared icon slot for compact filters.
|
|
189
190
|
|
|
190
|
-
examples:
|
|
191
|
-
- title: Weekday selection
|
|
192
|
-
goal: Build a segmented multi-select weekday picker.
|
|
193
|
-
code: |
|
|
194
|
-
<UiToggleGroup
|
|
195
|
-
v-model:model="days"
|
|
196
|
-
aria-label="Weekdays"
|
|
197
|
-
rubber
|
|
198
|
-
>
|
|
199
|
-
<UiToggleGroupOption label="Mon" value="monday" />
|
|
200
|
-
<UiToggleGroupOption label="Tue" value="tuesday" />
|
|
201
|
-
<UiToggleGroupOption label="Wed" value="wednesday" />
|
|
202
|
-
</UiToggleGroup>
|
|
203
191
|
|
|
204
192
|
ai_notes:
|
|
205
193
|
do:
|