@retailcrm/embed-ui-v1-components 0.9.21 → 0.9.22-alpha.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 (96) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +3 -4
  3. package/assets/sprites/actions/add-square-outlined.svg +8 -0
  4. package/assets/sprites/actions/drag.svg +8 -0
  5. package/bin/embed-ui-v1-components.mjs +227 -50
  6. package/bin/postinstall.mjs +2 -1
  7. package/dist/host.cjs +1204 -488
  8. package/dist/host.css +629 -0
  9. package/dist/host.d.ts +100 -20
  10. package/dist/host.js +1205 -489
  11. package/dist/remote.cjs +1210 -153
  12. package/dist/remote.d.ts +786 -36
  13. package/dist/remote.js +1212 -155
  14. package/docs/AI.md +19 -20
  15. package/docs/COMPONENTS.md +58 -59
  16. package/docs/FORMAT.md +6 -8
  17. package/docs/PROFILES.md +34 -21
  18. package/docs/README.md +3 -6
  19. package/docs/profiles/{UiAddButton.yml → components/UiAddButton.yml} +49 -2
  20. package/docs/profiles/{UiAlert.yml → components/UiAlert.yml} +32 -2
  21. package/docs/profiles/{UiAvatar.yml → components/UiAvatar.yml} +17 -3
  22. package/docs/profiles/{UiAvatarList.yml → components/UiAvatarList.yml} +0 -2
  23. package/docs/profiles/{UiButton.yml → components/UiButton.yml} +14 -1
  24. package/docs/profiles/components/UiCalendar.yml +190 -0
  25. package/docs/profiles/{UiCheckbox.yml → components/UiCheckbox.yml} +28 -2
  26. package/docs/profiles/{UiCollapse.yml → components/UiCollapse.yml} +57 -2
  27. package/docs/profiles/{UiCollapseBox.yml → components/UiCollapseBox.yml} +64 -2
  28. package/docs/profiles/{UiCollapseGroup.yml → components/UiCollapseGroup.yml} +0 -2
  29. package/docs/profiles/{UiCopyButton.yml → components/UiCopyButton.yml} +19 -2
  30. package/docs/profiles/{UiDate.yml → components/UiDate.yml} +20 -2
  31. package/docs/profiles/{UiDatePicker.yml → components/UiDatePicker.yml} +51 -2
  32. package/docs/profiles/{UiError.yml → components/UiError.yml} +48 -2
  33. package/docs/profiles/{UiField.yml → components/UiField.yml} +46 -1
  34. package/docs/profiles/{UiInfobox.yml → components/UiInfobox.yml} +54 -2
  35. package/docs/profiles/{UiLink.yml → components/UiLink.yml} +22 -2
  36. package/docs/profiles/{UiLoader.yml → components/UiLoader.yml} +0 -2
  37. package/docs/profiles/{UiMenuItem.yml → components/UiMenuItem.yml} +0 -2
  38. package/docs/profiles/{UiMenuItemGroup.yml → components/UiMenuItemGroup.yml} +0 -2
  39. package/docs/profiles/{UiModalSidebar.yml → components/UiModalSidebar.yml} +80 -2
  40. package/docs/profiles/components/UiModalWindow.yml +181 -0
  41. package/docs/profiles/{UiModalWindowSurface.yml → components/UiModalWindowSurface.yml} +0 -2
  42. package/docs/profiles/{UiNumberStepper.yml → components/UiNumberStepper.yml} +14 -2
  43. package/docs/profiles/{UiPageHeader.yml → components/UiPageHeader.yml} +39 -1
  44. package/docs/profiles/components/UiPopconfirm.yml +164 -0
  45. package/docs/profiles/{UiPopper.yml → components/UiPopper.yml} +66 -1
  46. package/docs/profiles/{UiPopperConnector.yml → components/UiPopperConnector.yml} +0 -2
  47. package/docs/profiles/{UiPopperTarget.yml → components/UiPopperTarget.yml} +0 -2
  48. package/docs/profiles/{UiRadio.yml → components/UiRadio.yml} +15 -2
  49. package/docs/profiles/{UiRadioSwitch.yml → components/UiRadioSwitch.yml} +55 -1
  50. package/docs/profiles/{UiRadioSwitchOption.yml → components/UiRadioSwitchOption.yml} +0 -2
  51. package/docs/profiles/{UiScrollBox.yml → components/UiScrollBox.yml} +45 -2
  52. package/docs/profiles/{UiSelect.yml → components/UiSelect.yml} +133 -1
  53. package/docs/profiles/{UiSelectOption.yml → components/UiSelectOption.yml} +0 -2
  54. package/docs/profiles/{UiSelectOptionGroup.yml → components/UiSelectOptionGroup.yml} +0 -2
  55. package/docs/profiles/{UiSkeleton.yml → components/UiSkeleton.yml} +11 -2
  56. package/docs/profiles/{UiSlider.yml → components/UiSlider.yml} +85 -2
  57. package/docs/profiles/{UiSwitch.yml → components/UiSwitch.yml} +50 -2
  58. package/docs/profiles/{UiTab.yml → components/UiTab.yml} +126 -2
  59. package/docs/profiles/{UiTabGroup.yml → components/UiTabGroup.yml} +0 -1
  60. package/docs/profiles/components/UiTable.yml +622 -0
  61. package/docs/profiles/{UiTableBodyCell.yml → components/UiTableBodyCell.yml} +0 -2
  62. package/docs/profiles/{UiTableColumn.yml → components/UiTableColumn.yml} +0 -2
  63. package/docs/profiles/{UiTableFooterButton.yml → components/UiTableFooterButton.yml} +0 -2
  64. package/docs/profiles/{UiTableFooterSection.yml → components/UiTableFooterSection.yml} +0 -2
  65. package/docs/profiles/{UiTableHeadCell.yml → components/UiTableHeadCell.yml} +0 -2
  66. package/docs/profiles/{UiTableSorter.yml → components/UiTableSorter.yml} +0 -2
  67. package/docs/profiles/{UiTag.yml → components/UiTag.yml} +13 -2
  68. package/docs/profiles/{UiTextbox.yml → components/UiTextbox.yml} +20 -1
  69. package/docs/profiles/{UiTimePicker.yml → components/UiTimePicker.yml} +60 -2
  70. package/docs/profiles/{UiToggleButton.yml → components/UiToggleButton.yml} +16 -1
  71. package/docs/profiles/{UiToggleGroup.yml → components/UiToggleGroup.yml} +25 -1
  72. package/docs/profiles/{UiToggleGroupOption.yml → components/UiToggleGroupOption.yml} +0 -2
  73. package/docs/profiles/{UiToolbarButton.yml → components/UiToolbarButton.yml} +15 -2
  74. package/docs/profiles/{UiToolbarLink.yml → components/UiToolbarLink.yml} +13 -2
  75. package/docs/profiles/{UiTooltip.yml → components/UiTooltip.yml} +18 -2
  76. package/docs/profiles/{UiTransition.yml → components/UiTransition.yml} +0 -2
  77. package/docs/profiles/{UiYandexMap.yml → components/UiYandexMap.yml} +24 -2
  78. package/docs/profiles/pages/CardSettingsPage.yml +58 -0
  79. package/docs/profiles/pages/CollapseBlockPage.yml +46 -0
  80. package/docs/profiles/pages/EntityListPage.yml +66 -0
  81. package/docs/profiles/pages/ModalSidebar.yml +158 -0
  82. package/docs/profiles/pages/ModalWindow.yml +55 -0
  83. package/docs/profiles/pages/MultiColumnPage.yml +27 -0
  84. package/docs/profiles/pages/PageComposition.yml +56 -0
  85. package/package.json +1 -1
  86. package/docs/AGENT-DESIGN-GUIDELINES.md +0 -463
  87. package/docs/assets/page-guidelines/card-settings-page.png +0 -0
  88. package/docs/assets/page-guidelines/collapse-block-page.png +0 -0
  89. package/docs/assets/page-guidelines/entity-list-page.png +0 -0
  90. package/docs/assets/page-guidelines/modal-sidebar.png +0 -0
  91. package/docs/assets/page-guidelines/modal-window.png +0 -0
  92. package/docs/assets/page-guidelines/multi-column-page.png +0 -0
  93. package/docs/profiles/UiCalendar.yml +0 -76
  94. package/docs/profiles/UiImage.yml +0 -67
  95. package/docs/profiles/UiModalWindow.yml +0 -86
  96. 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.