@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.
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
@@ -2,7 +2,6 @@ component: UiTableSorter
2
2
  summary: >
3
3
  UiTableSorter is a compact sort control primitive for custom table head content.
4
4
  Use it when header rendering is composed manually and sorting state must be shown explicitly.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitable--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -69,6 +68,5 @@ styling:
69
68
  notes:
70
69
  - Use documented props and slots as the primary styling API.
71
70
  - 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
71
  root_classes:
74
72
  - .ui-v1-table
@@ -1,13 +1,25 @@
1
1
  component: UiTag
2
2
  summary: >
3
3
  UiTag is a compact label or status pill. It can be interactive, removable, pinned, or visually saturated.
4
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitag--docs
5
4
 
6
5
  public_import:
7
6
  from: '@retailcrm/embed-ui-v1-components/remote'
8
7
  named:
9
8
  - UiTag
10
9
 
10
+ examples:
11
+ - title: Slots
12
+ code: |
13
+ <template>
14
+ <UiTag background="#FEA530" saturated>
15
+ VIP
16
+ </UiTag>
17
+ </template>
18
+
19
+ <script lang="ts" setup>
20
+ import { UiTag } from '@retailcrm/embed-ui-v1-components/remote'
21
+ </script>
22
+
11
23
  use_when:
12
24
  - You need a short status or label pill.
13
25
  - You need removable or interactive tags.
@@ -74,6 +86,5 @@ styling:
74
86
  notes:
75
87
  - Use documented props and slots as the primary styling API.
76
88
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
77
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
78
89
  root_classes:
79
90
  - .ui-v1-tag-wrapper
@@ -2,7 +2,6 @@ component: UiTextbox
2
2
  summary: >
3
3
  UiTextbox is the base text and numeric input component. It covers single-line input,
4
4
  textarea mode, numeric and decimal input, plus prefix, suffix, icon zones, and a clear action.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitextbox--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -14,6 +13,26 @@ related_components:
14
13
  - UiPageHeader
15
14
  - UiSelect
16
15
 
16
+ examples:
17
+ - title: Slots
18
+ code: |
19
+ <template>
20
+ <UiTextbox v-model:value="term">
21
+ <template #leading-icon>
22
+ <IconSearch aria-hidden="true" />
23
+ </template>
24
+ </UiTextbox>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import IconSearch from '@retailcrm/embed-ui-v1-components/assets/sprites/actions/search.svg'
29
+ import { UiTextbox } from '@retailcrm/embed-ui-v1-components/remote'
30
+
31
+ import { ref } from 'vue'
32
+
33
+ const term = ref('')
34
+ </script>
35
+
17
36
  use_when:
18
37
  - You need a standard text input.
19
38
  - You need search, email, phone, url, or password input.
@@ -2,7 +2,6 @@ component: UiTimePicker
2
2
  summary: >
3
3
  UiTimePicker is a time input component that combines textbox-like entry with a list of
4
4
  normalized time variants and bounds.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitimepicker--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -13,6 +12,66 @@ related_components:
13
12
  - UiTextbox
14
13
  - UiPopper
15
14
 
15
+ examples:
16
+ - title: Example
17
+ code: |
18
+ <template>
19
+ <UiTimePicker v-model:value="value" />
20
+ </template>
21
+
22
+ <script lang="ts" setup>
23
+ import { ref } from 'vue'
24
+ import { UiTimePicker } from '@retailcrm/embed-ui-v1-components/remote'
25
+
26
+ const value = ref('10:30')
27
+ </script>
28
+ - title: Option interval (`interval`)
29
+ code: |
30
+ <template>
31
+ <UiTimePicker
32
+ v-model:value="value"
33
+ :interval="15"
34
+ />
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import { ref } from 'vue'
39
+ import { UiTimePicker } from '@retailcrm/embed-ui-v1-components/remote'
40
+
41
+ const value = ref('10:30')
42
+ </script>
43
+ - title: Range limit (`minTime` / `maxTime`)
44
+ code: |
45
+ <template>
46
+ <UiTimePicker
47
+ v-model:value="value"
48
+ :min-time="[9, 30]"
49
+ :max-time="[18, 0]"
50
+ />
51
+ </template>
52
+
53
+ <script lang="ts" setup>
54
+ import { ref } from 'vue'
55
+ import { UiTimePicker } from '@retailcrm/embed-ui-v1-components/remote'
56
+
57
+ const value = ref('10:30')
58
+ </script>
59
+ - title: Custom options (`timeVariants`)
60
+ code: |
61
+ <template>
62
+ <UiTimePicker
63
+ v-model:value="value"
64
+ :time-variants="['09:00', '09:30', '12:25', '16:00']"
65
+ />
66
+
67
+ </template>
68
+
69
+ <script lang="ts" setup>
70
+ import { ref } from 'vue'
71
+ import { UiTimePicker } from '@retailcrm/embed-ui-v1-components/remote'
72
+
73
+ const value = ref('10:30')
74
+ </script>
16
75
  use_when:
