@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
package/docs/AI.md CHANGED
@@ -10,7 +10,6 @@ Only the public package contract is described below, without depending on the re
10
10
  - Package name: `@retailcrm/embed-ui-v1-components`
11
11
  - Purpose: UI components and UI helpers for RetailCRM JS extensions
12
12
  - Framework: Vue 3
13
- - Published Storybook: `https://retailcrm.github.io/embed-ui/v1-components/0.9.18/`
14
13
  - Primary public entrypoints:
15
14
  - `@retailcrm/embed-ui-v1-components/remote`
16
15
  - `@retailcrm/embed-ui-v1-components/host`
@@ -31,12 +30,11 @@ When generating UI code, use this order:
31
30
  1. read [`../README.md`](../README.md) and [`../AGENTS.md`](../AGENTS.md) for package-level usage rules;
32
31
  2. read [`COMPONENTS.md`](./COMPONENTS.md) to identify candidate components;
33
32
  3. open a detailed profile from [`PROFILES.md`](./PROFILES.md) if one exists;
34
- 4. use the profile `usage` link for published Storybook examples and visual behavior;
35
- 5. read [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md) when the task is about complete
33
+ 4. read the relevant page profile from [`PROFILES.md`](./PROFILES.md) when the task is about complete
36
34
  pages, modals, sidebars, filters, tables, or settings layouts;
