@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
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.
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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 [`
|
|
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 `
|
|
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
|
-
- [`
|
|
187
|
+
- [`PROFILES.md`](./PROFILES.md)
|
|
189
188
|
- [`../AGENTS.md`](../AGENTS.md)
|
package/docs/COMPONENTS.md
CHANGED
|
@@ -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
|
-
- [`
|
|
79
|
-
- [`
|
|
80
|
-
- [`
|
|
81
|
-
- [`
|
|
82
|
-
- [`
|
|
83
|
-
- [`
|
|
84
|
-
- [`
|
|
85
|
-
- [`
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
#
|
|
1
|
+
# AI Profiles
|
|
2
2
|
|
|
3
|
-
`PROFILES.md` is the entry point for machine-readable AI-friendly
|
|
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
|
-
-
|
|
9
|
-
-
|
|
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
|
-
-
|
|
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
|
-
- `
|
|
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
|
|
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. [`
|
|
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. [`
|
|
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
|
|
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.
|