@retailcrm/embed-ui-v1-components 0.9.21 → 0.9.22-alpha.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.
- package/AGENTS.md +3 -3
- package/README.md +3 -4
- package/assets/sprites/actions/add-square-outlined.svg +8 -0
- package/assets/sprites/actions/drag.svg +8 -0
- package/bin/embed-ui-v1-components.mjs +227 -50
- package/bin/postinstall.mjs +2 -1
- package/dist/host.cjs +1204 -488
- package/dist/host.css +629 -0
- package/dist/host.d.ts +100 -20
- package/dist/host.js +1205 -489
- package/dist/remote.cjs +1210 -153
- package/dist/remote.d.ts +786 -36
- package/dist/remote.js +1212 -155
- package/docs/AI.md +19 -20
- package/docs/COMPONENTS.md +58 -59
- package/docs/FORMAT.md +6 -8
- package/docs/PROFILES.md +34 -21
- package/docs/README.md +3 -6
- package/docs/profiles/{UiAddButton.yml → components/UiAddButton.yml} +49 -2
- package/docs/profiles/{UiAlert.yml → components/UiAlert.yml} +32 -2
- package/docs/profiles/{UiAvatar.yml → components/UiAvatar.yml} +17 -3
- package/docs/profiles/{UiAvatarList.yml → components/UiAvatarList.yml} +0 -2
- package/docs/profiles/{UiButton.yml → components/UiButton.yml} +14 -1
- package/docs/profiles/components/UiCalendar.yml +190 -0
- package/docs/profiles/{UiCheckbox.yml → components/UiCheckbox.yml} +28 -2
- package/docs/profiles/{UiCollapse.yml → components/UiCollapse.yml} +57 -2
- package/docs/profiles/{UiCollapseBox.yml → components/UiCollapseBox.yml} +64 -2
- package/docs/profiles/{UiCollapseGroup.yml → components/UiCollapseGroup.yml} +0 -2
- package/docs/profiles/{UiCopyButton.yml → components/UiCopyButton.yml} +19 -2
- package/docs/profiles/{UiDate.yml → components/UiDate.yml} +20 -2
- package/docs/profiles/{UiDatePicker.yml → components/UiDatePicker.yml} +51 -2
- package/docs/profiles/{UiError.yml → components/UiError.yml} +48 -2
- package/docs/profiles/{UiField.yml → components/UiField.yml} +46 -1
- package/docs/profiles/{UiInfobox.yml → components/UiInfobox.yml} +54 -2
- package/docs/profiles/{UiLink.yml → components/UiLink.yml} +22 -2
- package/docs/profiles/{UiLoader.yml → components/UiLoader.yml} +0 -2
- package/docs/profiles/{UiMenuItem.yml → components/UiMenuItem.yml} +0 -2
- package/docs/profiles/{UiMenuItemGroup.yml → components/UiMenuItemGroup.yml} +0 -2
- package/docs/profiles/{UiModalSidebar.yml → components/UiModalSidebar.yml} +80 -2
- package/docs/profiles/components/UiModalWindow.yml +181 -0
- package/docs/profiles/{UiModalWindowSurface.yml → components/UiModalWindowSurface.yml} +0 -2
- package/docs/profiles/{UiNumberStepper.yml → components/UiNumberStepper.yml} +14 -2
- package/docs/profiles/{UiPageHeader.yml → components/UiPageHeader.yml} +39 -1
- package/docs/profiles/components/UiPopconfirm.yml +164 -0
- package/docs/profiles/{UiPopper.yml → components/UiPopper.yml} +66 -1
- package/docs/profiles/{UiPopperConnector.yml → components/UiPopperConnector.yml} +0 -2
- package/docs/profiles/{UiPopperTarget.yml → components/UiPopperTarget.yml} +0 -2
- package/docs/profiles/{UiRadio.yml → components/UiRadio.yml} +15 -2
- package/docs/profiles/{UiRadioSwitch.yml → components/UiRadioSwitch.yml} +55 -1
- package/docs/profiles/{UiRadioSwitchOption.yml → components/UiRadioSwitchOption.yml} +0 -2
- package/docs/profiles/{UiScrollBox.yml → components/UiScrollBox.yml} +45 -2
- package/docs/profiles/{UiSelect.yml → components/UiSelect.yml} +133 -1
- package/docs/profiles/{UiSelectOption.yml → components/UiSelectOption.yml} +0 -2
- package/docs/profiles/{UiSelectOptionGroup.yml → components/UiSelectOptionGroup.yml} +0 -2
- package/docs/profiles/{UiSkeleton.yml → components/UiSkeleton.yml} +11 -2
- package/docs/profiles/{UiSlider.yml → components/UiSlider.yml} +85 -2
- package/docs/profiles/{UiSwitch.yml → components/UiSwitch.yml} +50 -2
- package/docs/profiles/{UiTab.yml → components/UiTab.yml} +126 -2
- package/docs/profiles/{UiTabGroup.yml → components/UiTabGroup.yml} +0 -1
- package/docs/profiles/components/UiTable.yml +622 -0
- package/docs/profiles/{UiTableBodyCell.yml → components/UiTableBodyCell.yml} +0 -2
- package/docs/profiles/{UiTableColumn.yml → components/UiTableColumn.yml} +0 -2
- package/docs/profiles/{UiTableFooterButton.yml → components/UiTableFooterButton.yml} +0 -2
- package/docs/profiles/{UiTableFooterSection.yml → components/UiTableFooterSection.yml} +0 -2
- package/docs/profiles/{UiTableHeadCell.yml → components/UiTableHeadCell.yml} +0 -2
- package/docs/profiles/{UiTableSorter.yml → components/UiTableSorter.yml} +0 -2
- package/docs/profiles/{UiTag.yml → components/UiTag.yml} +13 -2
- package/docs/profiles/{UiTextbox.yml → components/UiTextbox.yml} +20 -1
- package/docs/profiles/{UiTimePicker.yml → components/UiTimePicker.yml} +60 -2
- package/docs/profiles/{UiToggleButton.yml → components/UiToggleButton.yml} +16 -1
- package/docs/profiles/{UiToggleGroup.yml → components/UiToggleGroup.yml} +25 -1
- package/docs/profiles/{UiToggleGroupOption.yml → components/UiToggleGroupOption.yml} +0 -2
- package/docs/profiles/{UiToolbarButton.yml → components/UiToolbarButton.yml} +15 -2
- package/docs/profiles/{UiToolbarLink.yml → components/UiToolbarLink.yml} +13 -2
- package/docs/profiles/{UiTooltip.yml → components/UiTooltip.yml} +18 -2
- package/docs/profiles/{UiTransition.yml → components/UiTransition.yml} +0 -2
- package/docs/profiles/{UiYandexMap.yml → components/UiYandexMap.yml} +24 -2
- package/docs/profiles/pages/CardSettingsPage.yml +58 -0
- package/docs/profiles/pages/CollapseBlockPage.yml +46 -0
- package/docs/profiles/pages/EntityListPage.yml +66 -0
- package/docs/profiles/pages/ModalSidebar.yml +158 -0
- package/docs/profiles/pages/ModalWindow.yml +55 -0
- package/docs/profiles/pages/MultiColumnPage.yml +27 -0
- package/docs/profiles/pages/PageComposition.yml +56 -0
- package/package.json +1 -1
- package/docs/AGENT-DESIGN-GUIDELINES.md +0 -463
- 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/UiCalendar.yml +0 -76
- package/docs/profiles/UiImage.yml +0 -67
- package/docs/profiles/UiModalWindow.yml +0 -86
- package/docs/profiles/UiTable.yml +0 -300
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
component: UiTable
|
|
2
|
-
summary: >
|
|
3
|
-
UiTable is the main data table component. It supports row rendering, grouping, expandable rows,
|
|
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
|
|
6
|
-
|
|
7
|
-
public_import:
|
|
8
|
-
from: '@retailcrm/embed-ui-v1-components/remote'
|
|
9
|
-
named:
|
|
10
|
-
- UiTable
|
|
11
|
-
|
|
12
|
-
related_components:
|
|
13
|
-
- UiTableColumn
|
|
14
|
-
- UiTableFooterButton
|
|
15
|
-
- UiTableFooterSection
|
|
16
|
-
- UiTableSorter
|
|
17
|
-
|
|
18
|
-
use_when:
|
|
19
|
-
- You need structured tabular data.
|
|
20
|
-
- You need group headers, expandable rows, or footer sections.
|
|
21
|
-
|
|
22
|
-
avoid_when:
|
|
23
|
-
- You need a simple list or card layout.
|
|
24
|
-
|
|
25
|
-
api:
|
|
26
|
-
key_props:
|
|
27
|
-
- name: rows
|
|
28
|
-
- name: rowKey
|
|
29
|
-
- name: headless
|
|
30
|
-
- name: bordered
|
|
31
|
-
- name: fixed
|
|
32
|
-
- name: groupBy
|
|
33
|
-
slots:
|
|
34
|
-
- name: default
|
|
35
|
-
zone: columns
|
|
36
|
-
creates: Column declarations.
|
|
37
|
-
- name: expand
|
|
38
|
-
zone: expanded-row
|
|
39
|
-
creates: Expanded row content.
|
|
40
|
-
- name: footer
|
|
41
|
-
zone: footer
|
|
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.
|
|
55
|
-
- name: group-head
|
|
56
|
-
zone: group-head
|
|
57
|
-
creates: Group heading content.
|
|
58
|
-
- name: empty
|
|
59
|
-
zone: empty-state
|
|
60
|
-
creates: Empty-state content.
|
|
61
|
-
emits:
|
|
62
|
-
- name: row:click
|
|
63
|
-
methods:
|
|
64
|
-
- name: resetExpanded
|
|
65
|
-
- name: expand
|
|
66
|
-
- name: collapse
|
|
67
|
-
- name: toggle
|
|
68
|
-
|
|
69
|
-
rendered_structure:
|
|
70
|
-
descriptive_only: true
|
|
71
|
-
root:
|
|
72
|
-
shape: table.ui-v1-table
|
|
73
|
-
tag: table
|
|
74
|
-
zones:
|
|
75
|
-
- .ui-v1-table__section_head
|
|
76
|
-
- .ui-v1-table__section_body
|
|
77
|
-
- .ui-v1-table__section_foot
|
|
78
|
-
- .ui-v1-table__row
|
|
79
|
-
- .ui-v1-table__head-cell
|
|
80
|
-
- .ui-v1-table__body-cell
|
|
81
|
-
notes: >
|
|
82
|
-
Table layout is distributed across head, body, foot, and cell-level classes. Treat this as a
|
|
83
|
-
reasoning model for geometry and spacing, not as a stable selector contract.
|
|
84
|
-
|
|
85
|
-
geometry:
|
|
86
|
-
layout: block-width table
|
|
87
|
-
root_display: table
|
|
88
|
-
width: 100%
|
|
89
|
-
width_behavior: stretches to container width by default
|
|
90
|
-
notes:
|
|
91
|
-
- Root fills available width.
|
|
92
|
-
- fixed=true switches table-layout from auto to fixed.
|
|
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.
|
|
96
|
-
|
|
97
|
-
styling:
|
|
98
|
-
notes:
|
|
99
|
-
- UiTable exposes a relatively rich CSS-variable surface for spacing and table chrome.
|
|
100
|
-
- Prefer table props and slot composition first, then CSS variables for spacing or background tuning.
|
|
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.
|
|
104
|
-
root_classes:
|
|
105
|
-
- .ui-v1-table
|
|
106
|
-
state_classes:
|
|
107
|
-
- .ui-v1-table_fixed
|
|
108
|
-
- .ui-v1-table_bordered
|
|
109
|
-
- .ui-v1-table__head-cell_align-center
|
|
110
|
-
- .ui-v1-table__head-cell_align-right
|
|
111
|
-
- .ui-v1-table__body-cell_align-center
|
|
112
|
-
- .ui-v1-table__body-cell_align-right
|
|
113
|
-
- .ui-v1-table__body-cell_valign-top
|
|
114
|
-
- .ui-v1-table__body-cell_valign-bottom
|
|
115
|
-
- .ui-v1-table__body-cell_theme-group
|
|
116
|
-
- .ui-v1-table__body-cell_trim
|
|
117
|
-
- .ui-v1-table__head-cell_trim
|
|
118
|
-
zones:
|
|
119
|
-
- .ui-v1-table__head-cell
|
|
120
|
-
- .ui-v1-table__body-cell
|
|
121
|
-
- .ui-v1-table__footer-cell
|
|
122
|
-
css_variables:
|
|
123
|
-
public_theme_variables:
|
|
124
|
-
- name: --ui-v1-table-border-width
|
|
125
|
-
effect: Outer border width in bordered mode.
|
|
126
|
-
- name: --ui-v1-table-rounding
|
|
127
|
-
effect: Shared corner rounding.
|
|
128
|
-
- name: --ui-v1-table-cell-padding-x
|
|
129
|
-
effect: Base inline cell padding.
|
|
130
|
-
- name: --ui-v1-table-cell-padding-y
|
|
131
|
-
effect: Base block cell padding.
|
|
132
|
-
- name: --ui-v1-table-head-background
|
|
133
|
-
effect: Header row background.
|
|
134
|
-
- name: --ui-v1-table-group-head-background
|
|
135
|
-
effect: Group heading row background.
|
|
136
|
-
- name: --ui-v1-table-padding-start
|
|
137
|
-
effect: Effective first-column start padding.
|
|
138
|
-
- name: --ui-v1-table-padding-end
|
|
139
|
-
effect: Effective last-column end padding.
|
|
140
|
-
internal_layout_variables:
|
|
141
|
-
- name: --ui-v1-table-effective-padding-start
|
|
142
|
-
effect: Start padding after bordered adjustments.
|
|
143
|
-
- name: --ui-v1-table-effective-padding-end
|
|
144
|
-
effect: End padding after bordered adjustments.
|
|
145
|
-
- name: --ui-v1-table-head-cell-padding-block-start
|
|
146
|
-
effect: Header top padding.
|
|
147
|
-
- name: --ui-v1-table-head-cell-padding-block-end
|
|
148
|
-
effect: Header bottom padding.
|
|
149
|
-
- name: --ui-v1-table-body-cell-padding-block-start
|
|
150
|
-
effect: Body top padding.
|
|
151
|
-
- name: --ui-v1-table-body-cell-padding-block-end
|
|
152
|
-
effect: Body bottom padding.
|
|
153
|
-
- name: --ui-v1-table-group-head-padding-block-start
|
|
154
|
-
effect: Group row top padding.
|
|
155
|
-
- name: --ui-v1-table-group-head-padding-block-end
|
|
156
|
-
effect: Group row bottom padding.
|
|
157
|
-
typography:
|
|
158
|
-
default:
|
|
159
|
-
mixin: text-small
|
|
160
|
-
size: 14px
|
|
161
|
-
line_height: 20px
|
|
162
|
-
weight: 400
|
|
163
|
-
head_cells:
|
|
164
|
-
mixin: text-tiny-accent
|
|
165
|
-
size: 12px
|
|
166
|
-
line_height: 14px
|
|
167
|
-
weight: 500
|
|
168
|
-
group_rows:
|
|
169
|
-
mixin: text-tiny
|
|
170
|
-
size: 12px
|
|
171
|
-
line_height: 14px
|
|
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.
|