37
- 6. use [`FORMAT.md`](./FORMAT.md) as the schema for what information is considered reliable;
38
- 7. read [`STYLING.md`](./STYLING.md) when the task is about classes, variables, typography, or visual zones;
39
- 8. if no profile exists yet, fall back to [Storybook](https://retailcrm.github.io/embed-ui/v1-components/0.9.18/) docs and public type declarations, and state any inference explicitly.
35
+ 5. use [`FORMAT.md`](./FORMAT.md) as the schema for what information is considered reliable;
36
+ 6. read [`STYLING.md`](./STYLING.md) when the task is about classes, variables, typography, or visual zones;
37
+ 7. if no profile exists yet, fall back to public type declarations and state any inference explicitly.
40
38
 
41
39
  ## Runtime Embedding References
42
40
 
@@ -84,7 +82,7 @@ decorative landing page.
84
82
 
85
83
  Default screen rules:
86
84
 
87
- - use [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md) to choose between an entity list,
85
+ - use [`PageComposition.yml`](./profiles/pages/PageComposition.yml) to choose between an entity list,
88
86
  card/settings page, multi-column page, collapse-block page, modal sidebar, or modal window;
89
87
  - use `UiPageHeader` for page identity and top-level actions;
90
88
  - keep filters and controls near the content they affect;
@@ -110,7 +108,8 @@ screen where users scan and refine datasets:
110
108
  - use `UiTable` footer slots for summary, page-size controls, export, and pagination;
111
109
  - compose table footer controls with `UiTableFooterSection` and `UiTableFooterButton`, not regular `UiButton`;
112
110
  - use chevron icon assets for table footer previous/next controls instead of text glyphs;
113
- - add local CSS for table footer layout and states; use `AGENT-DESIGN-GUIDELINES.md` for the canonical footer CSS contract;
111
+ - add local CSS for table footer layout and states; use [`UiTable.yml`](./profiles/components/UiTable.yml)
112
+ for the reference table footer example;
114
113
  - set `size="small"` on `UiLink` inside table cells so links match table body typography.
115
114
 
116
115
  Suggested query names:
@@ -165,17 +164,17 @@ The preferred styling signal is:
165
164
 
166
165
  ## Current High-Signal Profiles
167
166
 
168
- - [`UiField`](./profiles/UiField.yml)
169
- - [`UiTextbox`](./profiles/UiTextbox.yml)
170
- - [`UiButton`](./profiles/UiButton.yml)
171
- - [`UiPageHeader`](./profiles/UiPageHeader.yml)
172
- - [`UiSelect`](./profiles/UiSelect.yml)
173
- - [`UiRadioSwitch`](./profiles/UiRadioSwitch.yml)
174
- - [`UiTabGroup`](./profiles/UiTabGroup.yml)
175
- - [`UiTab`](./profiles/UiTab.yml)
176
- - [`UiPopper`](./profiles/UiPopper.yml)
177
- - [`UiPopperConnector`](./profiles/UiPopperConnector.yml)
178
- - [`UiPopperTarget`](./profiles/UiPopperTarget.yml)
167
+ - [`UiField`](./profiles/components/UiField.yml)
168
+ - [`UiTextbox`](./profiles/components/UiTextbox.yml)
169
+ - [`UiButton`](./profiles/components/UiButton.yml)
170
+ - [`UiPageHeader`](./profiles/components/UiPageHeader.yml)
171
+ - [`UiSelect`](./profiles/components/UiSelect.yml)
172
+ - [`UiRadioSwitch`](./profiles/components/UiRadioSwitch.yml)
173
+ - [`UiTabGroup`](./profiles/components/UiTabGroup.yml)
174
+ - [`UiTab`](./profiles/components/UiTab.yml)
175
+ - [`UiPopper`](./profiles/components/UiPopper.yml)
176
+ - [`UiPopperConnector`](./profiles/components/UiPopperConnector.yml)
177
+ - [`UiPopperTarget`](./profiles/components/UiPopperTarget.yml)
179
178
 
180
179
  ## Related Public Docs
181
180
 
@@ -185,5 +184,5 @@ The preferred styling signal is:
185
184
  - [`COMPONENTS.md`](./COMPONENTS.md)
186
185
  - [`FORMAT.md`](./FORMAT.md)
187
186
  - [`STYLING.md`](./STYLING.md)
188
- - [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md)
187
+ - [`PROFILES.md`](./PROFILES.md)
189
188
  - [`../AGENTS.md`](../AGENTS.md)
@@ -10,80 +10,79 @@ Detailed AI-friendly profiles are collected in [`PROFILES.md`](./PROFILES.md).
10
10
 
11
11
  ## Form And Input
12
12
 
13
- - [`UiField`](./profiles/UiField.yml): field wrapper with label, hint, validation state, and slot props for ARIA wiring
14
- - [`UiTextbox`](./profiles/UiTextbox.yml): text or numeric input with prefix, suffix, clear action, and multiline mode
15
- - [`UiCheckbox`](./profiles/UiCheckbox.yml): boolean choice
16
- - [`UiRadio`](./profiles/UiRadio.yml): single choice
17
- - [`UiRadioSwitch`](./profiles/UiRadioSwitch.yml): segmented single-choice switch with inline or section-card appearance
18
- - [`UiRadioSwitchOption`](./profiles/UiRadioSwitchOption.yml): rich option child for UiRadioSwitch
19
- - [`UiToggleGroup`](./profiles/UiToggleGroup.yml): segmented multi-select group built from toggle buttons
20
- - [`UiToggleGroupOption`](./profiles/UiToggleGroupOption.yml): rich option child for UiToggleGroup
21
- - [`UiSwitch`](./profiles/UiSwitch.yml): state toggle
22
- - [`UiSlider`](./profiles/UiSlider.yml): ranged value selection
23
- - [`UiSelect`](./profiles/UiSelect.yml): select container for single or multiple choice
24
- - [`UiSelectOption`](./profiles/UiSelectOption.yml): select option
25
- - [`UiSelectOptionGroup`](./profiles/UiSelectOptionGroup.yml): grouped options
26
- - [`UiDatePicker`](./profiles/UiDatePicker.yml): date or date-range selection
27
- - [`UiTimePicker`](./profiles/UiTimePicker.yml): time selection
28
- - [`UiCalendar`](./profiles/UiCalendar.yml): calendar primitive
29
- - [`UiNumberStepper`](./profiles/UiNumberStepper.yml): numeric input with increment and decrement controls
13
+ - [`UiField`](./profiles/components/UiField.yml): field wrapper with label, hint, validation state, and slot props for ARIA wiring
14
+ - [`UiTextbox`](./profiles/components/UiTextbox.yml): text or numeric input with prefix, suffix, clear action, and multiline mode
15
+ - [`UiCheckbox`](./profiles/components/UiCheckbox.yml): boolean choice
16
+ - [`UiRadio`](./profiles/components/UiRadio.yml): single choice
17
+ - [`UiRadioSwitch`](./profiles/components/UiRadioSwitch.yml): segmented single-choice switch with inline or section-card appearance
18
+ - [`UiRadioSwitchOption`](./profiles/components/UiRadioSwitchOption.yml): rich option child for UiRadioSwitch
19
+ - [`UiToggleGroup`](./profiles/components/UiToggleGroup.yml): segmented multi-select group built from toggle buttons
20
+ - [`UiToggleGroupOption`](./profiles/components/UiToggleGroupOption.yml): rich option child for UiToggleGroup
21
+ - [`UiSwitch`](./profiles/components/UiSwitch.yml): state toggle
22
+ - [`UiSlider`](./profiles/components/UiSlider.yml): ranged value selection
23
+ - [`UiSelect`](./profiles/components/UiSelect.yml): select container for single or multiple choice
24
+ - [`UiSelectOption`](./profiles/components/UiSelectOption.yml): select option
25
+ - [`UiSelectOptionGroup`](./profiles/components/UiSelectOptionGroup.yml): grouped options
26
+ - [`UiDatePicker`](./profiles/components/UiDatePicker.yml): date or date-range selection
27
+ - [`UiTimePicker`](./profiles/components/UiTimePicker.yml): time selection
28
+ - [`UiCalendar`](./profiles/components/UiCalendar.yml): calendar primitive
29
+ - [`UiNumberStepper`](./profiles/components/UiNumberStepper.yml): numeric input with increment and decrement controls
30
30
 
31
31
  ## Actions And Navigation
32
32
 
33
- - [`UiButton`](./profiles/UiButton.yml): main action button that can render as a button or anchor
34
- - [`UiToggleButton`](./profiles/UiToggleButton.yml): stateful toggle button primitive for standalone or grouped use
35
- - [`UiAddButton`](./profiles/UiAddButton.yml): add action button
36
- - [`UiCopyButton`](./profiles/UiCopyButton.yml): copy value action
37
- - [`UiToolbarButton`](./profiles/UiToolbarButton.yml): toolbar button
38
- - [`UiToolbarLink`](./profiles/UiToolbarLink.yml): toolbar link
39
- - [`UiLink`](./profiles/UiLink.yml): text link
40
- - [`UiMenuItem`](./profiles/UiMenuItem.yml): menu item
41
- - [`UiMenuItemGroup`](./profiles/UiMenuItemGroup.yml): menu item group
42
- - [`UiTabGroup`](./profiles/UiTabGroup.yml): tab navigation group with overflow handling and optional active panel
43
- - [`UiTab`](./profiles/UiTab.yml): declarative tab child for UiTabGroup
33
+ - [`UiButton`](./profiles/components/UiButton.yml): main action button that can render as a button or anchor
34
+ - [`UiToggleButton`](./profiles/components/UiToggleButton.yml): stateful toggle button primitive for standalone or grouped use
35
+ - [`UiAddButton`](./profiles/components/UiAddButton.yml): add action button
36
+ - [`UiCopyButton`](./profiles/components/UiCopyButton.yml): copy value action
37
+ - [`UiToolbarButton`](./profiles/components/UiToolbarButton.yml): toolbar button
38
+ - [`UiToolbarLink`](./profiles/components/UiToolbarLink.yml): toolbar link
39
+ - [`UiLink`](./profiles/components/UiLink.yml): text link
40
+ - [`UiMenuItem`](./profiles/components/UiMenuItem.yml): menu item
41
+ - [`UiMenuItemGroup`](./profiles/components/UiMenuItemGroup.yml): menu item group
42
+ - [`UiTabGroup`](./profiles/components/UiTabGroup.yml): tab navigation group with overflow handling and optional active panel
43
+ - [`UiTab`](./profiles/components/UiTab.yml): declarative tab child for UiTabGroup
44
44
 
45
45
  ## Layout And Structure
46
46
 
47
- - [`UiPageHeader`](./profiles/UiPageHeader.yml): page or section header with an editable title and action zone
48
- - [`UiCollapse`](./profiles/UiCollapse.yml): collapsible section
49
- - [`UiCollapseBox`](./profiles/UiCollapseBox.yml): collapsible container
50
- - [`UiCollapseGroup`](./profiles/UiCollapseGroup.yml): multiple collapse coordination
51
- - [`UiScrollBox`](./profiles/UiScrollBox.yml): scrollable container
52
- - [`UiTransition`](./profiles/UiTransition.yml): transition wrapper
47
+ - [`UiPageHeader`](./profiles/components/UiPageHeader.yml): page or section header with an editable title and action zone
48
+ - [`UiCollapse`](./profiles/components/UiCollapse.yml): collapsible section
49
+ - [`UiCollapseBox`](./profiles/components/UiCollapseBox.yml): collapsible container
50
+ - [`UiCollapseGroup`](./profiles/components/UiCollapseGroup.yml): multiple collapse coordination
51
+ - [`UiScrollBox`](./profiles/components/UiScrollBox.yml): scrollable container
52
+ - [`UiTransition`](./profiles/components/UiTransition.yml): transition wrapper
53
53
 
54
54
  ## Feedback And Status
55
55
 
56
- - [`UiAlert`](./profiles/UiAlert.yml): contextual alert or notification
57
- - [`UiInfobox`](./profiles/UiInfobox.yml): highlighted explanatory block
58
- - [`UiError`](./profiles/UiError.yml): compact error state
59
- - [`UiLoader`](./profiles/UiLoader.yml): loading indicator
60
- - [`UiSkeleton`](./profiles/UiSkeleton.yml): content placeholder for loading state
61
- - [`UiTag`](./profiles/UiTag.yml): labels and statuses
56
+ - [`UiAlert`](./profiles/components/UiAlert.yml): contextual alert or notification
57
+ - [`UiInfobox`](./profiles/components/UiInfobox.yml): highlighted explanatory block
58
+ - [`UiError`](./profiles/components/UiError.yml): compact error state
59
+ - [`UiLoader`](./profiles/components/UiLoader.yml): loading indicator
60
+ - [`UiSkeleton`](./profiles/components/UiSkeleton.yml): content placeholder for loading state
61
+ - [`UiTag`](./profiles/components/UiTag.yml): labels and statuses
62
62
 
63
63
  ## Overlays And Modal Patterns
64
64
 
65
- - [`UiModalWindow`](./profiles/UiModalWindow.yml): modal window
66
- - [`UiModalWindowSurface`](./profiles/UiModalWindowSurface.yml): modal surface
67
- - [`UiModalSidebar`](./profiles/UiModalSidebar.yml): sidebar modal
68
- - [`UiTooltip`](./profiles/UiTooltip.yml): tooltip
69
- - [`UiPopper`](./profiles/UiPopper.yml): floating layer
70
- - [`UiPopperTarget`](./profiles/UiPopperTarget.yml): popper target
71
- - [`UiPopperConnector`](./profiles/UiPopperConnector.yml): target-to-floating connector
65
+ - [`UiModalWindow`](./profiles/components/UiModalWindow.yml): modal window
66
+ - [`UiModalWindowSurface`](./profiles/components/UiModalWindowSurface.yml): modal surface
67
+ - [`UiModalSidebar`](./profiles/components/UiModalSidebar.yml): sidebar modal
68
+ - [`UiTooltip`](./profiles/components/UiTooltip.yml): tooltip
69
+ - [`UiPopper`](./profiles/components/UiPopper.yml): floating layer
70
+ - [`UiPopperTarget`](./profiles/components/UiPopperTarget.yml): popper target
71
+ - [`UiPopperConnector`](./profiles/components/UiPopperConnector.yml): target-to-floating connector
72
72
 
73
73
  ## Content And Data Display
74
74
 
75
- - [`UiAvatar`](./profiles/UiAvatar.yml): avatar
76
- - [`UiAvatarList`](./profiles/UiAvatarList.yml): avatar list
77
- - [`UiDate`](./profiles/UiDate.yml): formatted date display
78
- - [`UiImage`](./profiles/UiImage.yml): image display
79
- - [`UiTable`](./profiles/UiTable.yml): table root
80
- - [`UiTableColumn`](./profiles/UiTableColumn.yml): table column declaration
81
- - [`UiTableHeadCell`](./profiles/UiTableHeadCell.yml): table head cell primitive
82
- - [`UiTableBodyCell`](./profiles/UiTableBodyCell.yml): table body cell primitive
83
- - [`UiTableFooterSection`](./profiles/UiTableFooterSection.yml): table footer section container
84
- - [`UiTableFooterButton`](./profiles/UiTableFooterButton.yml): table footer action button
85
- - [`UiTableSorter`](./profiles/UiTableSorter.yml): table sort control primitive
86
- - [`UiYandexMap`](./profiles/UiYandexMap.yml): Yandex map component
75
+ - [`UiAvatar`](./profiles/components/UiAvatar.yml): avatar
76
+ - [`UiAvatarList`](./profiles/components/UiAvatarList.yml): avatar list
77
+ - [`UiDate`](./profiles/components/UiDate.yml): formatted date display
78
+ - [`UiTable`](./profiles/components/UiTable.yml): table root
79
+ - [`UiTableColumn`](./profiles/components/UiTableColumn.yml): table column declaration
80
+ - [`UiTableHeadCell`](./profiles/components/UiTableHeadCell.yml): table head cell primitive
81
+ - [`UiTableBodyCell`](./profiles/components/UiTableBodyCell.yml): table body cell primitive
82
+ - [`UiTableFooterSection`](./profiles/components/UiTableFooterSection.yml): table footer section container
83
+ - [`UiTableFooterButton`](./profiles/components/UiTableFooterButton.yml): table footer action button
84
+ - [`UiTableSorter`](./profiles/components/UiTableSorter.yml): table sort control primitive
85
+ - [`UiYandexMap`](./profiles/components/UiYandexMap.yml): Yandex map component
87
86
 
88
87
  ## Helpers
89
88
 
package/docs/FORMAT.md CHANGED
@@ -19,9 +19,9 @@ A good profile should let an agent answer these questions without opening the so
19
19
 
20
20
  Recommended filename: `<ComponentName>.yml`
21
21
 
22
- Top-level `usage` should point to the published Storybook docs page for version `0.9.18`.
23
- If the component is a subcomponent without its own Storybook page, point `usage` to the nearest
24
- parent or composition page that demonstrates it, for example table parts point to `UiTable`.
22
+ Component profiles should live in `docs/profiles/components`.
23
+ Page-composition profiles should live in `docs/profiles/pages`.
24
+ Use `examples` for copyable snippets and cross-link related profiles with relative `profile` paths.
25
25
 
26
26
  Minimal shape:
27
27
 
@@ -29,7 +29,6 @@ Minimal shape:
29
29
  component: UiComponent
30
30
  summary: >
31
31
  A short description of the component.
32
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/intro--docs
33
32
 
34
33
  public_import:
35
34
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -228,8 +227,7 @@ List:
228
227
  - safe defaults for typical screens;
229
228
  - correct and incorrect composition patterns.
230
229
 
231
- Do not duplicate Storybook examples in YAML profiles. The top-level `usage` link is the source for runnable
232
- examples and visual behavior.
230
+ Keep examples in YAML profiles focused, copyable, and aligned with the public package entrypoints.
233
231
 
234
232
  ## 12. `ai_notes`
235
233
 
@@ -245,7 +243,7 @@ A short list of rules specifically for code generation:
245
243
  - Use the exact names of props, emits, and slots.
246
244
  - For slots, describe not only the name, but also what the slot does and which content restrictions exist.
247
245
  - For styling, distinguish between safe CSS variables and descriptive class names.
248
- - Keep runnable examples in Storybook; YAML profiles should link to Storybook through `usage`.
246
+ - Keep runnable examples in YAML profiles when they clarify safe public usage.
249
247
  - Do not mix "how the component looks right now" with "what is publicly guaranteed".
250
248
  - If behavior is inferred from implementation rather than public API, say that explicitly.
251
249
  - If information is missing, state the limitation rather than inventing details.
@@ -256,7 +254,7 @@ The following data can usually be obtained automatically or semi-automatically:
256
254
 
257
255
  - the list of public exports;
258
256
  - prop, emit, method, and enum names;
259
- - whether Storybook stories and examples exist;
257
+ - whether profile examples exist;
260
258
  - the current root classes and layout zones from templates.
261
259
 
262
260
  These sections almost always need manual writing:
package/docs/PROFILES.md CHANGED
@@ -1,12 +1,13 @@
1
- # Component Profiles
1
+ # AI Profiles
2
2
 
3
- `PROFILES.md` is the entry point for machine-readable AI-friendly component profiles.
3
+ `PROFILES.md` is the entry point for machine-readable AI-friendly profiles.
4
4
 
5
5
  The current profile layer is structured like this:
6
6
 
7
7
  - the index stays in markdown so both humans and agents can navigate it easily;
8
- - the actual profiles live in `docs/profiles/*.yml`;
9
- - YAML is the source of truth for structure, props, slots, emits, composition, and AI rules.
8
+ - component profiles live in `docs/profiles/components/*.yml`;
9
+ - page-composition profiles live in `docs/profiles/pages/*.yml`;
10
+ - YAML is the source of truth for structure, props, slots, emits, composition, page patterns, and AI rules.
10
11
 
11
12
  ## Table Of Contents
12
13
 
@@ -31,24 +32,34 @@ Coverage is now expanding across the public component catalog.
31
32
  Use these entrypoints:
32
33
 
33
34
  - [`COMPONENTS.md`](./COMPONENTS.md) for the full linked component index
34
- - `docs/profiles/*.yml` for per-component machine-readable profiles
35
- - each profile `usage` field for published Storybook 0.9.18 examples and visual behavior
35
+ - `docs/profiles/components/*.yml` for per-component machine-readable profiles
36
+ - `docs/profiles/pages/*.yml` for page, modal, sidebar, filter, table, and settings-layout profiles
36
37
 
37
38
  Current high-signal core profiles:
38
39
 
39
- - [`UiField`](./profiles/UiField.yml)
40
- - [`UiTextbox`](./profiles/UiTextbox.yml)
41
- - [`UiButton`](./profiles/UiButton.yml)
42
- - [`UiToggleButton`](./profiles/UiToggleButton.yml)
43
- - [`UiToggleGroup`](./profiles/UiToggleGroup.yml)
44
- - [`UiPageHeader`](./profiles/UiPageHeader.yml)
45
- - [`UiSelect`](./profiles/UiSelect.yml)
46
- - [`UiRadioSwitch`](./profiles/UiRadioSwitch.yml)
47
- - [`UiTabGroup`](./profiles/UiTabGroup.yml)
48
- - [`UiTab`](./profiles/UiTab.yml)
49
- - [`UiPopper`](./profiles/UiPopper.yml)
50
- - [`UiPopperConnector`](./profiles/UiPopperConnector.yml)
51
- - [`UiPopperTarget`](./profiles/UiPopperTarget.yml)
40
+ - [`UiField`](./profiles/components/UiField.yml)
41
+ - [`UiTextbox`](./profiles/components/UiTextbox.yml)
42
+ - [`UiButton`](./profiles/components/UiButton.yml)
43
+ - [`UiToggleButton`](./profiles/components/UiToggleButton.yml)
44
+ - [`UiToggleGroup`](./profiles/components/UiToggleGroup.yml)
45
+ - [`UiPageHeader`](./profiles/components/UiPageHeader.yml)
46
+ - [`UiSelect`](./profiles/components/UiSelect.yml)
47
+ - [`UiRadioSwitch`](./profiles/components/UiRadioSwitch.yml)
48
+ - [`UiTabGroup`](./profiles/components/UiTabGroup.yml)
49
+ - [`UiTab`](./profiles/components/UiTab.yml)
50
+ - [`UiPopper`](./profiles/components/UiPopper.yml)
51
+ - [`UiPopperConnector`](./profiles/components/UiPopperConnector.yml)
52
+ - [`UiPopperTarget`](./profiles/components/UiPopperTarget.yml)
53
+
54
+ Current page profiles:
55
+
56
+ - [`PageComposition`](./profiles/pages/PageComposition.yml)
57
+ - [`EntityListPage`](./profiles/pages/EntityListPage.yml)
58
+ - [`CardSettingsPage`](./profiles/pages/CardSettingsPage.yml)
59
+ - [`MultiColumnPage`](./profiles/pages/MultiColumnPage.yml)
60
+ - [`CollapseBlockPage`](./profiles/pages/CollapseBlockPage.yml)
61
+ - [`ModalSidebar`](./profiles/pages/ModalSidebar.yml)
62
+ - [`ModalWindow`](./profiles/pages/ModalWindow.yml)
52
63
 
53
64
  ## What To Read First
54
65
 
@@ -56,8 +67,9 @@ Current high-signal core profiles:
56
67
  - `props` if you need a broader practical API view.
57
68
  - `slots` if the task is about markup, zones, and allowed content.
58
69
  - `emits` if the component must be wired into screen logic.
59
- - `usage` if you need Storybook examples or visual behavior.
70
+ - `examples` if you need copyable usage snippets.
60
71
  - `ai_notes` if the agent needs safe defaults and anti-patterns.
72
+ - `profiles/pages/*.yml` if the task is about a full page, modal, sidebar, filter, table, or settings layout.
61
73
 
62
74
  ## Styling Reads
63
75
 
@@ -67,4 +79,5 @@ Current high-signal core profiles:
67
79
  ## Notes
68
80
 
69
81
  - All new updates should be made in YAML profiles.
70
- - Keep profile `usage` links on the Storybook 0.9.18 URL unless another version is required explicitly.
82
+ - Keep component-level details in `profiles/components`.
83
+ - Keep page-composition details in `profiles/pages`.
package/docs/README.md CHANGED
@@ -21,10 +21,8 @@ These docs are optimized for two main scenarios:
21
21
  the target component profile format for AI assistants.
22
22
  - [`STYLING.md`](./STYLING.md)
23
23
  shared guidance for reading classes, CSS variables, and typography in profiles.
24
- - [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md)
25
- page composition rules for agents generating full RetailCRM extension screens.
26
24
  - [`PROFILES.md`](./PROFILES.md)
27
- the index of YAML component profiles.
25
+ the index of YAML component and page profiles.
28
26
 
29
27
  ## Public Entrypoints
30
28
 
@@ -62,7 +60,7 @@ If you need to generate UI quickly:
62
60
  3. [`AI.md`](./AI.md)
63
61
  4. [`COMPONENTS.md`](./COMPONENTS.md)
64
62
  5. the relevant profile from [`PROFILES.md`](./PROFILES.md)
65
- 6. [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md) if the task is about complete pages,
63
+ 6. the relevant page profile from [`PROFILES.md`](./PROFILES.md) if the task is about complete pages,
66
64
  modals, sidebars, filters, tables, or settings layouts
67
65
  7. [`STYLING.md`](./STYLING.md) if the task is about classes, variables, typography, or layout tuning
68
66
 
@@ -70,5 +68,4 @@ If you are extending the docs:
70
68
 
71
69
  1. [`FORMAT.md`](./FORMAT.md)
72
70
  2. [`STYLING.md`](./STYLING.md)
73
- 3. [`AGENT-DESIGN-GUIDELINES.md`](./AGENT-DESIGN-GUIDELINES.md)
74
- 4. the existing profiles in [`PROFILES.md`](./PROFILES.md)
71
+ 3. the existing profiles in [`PROFILES.md`](./PROFILES.md)
@@ -2,7 +2,6 @@ component: UiAddButton
2
2
  summary: >
3
3
  UiAddButton is an action-first button for add or create flows. It is close to UiButton,
4
4
  but tuned for "create another item" scenarios and supports small descriptive additions.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uiaddbutton--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -13,6 +12,55 @@ related_components:
13
12
  - UiButton
14
13
  - UiToolbarButton
15
14
 
15
+ examples:
16
+ - title: Basic add button
17
+ code: |
18
+ <template>
19
+ <UiAddButton>
20
+ Add Button
21
+ </UiAddButton>
22
+ </template>
23
+
24
+ <script lang="ts" setup>
25
+ import { UiAddButton } from '@retailcrm/embed-ui-v1-components/remote'
26
+ </script>
27
+ - title: Small add button (`small`)
28
+ code: |
29
+ <template>
30
+ <UiAddButton small>
31
+ Add Button
32
+ </UiAddButton>
33
+ </template>
34
+
35
+ <script lang="ts" setup>
36
+ import { UiAddButton } from '@retailcrm/embed-ui-v1-components/remote'
37
+ </script>
38
+ - title: Description slot
39
+ code: |
40
+ <template>
41
+ <UiAddButton color="blue">
42
+ Add Button
43
+
44
+ <template #description>
45
+ Description
46
+ </template>
47
+ </UiAddButton>
48
+ </template>
49
+
50
+ <script lang="ts" setup>
51
+ import { UiAddButton } from '@retailcrm/embed-ui-v1-components/remote'
52
+ </script>
53
+ - title: Custom height
54
+ code: |
55
+ <template>
56
+ <UiAddButton :height="120">Add Button</UiAddButton>
57
+ <UiAddButton height="50%">Add Button</UiAddButton>
58
+
59
+ </template>
60
+
61
+ <script lang="ts" setup>
62
+ import { UiAddButton } from '@retailcrm/embed-ui-v1-components/remote'
63
+ </script>
16
64
  use_when:
17
65
  - You need a dedicated create or add action.
18
66
  - You need a compact add CTA with optional extra description.
@@ -82,6 +130,5 @@ styling:
82
130
  notes:
83
131
  - Use documented props and slots as the primary styling API.
84
132
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
85
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
86
133
  root_classes:
87
134
  - .ui-v1-add-button
@@ -2,13 +2,44 @@ component: UiAlert
2
2
  summary: >
3
3
  UiAlert is a compact contextual message block for status, warning, success, and danger feedback.
4
4
  It can be shown inline in normal page flow and can be closable.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uialert--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
9
8
  named:
10
9
  - UiAlert
11
10
 
11
+ examples:
12
+ - title: Basic alert
13
+ code: |
14
+ <template>
15
+ <UiAlert text="Basic alert" />
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import { UiAlert } from '@retailcrm/embed-ui-v1-components/remote'
20
+ </script>
21
+ - title: Warning alert
22
+ code: |
23
+ <template>
24
+ <UiAlert variant="warning" text="Warning alert" />
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { UiAlert } from '@retailcrm/embed-ui-v1-components/remote'
29
+ </script>
30
+ - title: Closable alert
31
+ code: |
32
+ <template>
33
+ <UiAlert
34
+ closable
35
+ text="You can close this alert manually"
36
+ />
37
+
38
+ </template>
39
+
40
+ <script lang="ts" setup>
41
+ import { UiAlert } from '@retailcrm/embed-ui-v1-components/remote'
42
+ </script>
12
43
  use_when:
13
44
  - You need inline status feedback.
14
45
  - You need dismissible page-level or section-level notice content.
@@ -70,6 +101,5 @@ styling:
70
101
  notes:
71
102
  - Use documented props and slots as the primary styling API.
72
103
  - 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
104
  root_classes:
75
105
  - .ui-v1-alert
@@ -2,13 +2,28 @@ component: UiAvatar
2
2
  summary: >
3
3
  UiAvatar renders a user or entity avatar with optional name, status, and link semantics.
4
4
  It is meant for compact identity display rather than generic image rendering.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uiavatar--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
9
8
  named:
10
9
  - UiAvatar
11
10
 
11
+ examples:
12
+ - title: Basic avatar
13
+ code: |
14
+ <template>
15
+ <UiAvatar
16
+ name="Anna Smith"
17
+ src="https://example.com/avatar.jpg"
18
+ size="sm"
19
+ status="none"
20
+ />
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import { UiAvatar } from '@retailcrm/embed-ui-v1-components/remote'
25
+ </script>
26
+
12
27
  use_when:
13
28
  - You need a compact identity marker for a user or contact.
14
29
  - You need avatar display with optional status.
@@ -47,7 +62,7 @@ ai_notes:
47
62
  - Use UiAvatar for identity display, not for general media.
48
63
  - Provide name whenever possible so fallback identity stays meaningful.
49
64
  avoid:
50
- - Do not use it where UiImage is the better semantic fit.
65
+ - Do not use it for generic content images or large media blocks.
51
66
 
52
67
  composition:
53
68
  works_well_with:
@@ -69,6 +84,5 @@ styling:
69
84
  notes:
70
85
  - Use documented props and slots as the primary styling API.
71
86
  - 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
87
  root_classes:
74
88
  - .ui-v1-avatar
@@ -2,7 +2,6 @@ component: UiAvatarList
2
2
  summary: >
3
3
  UiAvatarList renders a compact list of avatars with consistent sizing. It is useful for showing
4
4
  several users or actors in a narrow area.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uiavatar--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -65,6 +64,5 @@ styling:
65
64
  notes:
66
65
  - Use documented props and slots as the primary styling API.
67
66
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
68
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
69
67
  root_classes:
70
68
  - .ui-v1-avatar-list
@@ -3,13 +3,26 @@ summary: >
3
3
  UiButton is the main action component in the library. It covers primary, secondary,
4
4
  tertiary, and outlined use cases, can render as either a button or an anchor,
5
5
  and adapts well to text-plus-icon and icon-only content.
6
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uibutton--docs
7
6
 
8
7
  public_import:
9
8
  from: '@retailcrm/embed-ui-v1-components/remote'
10
9
  named:
11
10
  - UiButton
12
11
 
12
+ examples:
13
+ - title: States
14
+ code: |
15
+ <template>
16
+ <UiButton variant="danger">
17
+ <IconDelete /> Delete
18
+ </UiButton>
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import IconDelete from '@retailcrm/embed-ui-v1-components/assets/sprites/ui/delete-outlined.svg'
23
+ import { UiButton } from '@retailcrm/embed-ui-v1-components/remote'
24
+ </script>
25
+
13
26
  use_when:
14
27
  - You need a primary or secondary action in a form or screen.
15
28
  - You need an inline action in a header, modal, infobox, or toolbar-like area.