17
76
  - You need editable time input.
18
77
  - You need bounded time variants or interval-based time selection.
@@ -81,6 +140,5 @@ styling:
81
140
  notes:
82
141
  - Use documented props and slots as the primary styling API.
83
142
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
84
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
85
143
  root_classes:
86
144
  - .ui-v1-time-picker
@@ -4,7 +4,6 @@ summary: >
4
4
  native button shape and methods, but the pressed state is controlled externally and
5
5
  can be used either for a standalone toggle or as the visual basis of segmented groups
6
6
  such as UiToggleGroup.
7
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitogglebutton--docs
8
7
 
9
8
  public_import:
10
9
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -16,6 +15,22 @@ related_components:
16
15
  - UiCheckbox
17
16
  - UiSwitch
18
17
 
18
+ examples:
19
+ - title: Single toggle
20
+ code: |
21
+ <template>
22
+ <UiToggleButton :pressed="opened" @click="opened = !opened">
23
+ Filters
24
+ </UiToggleButton>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { ref } from 'vue'
29
+ import { UiToggleButton } from '@retailcrm/embed-ui-v1-components/remote'
30
+
31
+ const opened = ref(false)
32
+ </script>
33
+
19
34
  use_when:
20
35
  - You need a button-looking control with externally managed pressed state.
21
36
  - You need a primitive for segmented controls or compact filter chips.
@@ -4,7 +4,6 @@ summary: >
4
4
  designed for short always-visible choice sets such as weekdays, filters, or compact
5
5
  mode flags where classic checkboxes would feel visually heavy. For richer option
6
6
  markup, compose it with UiToggleGroupOption instead of relying only on the options array.
7
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitogglegroup--docs
8
7
 
9
8
  public_import:
10
9
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -17,6 +16,31 @@ related_components:
17
16
  - UiCheckbox
18
17
  - UiRadioSwitch
19
18
 
19
+ examples:
20
+ - title: Weekday selection
21
+ code: |
22
+ <template>
23
+ <UiToggleGroup v-model:model="days" rubber>
24
+ <UiToggleGroupOption label="Mon" value="monday" />
25
+ <UiToggleGroupOption label="Tue" value="tuesday" />
26
+ <UiToggleGroupOption label="Wed" value="wednesday" />
27
+ <UiToggleGroupOption label="Thu" value="thursday" />
28
+ <UiToggleGroupOption label="Fri" value="friday" />
29
+ <UiToggleGroupOption label="Sat" value="saturday" />
30
+ <UiToggleGroupOption label="Sun" value="sunday" />
31
+ </UiToggleGroup>
32
+ </template>
33
+
34
+ <script lang="ts" setup>
35
+ import { ref } from 'vue'
36
+ import {
37
+ UiToggleGroup,
38
+ UiToggleGroupOption,
39
+ } from '@retailcrm/embed-ui-v1-components/remote'
40
+
41
+ const days = ref(['monday', 'wednesday', 'friday'])
42
+ </script>
43
+
20
44
  use_when:
21
45
  - You need multiple independent selections from a short fixed set.
22
46
  - You want checkbox-like semantics with segmented button visuals.
@@ -3,7 +3,6 @@ summary: >
3
3
  UiToggleGroupOption is the declarative option child of UiToggleGroup. It is the
4
4
  richer alternative to the plain options array and is used when one segment needs
5
5
  custom icon, custom label markup, or a non-trivial value.
6
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitogglegroup--docs
7
6
 
8
7
  public_import:
9
8
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -109,6 +108,5 @@ styling:
109
108
  notes:
110
109
  - Use documented props and slots as the primary styling API.
111
110
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
112
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
113
111
  root_classes:
114
112
  - .ui-v1-toggle-button
@@ -2,13 +2,27 @@ component: UiToolbarButton
2
2
  summary: >
3
3
  UiToolbarButton is a compact button for toolbar zones. It shares action semantics with buttons
4
4
  but is tuned for dense toolbar layouts.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitoolbarbutton--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
9
8
  named:
10
9
  - UiToolbarButton
11
10
 
11
+ examples:
12
+ - title: Toolbar action
13
+ code: |
14
+ <template>
15
+ <UiToolbarButton>
16
+ <IconAdd aria-hidden="true" />
17
+ Create
18
+ </UiToolbarButton>
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import IconAdd from '@retailcrm/embed-ui-v1-components/assets/sprites/actions/add.svg'
23
+ import { UiToolbarButton } from '@retailcrm/embed-ui-v1-components/remote'
24
+ </script>
25
+
12
26
  use_when:
13
27
  - You need a compact button in a toolbar or action strip.
14
28
 
@@ -69,6 +83,5 @@ styling:
69
83
  notes:
70
84
  - Use documented props and slots as the primary styling API.
71
85
  - 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
86
  root_classes:
74
87
  - .ui-v1-button
@@ -1,13 +1,25 @@
1
1
  component: UiToolbarLink
2
2
  summary: >
3
3
  UiToolbarLink is a compact toolbar-oriented link. It is the link counterpart to UiToolbarButton.
4
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitoolbarlink--docs
5
4
 
6
5
  public_import:
7
6
  from: '@retailcrm/embed-ui-v1-components/remote'
8
7
  named:
9
8
  - UiToolbarLink
10
9
 
10
+ examples:
11
+ - title: Toolbar link
12
+ code: |
13
+ <template>
14
+ <UiToolbarLink href="https://example.com">
15
+ Hyperlink
16
+ </UiToolbarLink>
17
+ </template>
18
+
19
+ <script lang="ts" setup>
20
+ import { UiToolbarLink } from '@retailcrm/embed-ui-v1-components/remote'
21
+ </script>
22
+
11
23
  use_when:
12
24
  - You need a compact link in a toolbar area.
13
25
 
@@ -64,6 +76,5 @@ styling:
64
76
  notes:
65
77
  - Use documented props and slots as the primary styling API.
66
78
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
67
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
68
79
  root_classes:
69
80
  - .ui-v1-link
@@ -2,7 +2,6 @@ component: UiTooltip
2
2
  summary: >
3
3
  UiTooltip is the tooltip-specialized floating layer built on top of popper mechanics.
4
4
  Use it for compact helper content anchored to one target.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/components-uitooltip--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
@@ -14,6 +13,24 @@ related_components:
14
13
  - UiPopperConnector
15
14
  - UiPopperTarget
16
15
 
16
+ examples:
17
+ - title: Usage
18
+ code: |
19
+ <template>
20
+ <UiPopperConnector>
21
+ <UiButton disabled>
22
+ Save
23
+ </UiButton>
24
+
25
+ <UiTooltip>
26
+ Complete all required fields before saving
27
+ </UiTooltip>
28
+ </UiPopperConnector>
29
+ </template>
30
+
31
+ <script lang="ts" setup>
32
+ import { UiButton, UiPopperConnector, UiTooltip } from '@retailcrm/embed-ui-v1-components/remote'
33
+ </script>
17
34
  use_when:
18
35
  - You need compact helper text or tooltip content.
19
36
 
@@ -76,6 +93,5 @@ styling:
76
93
  notes:
77
94
  - Use documented props and slots as the primary styling API.
78
95
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
79
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
80
96
  root_classes:
81
97
  - .ui-v1-popper
@@ -2,7 +2,6 @@ component: UiTransition
2
2
  summary: >
3
3
  UiTransition is a transition wrapper for animated mount, unmount, and visibility flows.
4
4
  Use it to express motion without switching to raw transition markup.
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'
@@ -61,4 +60,3 @@ styling:
61
60
  notes:
62
61
  - Use documented props and slots as the primary styling API.
63
62
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
64
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
@@ -2,13 +2,36 @@ component: UiYandexMap
2
2
  summary: >
3
3
  UiYandexMap is the Yandex map component for map display and related location scenarios.
4
4
  Treat it as unstable for now and avoid it unless the screen explicitly requires a map surface.
5
- usage: https://retailcrm.github.io/embed-ui/v1-components/0.9.18/?path=/docs/experimental-uiyandexmap--docs
6
5
 
7
6
  public_import:
8
7
  from: '@retailcrm/embed-ui-v1-components/remote'
9
8
  named:
10
9
  - UiYandexMap
11
10
 
11
+ examples:
12
+ - title: Address picker map
13
+ code: |
14
+ <template>
15
+ <div style="width: 640px; max-width: 100%;">
16
+ <UiYandexMap
17
+ v-model:address="address"
18
+ api-key="YOUR_YANDEX_MAPS_API_KEY"
19
+ :plugins="plugins"
20
+ />
21
+ </div>
22
+
23
+ <p>Selected address:</p>
24
+ {{ address }}
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { ref } from 'vue'
29
+ import { UiYandexMap } from '@retailcrm/embed-ui-v1-components/remote'
30
+
31
+ const address = ref('')
32
+ const plugins = []
33
+ </script>
34
+
12
35
  use_when:
13
36
  - You need a Yandex map view.
14
37
  - You need location display inside extension UI.
@@ -77,6 +100,5 @@ styling:
77
100
  notes:
78
101
  - Use documented props and slots as the primary styling API.
79
102
  - Internal .ui-v1-* classes are descriptive implementation details for reasoning and debugging unless a profile marks them as public theme hooks.
80
- - Use Storybook from the usage link to verify visual variants before generating custom layout around the component.
81
103
  root_classes:
82
104
  - .ui-v1-yandex-map
@@ -0,0 +1,58 @@
1
+ page_profile: CardSettingsPage
2
+ summary: >
3
+ Settings page or entity card pattern for screens made mostly from forms and local actions.
4
+
5
+ use_when:
6
+ - You need to edit an entity.
7
+ - You need a settings form.
8
+ - You need a white content surface with fields and local controls.
9
+
10
+ examples_from_design:
11
+ - tracked event page
12
+ - sending limit settings
13
+ - email template settings
14
+ - trigger page
15
+
16
+ expected_structure:
17
+ - UiPageHeader with a page title.
18
+ - The title can be editable via an inline-edit pattern when the product flow requires it.
19
+ - One or more 48px header buttons on the right.
20
+ - Header actions can be accompanied by text information or status labels.
21
+ - Optional top tabs.
22
+ - Main content sits on a white content surface.
23
+ - Content can include text, buttons, fields, checkboxes, radio groups, switches, and other form controls.
24
+ - A bottom save panel is optional.
25
+
26
+ recommended_components:
27
+ - name: UiPageHeader
28
+ profile: ../components/UiPageHeader.yml
29
+ - name: UiButton
30
+ profile: ../components/UiButton.yml
31
+ - name: UiField
32
+ profile: ../components/UiField.yml
33
+ - name: UiTextbox
34
+ profile: ../components/UiTextbox.yml
35
+ - name: UiSelect
36
+ profile: ../components/UiSelect.yml
37
+ - name: UiCheckbox
38
+ profile: ../components/UiCheckbox.yml
39
+ - name: UiRadio
40
+ profile: ../components/UiRadio.yml
41
+ - name: UiRadioSwitch
42
+ profile: ../components/UiRadioSwitch.yml
43
+ - name: UiSwitch
44
+ profile: ../components/UiSwitch.yml
45
+ - name: UiTabGroup
46
+ profile: ../components/UiTabGroup.yml
47
+ - name: UiTab
48
+ profile: ../components/UiTab.yml
49
+ - name: UiTag
50
+ profile: ../components/UiTag.yml
51
+
52
+ ai_notes:
53
+ do:
54
+ - Keep form controls grouped by task or semantic section.
55
+ - Use UiField around labelled form controls.
56
+ - Use tabs only when they reduce visible complexity without hiding required work.
57
+ avoid:
58
+ - Do not create a decorative landing page for operational settings.
@@ -0,0 +1,46 @@
1
+ page_profile: CollapseBlockPage
2
+ summary: >
3
+ Settings page pattern for content split into independent collapsible semantic groups.
4
+
5
+ use_when:
6
+ - You need settings split into semantic groups.
7
+ - You need optional or advanced sections that can collapse independently.
8
+
9
+ examples_from_design:
10
+ - product editing
11
+ - mailing editing
12
+ - Double Opt-In settings
13
+
14
+ expected_structure:
15
+ - Multiple collapsible blocks with their own content and local actions.
16
+ - If the page contains only collapse blocks, the white page surface is not needed.
17
+ - If every collapse block has its own save action, the bottom save panel is not needed.
18
+ - Collapse blocks can contain text, buttons, fields, controls, and small tables.
19
+
20
+ avoid_inside_blocks:
21
+ - complex tables
22
+ - nested collapse blocks
23
+ - two-column content split across separate surfaces
24
+
25
+ recommended_components:
26
+ - name: UiCollapse
27
+ profile: ../components/UiCollapse.yml
28
+ - name: UiCollapseBox
29
+ profile: ../components/UiCollapseBox.yml
30
+ - name: UiCollapseGroup
31
+ profile: ../components/UiCollapseGroup.yml
32
+ - name: UiButton
33
+ profile: ../components/UiButton.yml
34
+ - name: UiField
35
+ profile: ../components/UiField.yml
36
+ - name: UiTable
37
+ profile: ../components/UiTable.yml
38
+ notes: Use only for small, simple tables.
39
+
40
+ ai_notes:
41
+ do:
42
+ - Use collapses for optional or separable sections.
43
+ - Keep required critical actions visible enough for the workflow.
44
+ avoid:
45
+ - Do not nest collapses inside collapses.
46
+ - Do not hide complex tables inside collapse blocks.
@@ -0,0 +1,66 @@
1
+ page_profile: EntityListPage
2
+ summary: >
3
+ Separate page pattern for listing entities with filtering, sorting, table data, pagination,
4
+ and a primary create action.
5
+
6
+ use_when:
7
+ - You need a searchable, filterable registry.
8
+ - You need an order list, customer list, mailing list, task list, catalog, journal, or search-result page.
9
+
10
+ examples_from_design:
11
+ - order list
12
+ - customer list
13
+ - mailing list
14
+ - task list
15
+
16
+ expected_structure:
17
+ - UiPageHeader with a page title.
18
+ - One or more 48px page buttons on the right side of the header.
19
+ - If there are multiple header buttons, one should be primary and the rest can be secondary or tertiary.
20
+ - The main primary button usually creates a new entity for the list.
21
+ - Filters above the table, built from controls such as select, textbox, and combobox-like selection components.
22
+ - Filter controls should run in rows of roughly 4-5 fields, then wrap to the next row.
23
+ - Filters can be collapsible.
24
+ - Filter apply action uses a default secondary 36px text button.
25
+ - Filter reset action uses a danger secondary 36px icon button.
26
+ - Entity data is shown in a table.
27
+ - The table may scroll and may support export.
28
+
29
+ recommended_components:
30
+ - name: UiPageHeader
31
+ profile: ../components/UiPageHeader.yml
32
+ - name: UiButton
33
+ profile: ../components/UiButton.yml
34
+ - name: UiField
35
+ profile: ../components/UiField.yml
36
+ - name: UiTextbox
37
+ profile: ../components/UiTextbox.yml
38
+ - name: UiSelect
39
+ profile: ../components/UiSelect.yml
40
+ - name: UiTable
41
+ profile: ../components/UiTable.yml
42
+ - name: UiTableColumn
43
+ profile: ../components/UiTableColumn.yml
44
+ - name: UiTableSorter
45
+ profile: ../components/UiTableSorter.yml
46
+ - name: UiTableFooterSection
47
+ profile: ../components/UiTableFooterSection.yml
48
+ - name: UiTableFooterButton
49
+ profile: ../components/UiTableFooterButton.yml
50
+
51
+ table_footer_rules:
52
+ - Use UiTableFooterSection and UiTableFooterButton for table footer pagination.
53
+ - Do not replace table footer pagination controls with regular UiButton.
54
+ - Use chevron icon assets for arrow controls, not text glyphs.
55
+ - Keep footer styling scoped to a local table root class.
56
+ - Override the internal footer button class together with the local class when changing pagination text, active page, or arrow colours.
57
+ - "Reference Vue and CSS footer pattern: ../components/UiTable.yml"
58
+
59
+ ai_notes:
60
+ do:
61
+ - Keep filters and table controls directly above the table.
62
+ - Persist filters, sorting, page, and page size in query parameters when routing is available.
63
+ - Reset page to 1 when filters or sorting change.
64
+ avoid:
65
+ - Do not hide filters in page header actions.
66
+ - Do not put pagination only in local state when the result set is routable.