@retailcrm/embed-ui-v1-components 0.9.14 → 0.9.15

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 (74) hide show
  1. package/AGENTS.md +126 -0
  2. package/README.md +24 -0
  3. package/assets/stylesheets/palette.less +11 -6
  4. package/bin/embed-ui-v1-components.mjs +209 -0
  5. package/bin/postinstall.mjs +37 -0
  6. package/dist/host.cjs +1899 -590
  7. package/dist/host.css +659 -6
  8. package/dist/host.d.ts +2374 -50
  9. package/dist/host.js +1900 -591
  10. package/dist/remote.cjs +610 -33
  11. package/dist/remote.d.ts +729 -48
  12. package/dist/remote.js +612 -35
  13. package/docs/AI.md +106 -0
  14. package/docs/COMPONENTS.md +96 -0
  15. package/docs/FORMAT.md +248 -0
  16. package/docs/PROFILES.md +64 -0
  17. package/docs/README.md +65 -0
  18. package/docs/STYLING.md +156 -0
  19. package/docs/profiles/UiAddButton.yml +45 -0
  20. package/docs/profiles/UiAlert.yml +36 -0
  21. package/docs/profiles/UiAvatar.yml +36 -0
  22. package/docs/profiles/UiAvatarList.yml +30 -0
  23. package/docs/profiles/UiButton.yml +221 -0
  24. package/docs/profiles/UiCalendar.yml +36 -0
  25. package/docs/profiles/UiCheckbox.yml +41 -0
  26. package/docs/profiles/UiCollapse.yml +28 -0
  27. package/docs/profiles/UiCollapseBox.yml +39 -0
  28. package/docs/profiles/UiCollapseGroup.yml +27 -0
  29. package/docs/profiles/UiCopyButton.yml +40 -0
  30. package/docs/profiles/UiDate.yml +26 -0
  31. package/docs/profiles/UiDatePicker.yml +47 -0
  32. package/docs/profiles/UiError.yml +20 -0
  33. package/docs/profiles/UiField.yml +229 -0
  34. package/docs/profiles/UiImage.yml +27 -0
  35. package/docs/profiles/UiInfobox.yml +33 -0
  36. package/docs/profiles/UiLink.yml +39 -0
  37. package/docs/profiles/UiLoader.yml +26 -0
  38. package/docs/profiles/UiMenuItem.yml +45 -0
  39. package/docs/profiles/UiMenuItemGroup.yml +38 -0
  40. package/docs/profiles/UiModalSidebar.yml +34 -0
  41. package/docs/profiles/UiModalWindow.yml +32 -0
  42. package/docs/profiles/UiModalWindowSurface.yml +29 -0
  43. package/docs/profiles/UiNumberStepper.yml +40 -0
  44. package/docs/profiles/UiPageHeader.yml +240 -0
  45. package/docs/profiles/UiPopper.yml +197 -0
  46. package/docs/profiles/UiPopperConnector.yml +109 -0
  47. package/docs/profiles/UiPopperTarget.yml +112 -0
  48. package/docs/profiles/UiRadio.yml +26 -0
  49. package/docs/profiles/UiRadioSwitch.yml +224 -0
  50. package/docs/profiles/UiRadioSwitchOption.yml +113 -0
  51. package/docs/profiles/UiScrollBox.yml +19 -0
  52. package/docs/profiles/UiSelect.yml +318 -0
  53. package/docs/profiles/UiSelectOption.yml +32 -0
  54. package/docs/profiles/UiSelectOptionGroup.yml +26 -0
  55. package/docs/profiles/UiSlider.yml +26 -0
  56. package/docs/profiles/UiSwitch.yml +25 -0
  57. package/docs/profiles/UiTab.yml +114 -0
  58. package/docs/profiles/UiTabGroup.yml +233 -0
  59. package/docs/profiles/UiTable.yml +148 -0
  60. package/docs/profiles/UiTableBodyCell.yml +35 -0
  61. package/docs/profiles/UiTableColumn.yml +38 -0
  62. package/docs/profiles/UiTableFooterButton.yml +32 -0
  63. package/docs/profiles/UiTableFooterSection.yml +26 -0
  64. package/docs/profiles/UiTableHeadCell.yml +32 -0
  65. package/docs/profiles/UiTableSorter.yml +33 -0
  66. package/docs/profiles/UiTag.yml +29 -0
  67. package/docs/profiles/UiTextbox.yml +388 -0
  68. package/docs/profiles/UiTimePicker.yml +34 -0
  69. package/docs/profiles/UiToolbarButton.yml +25 -0
  70. package/docs/profiles/UiToolbarLink.yml +20 -0
  71. package/docs/profiles/UiTooltip.yml +31 -0
  72. package/docs/profiles/UiTransition.yml +15 -0
  73. package/docs/profiles/UiYandexMap.yml +17 -0
  74. package/package.json +7 -2
@@ -0,0 +1,40 @@
1
+ component: UiCopyButton
2
+ summary: >
3
+ UiCopyButton is an action component for copying text values with tooltip feedback.
4
+ It wraps copy behavior and copied-state hinting into one compact UI.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiCopyButton
10
+
11
+ related_components:
12
+ - UiTooltip
13
+ - UiButton
14
+
15
+ use_when:
16
+ - You need a copy-to-clipboard action for a value.
17
+ - You need built-in hint and copied-state tooltip text.
18
+
19
+ avoid_when:
20
+ - You need a generic button with no copy semantics.
21
+
22
+ api:
23
+ key_props:
24
+ - name: text
25
+ - name: size
26
+ - name: tooltipOptions
27
+ slots:
28
+ - name: trigger
29
+ zone: trigger
30
+ creates: Visible trigger content.
31
+ - name: hint
32
+ zone: tooltip
33
+ creates: Default tooltip content.
34
+ - name: hint-copied
35
+ zone: tooltip
36
+ creates: Tooltip content after copy succeeds.
37
+
38
+ ai_notes:
39
+ do:
40
+ - Use for copy-specific flows instead of recreating copy state manually.
@@ -0,0 +1,26 @@
1
+ component: UiDate
2
+ summary: >
3
+ UiDate is a display component for formatted date or date-time output. It is for presenting
4
+ date values, not for editing them.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiDate
10
+
11
+ use_when:
12
+ - You need to display a date value.
13
+ - You need optional time display with locale-aware formatting.
14
+
15
+ avoid_when:
16
+ - You need editable date input.
17
+
18
+ api:
19
+ key_props:
20
+ - name: date
21
+ - name: withTime
22
+ - name: locale
23
+
24
+ ai_notes:
25
+ do:
26
+ - Use UiDate for formatted output and UiDatePicker for input.
@@ -0,0 +1,47 @@
1
+ component: UiDatePicker
2
+ summary: >
3
+ UiDatePicker combines textbox-like date display, popper behavior, and calendar selection.
4
+ It supports single-date and range flows, constraints, and quick options.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiDatePicker
10
+
11
+ related_components:
12
+ - UiCalendar
13
+ - UiTextbox
14
+ - UiPopper
15
+
16
+ use_when:
17
+ - You need editable date input.
18
+ - You need date-range selection through a textbox-plus-popup flow.
19
+
20
+ avoid_when:
21
+ - You need always-visible inline calendar selection only.
22
+
23
+ api:
24
+ key_props:
25
+ - name: value
26
+ - name: type
27
+ - name: minDate
28
+ - name: maxDate
29
+ - name: nullable
30
+ - name: synchronization
31
+ - name: quickOptions
32
+ - name: textboxOptions
33
+ methods:
34
+ - name: open
35
+ - name: close
36
+ - name: toggle
37
+
38
+ behavior:
39
+ notes:
40
+ - Supports single-date and range flows.
41
+ - synchronization controls instant versus confirmed behavior.
42
+
43
+ ai_notes:
44
+ do:
45
+ - Prefer UiDatePicker for typed or popup date input.
46
+ avoid:
47
+ - Do not use UiCalendar directly if a textbox trigger is expected.
@@ -0,0 +1,20 @@
1
+ component: UiError
2
+ summary: >
3
+ UiError is a compact error-state component for short error messages or fallback states.
4
+ It is intended for concise inline error display rather than large alert copy.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiError
10
+
11
+ use_when:
12
+ - You need a compact error block.
13
+ - You need inline error text with standard styling.
14
+
15
+ avoid_when:
16
+ - You need a richer feedback block, use UiAlert or UiInfobox instead.
17
+
18
+ ai_notes:
19
+ do:
20
+ - Use for compact error presentation.
@@ -0,0 +1,229 @@
1
+ component: UiField
2
+ summary: >
3
+ UiField is a remote-only form field wrapper. It connects a label and an inner control through
4
+ id and ARIA data, supports a hint tooltip near the label, and exposes an addon zone on the
5
+ right side of the headline.
6
+
7
+ public_import:
8
+ from: '@retailcrm/embed-ui-v1-components/remote'
9
+ named:
10
+ - UiField
11
+
12
+ related_components:
13
+ - UiTextbox
14
+ - UiSelect
15
+ - UiCheckbox
16
+ - UiDatePicker
17
+
18
+ use_when:
19
+ - You need a labeled form control with consistent field semantics.
20
+ - You need to pass id, aria-labelledby, and aria-invalid into an inner control.
21
+ - You need a hint tooltip near the field label.
22
+ - You want required, invalid, disabled, or readonly state at the field level.
23
+
24
+ avoid_when:
25
+ - You need a standalone control without label semantics.
26
+ - You need a generic layout container.
27
+ - You need to wrap several unrelated controls under one visual block.
28
+
29
+ api:
30
+ key_props:
31
+ - name: id
32
+ required: true
33
+ notes: Required identifier used to connect label and control.
34
+ - name: label
35
+ notes: Field label text.
36
+ - name: hint
37
+ notes: Hint tooltip text near the label.
38
+ - name: invalid
39
+ notes: Affects label styling and slot prop ariaInvalid.
40
+ - name: required
41
+ notes: Adds an asterisk to the label and is forwarded through slot props.
42
+ props:
43
+ - name: hintAriaLabel
44
+ notes: aria-label for the hint trigger.
45
+ - name: disabled
46
+ notes: Visually dims the field and is forwarded through slot props.
47
+ - name: readonly
48
+ notes: Forwarded through slot props to the inner control.
49
+ slots:
50
+ - name: default
51
+ zone: control
52
+ creates: The main control area of the field.
53
+ provides:
54
+ - id
55
+ - required
56
+ - disabled
57
+ - readonly
58
+ - invalid
59
+ - ariaLabelledby
60
+ - ariaInvalid
61
+ accepts:
62
+ recommended:
63
+ - one form control
64
+ - UiTextbox
65
+ - UiSelect
66
+ - UiDatePicker
67
+ avoid:
68
+ - several unrelated controls
69
+ - decorative layout only
70
+ - raw content without using slot props
71
+ layout_effect: The control sits below the headline and inherits field-level semantics through slot props.
72
+ notes: >
73
+ Place the actual form control here. In most cases, slot props should be forwarded into the control.
74
+ - name: label
75
+ zone: headline-label
76
+ creates: The label area inside the headline row.
77
+ accepts:
78
+ recommended:
79
+ - plain text
80
+ - short inline markup
81
+ - span
82
+ avoid:
83
+ - nested form controls
84
+ - large block layout
85
+ layout_effect: Replaces the default text label but stays in the label position.
86
+ notes: Custom label content.
87
+ - name: hint
88
+ zone: hint-tooltip
89
+ creates: Tooltip content for the hint trigger.
90
+ accepts:
91
+ recommended:
92
+ - plain text
93
+ - short helper markup
94
+ - compact rich content
95
+ avoid:
96
+ - interactive forms
97
+ - large composite layouts
98
+ layout_effect: Does not change field layout; only changes tooltip body content.
99
+ notes: Custom tooltip content instead of plain hint text.
100
+ - name: addon
101
+ zone: headline-addon
102
+ creates: An inline addon area on the right side of the headline.
103
+ accepts:
104
+ recommended:
105
+ - short text
106
+ - UiLink
107
+ - UiButton
108
+ - compact status badge
109
+ avoid:
110
+ - full form groups
111
+ - wide content blocks
112
+ layout_effect: Lives in the headline row and is pushed to the right.
113
+ notes: Extra inline content on the right side of the headline.
114
+
115
+ rendered_structure:
116
+ descriptive_only: true
117
+ notes: >
118
+ This is a debugging and reasoning model, not a public styling contract.
119
+ root: .ui-v1-field
120
+ zones:
121
+ - .ui-v1-field__headline
122
+ - .ui-v1-field__label
123
+ - hint trigger and tooltip
124
+ - .ui-v1-field__addon
125
+ - .ui-v1-field__control
126
+
127
+ geometry:
128
+ layout: grid
129
+ width: 100%
130
+ min_width: 0
131
+ notes:
132
+ - Root uses grid with a 4px gap.
133
+ - The headline is a flex row.
134
+ - The addon is pushed to the right with margin-left auto.
135
+ - The control zone keeps min-width 0 and shrinks correctly in flex and grid layouts.
136
+
137
+ styling:
138
+ notes:
139
+ - UiField styling mostly affects label, hint, and headline layout around the inner control.
140
+ - The inner control keeps its own styling system; UiField does not restyle it deeply.
141
+ - Classes are descriptive and should not be treated as a stable selector contract.
142
+ root_classes:
143
+ - .ui-v1-field
144
+ state_classes:
145
+ - .ui-v1-field_disabled
146
+ - .ui-v1-field_invalid
147
+ zones:
148
+ - .ui-v1-field__headline
149
+ - .ui-v1-field__label
150
+ - .ui-v1-field__required-mark
151
+ - .ui-v1-field__hint
152
+ - .ui-v1-field__hint-trigger
153
+ - .ui-v1-field__hint-icon
154
+ - .ui-v1-field__hint-tooltip
155
+ - .ui-v1-field__addon
156
+ - .ui-v1-field__control
157
+ css_variables:
158
+ public_theme_variables:
159
+ - name: --ui-v1-popper-background
160
+ effect: Hint tooltip background.
161
+ - name: --ui-v1-popper-padding
162
+ effect: Hint tooltip padding.
163
+ - name: --ui-v1-popper-roundings
164
+ effect: Hint tooltip corner radius.
165
+ typography:
166
+ label:
167
+ mixin: text-small-accent
168
+ size: 14px
169
+ line_height: 20px
170
+ weight: 500
171
+ addon:
172
+ mixin: text-small
173
+ size: 14px
174
+ line_height: 20px
175
+ weight: 400
176
+
177
+ behavior:
178
+ states:
179
+ - name: required
180
+ notes: Adds an asterisk to the label.
181
+ - name: invalid
182
+ notes: Tints the label and exposes ariaInvalid in slot props.
183
+ - name: disabled
184
+ notes: Visually dims the field.
185
+ - name: readonly
186
+ notes: Is forwarded to the inner control through slot props.
187
+ notes:
188
+ - If label is missing, ariaLabelledby in slot props is undefined.
189
+ - The hint is shown on hover and focus.
190
+
191
+ accessibility:
192
+ notes:
193
+ - The component does not render a control itself, so ARIA wiring must be completed in the default slot.
194
+ - A common pattern is field.id -> control id and field.ariaLabelledby or field.ariaInvalid -> input attributes.
195
+ - The hint trigger renders with role=button and tabindex=0.
196
+
197
+ composition:
198
+ works_well_with:
199
+ - UiTextbox
200
+ - UiSelect
201
+ - UiDatePicker
202
+ - UiTimePicker
203
+ patterns:
204
+ - title: Safe field wiring
205
+ notes: Use slot props for semantics, not just for visual wrapping.
206
+
207
+ examples:
208
+ - title: Text field with propagated semantics
209
+ goal: Build a text field with correct ARIA wiring.
210
+ code: |
211
+ <UiField id="comment" label="Comment" hint="Visible to managers">
212
+ <template #default="field">
213
+ <UiTextbox
214
+ :id="field.id"
215
+ :input-attributes="{
216
+ 'aria-labelledby': field.ariaLabelledby,
217
+ 'aria-invalid': field.ariaInvalid,
218
+ }"
219
+ />
220
+ </template>
221
+ </UiField>
222
+
223
+ ai_notes:
224
+ do:
225
+ - Forward slot props into the actual control in most form scenarios.
226
+ - Use UiField as a semantic wrapper for a single control.
227
+ avoid:
228
+ - Do not use UiField as a generic visual container without control semantics.
229
+ - Do not ignore id and ariaLabelledby when accessibility matters.
@@ -0,0 +1,27 @@
1
+ component: UiImage
2
+ summary: >
3
+ UiImage is a generic image display component with optional resize and crop hints.
4
+ Use it for regular visual content rather than identity avatars.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiImage
10
+
11
+ use_when:
12
+ - You need to render an image asset.
13
+ - You need resize or crop hints for image output.
14
+
15
+ avoid_when:
16
+ - You need identity-focused avatar UI.
17
+
18
+ api:
19
+ key_props:
20
+ - name: src
21
+ - name: alt
22
+ - name: resize
23
+ - name: crop
24
+
25
+ ai_notes:
26
+ do:
27
+ - Use UiImage for general media and UiAvatar for people or identity.
@@ -0,0 +1,33 @@
1
+ component: UiInfobox
2
+ summary: >
3
+ UiInfobox is a richer explanatory block for inline product, warning, or helper content.
4
+ It can be closable and expandable.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiInfobox
10
+
11
+ use_when:
12
+ - You need a highlighted explanatory block.
13
+ - You need closable or expandable helper content.
14
+
15
+ avoid_when:
16
+ - You need a one-line alert only.
17
+
18
+ api:
19
+ key_props:
20
+ - name: title
21
+ - name: shown
22
+ - name: expanded
23
+ - name: expandable
24
+ - name: closable
25
+ - name: warning
26
+ methods:
27
+ - name: show
28
+ - name: hide
29
+ - name: toggle
30
+
31
+ ai_notes:
32
+ do:
33
+ - Use UiInfobox for richer guidance blocks, not tiny alerts.
@@ -0,0 +1,39 @@
1
+ component: UiLink
2
+ summary: >
3
+ UiLink is the main text-link component for inline navigation and inline actions that should
4
+ still read as links rather than buttons.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiLink
10
+
11
+ use_when:
12
+ - You need inline navigation or linked text.
13
+ - You need a compact action that should still read as a link.
14
+
15
+ avoid_when:
16
+ - You need button semantics, use UiButton instead.
17
+
18
+ api:
19
+ key_props:
20
+ - name: href
21
+ - name: external
22
+ - name: appearance
23
+ - name: size
24
+ - name: accent
25
+ - name: ellipsis
26
+ slots:
27
+ - name: icon
28
+ zone: inline-icon
29
+ creates: Optional icon zone inside the link.
30
+ emits:
31
+ - name: click
32
+ - name: focus
33
+ - name: blur
34
+
35
+ ai_notes:
36
+ do:
37
+ - Use UiLink for real link semantics and inline navigation.
38
+ avoid:
39
+ - Do not use UiLink where the action should read as a button.
@@ -0,0 +1,26 @@
1
+ component: UiLoader
2
+ summary: >
3
+ UiLoader displays loading progress or waiting state. It can be used inline or as an overlay.
4
+
5
+ public_import:
6
+ from: '@retailcrm/embed-ui-v1-components/remote'
7
+ named:
8
+ - UiLoader
9
+
10
+ use_when:
11
+ - You need a visible loading indicator.
12
+ - You need inline or overlay loading state.
13
+
14
+ avoid_when:
15
+ - You need skeleton content rather than a spinner-like loader.
16
+
17
+ api:
18
+ key_props:
19
+ - name: diameter
20
+ - name: thickness
21
+ - name: fixed
22
+ - name: overlay
23
+
24
+ ai_notes:
25
+ do:
26
+ - Use overlay or fixed only when the loader should escape normal inline flow.
@@ -0,0 +1,45 @@
1
+ component: UiMenuItem
2
+ summary: >
3
+ UiMenuItem is a structured menu row component with support for icons, avatar, description,
4
+ counters, and active or danger styling.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiMenuItem
10
+
11
+ use_when:
12
+ - You need a menu row with structured content zones.
13
+ - You need icon, avatar, description, or counter inside one menu item.
14
+
15
+ avoid_when:
16
+ - You need a plain inline link.
17
+
18
+ api:
19
+ key_props:
20
+ - name: description
21
+ - name: counter
22
+ - name: active
23
+ - name: danger
24
+ - name: disabled
25
+ - name: size
26
+ slots:
27
+ - name: default
28
+ zone: main-label
29
+ creates: Main visible label area.
30
+ - name: avatar
31
+ zone: leading-avatar
32
+ creates: Leading avatar zone.
33
+ - name: leading-icon
34
+ zone: leading-icon
35
+ creates: Leading icon zone.
36
+ - name: description
37
+ zone: secondary-copy
38
+ creates: Secondary description area.
39
+ - name: trailing-icon
40
+ zone: trailing-icon
41
+ creates: Trailing icon zone.
42
+
43
+ ai_notes:
44
+ do:
45
+ - Use structured slots instead of custom wrappers inside menu rows.
@@ -0,0 +1,38 @@
1
+ component: UiMenuItemGroup
2
+ summary: >
3
+ UiMenuItemGroup groups related menu items and exposes dedicated zones for group label
4
+ and quantity metadata.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiMenuItemGroup
10
+
11
+ related_components:
12
+ - UiMenuItem
13
+
14
+ use_when:
15
+ - You need several menu items under one group heading.
16
+ - You need group label or quantity metadata.
17
+
18
+ avoid_when:
19
+ - You have only one item and no group semantics.
20
+
21
+ api:
22
+ slots:
23
+ - name: default
24
+ zone: group-body
25
+ creates: Main group content.
26
+ - name: option
27
+ zone: option-list
28
+ creates: Explicit option area for grouped items.
29
+ - name: label
30
+ zone: group-label
31
+ creates: Group heading area.
32
+ - name: quantity
33
+ zone: group-meta
34
+ creates: Group quantity or meta area.
35
+
36
+ ai_notes:
37
+ do:
38
+ - Use for grouped menu structure instead of manual heading-plus-list markup.
@@ -0,0 +1,34 @@
1
+ component: UiModalSidebar
2
+ summary: >
3
+ UiModalSidebar is a side-docked modal surface with open state, direction, size, and
4
+ scrolling control. Use it when the UI should slide from an edge instead of opening as a centered dialog.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiModalSidebar
10
+
11
+ use_when:
12
+ - You need side-panel modal UI.
13
+ - You need left or right docked modal content.
14
+
15
+ avoid_when:
16
+ - You need a centered dialog.
17
+
18
+ api:
19
+ key_props:
20
+ - name: opened
21
+ - name: closable
22
+ - name: direction
23
+ - name: size
24
+ - name: scrolling
25
+ - name: fixed
26
+
27
+ behavior:
28
+ notes:
29
+ - opened controls visibility.
30
+ - direction controls which side the sidebar comes from.
31
+
32
+ ai_notes:
33
+ do:
34
+ - Use UiModalSidebar when page context should stay visually connected to the modal content.
@@ -0,0 +1,32 @@
1
+ component: UiModalWindow
2
+ summary: >
3
+ UiModalWindow is the main centered modal container. It supports open state, closability,
4
+ appearance variants, fullscreen and responsive behavior, and dialog roles.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiModalWindow
10
+
11
+ related_components:
12
+ - UiModalWindowSurface
13
+
14
+ use_when:
15
+ - You need a centered dialog.
16
+ - You need modal interaction with standard dialog semantics.
17
+
18
+ avoid_when:
19
+ - You need a side-docked modal, use UiModalSidebar instead.
20
+
21
+ api:
22
+ key_props:
23
+ - name: opened
24
+ - name: closable
25
+ - name: appearance
26
+ - name: fullscreen
27
+ - name: responsive
28
+ - name: scrolling
29
+ - name: role
30
+ methods:
31
+ - name: open
32
+ - name: close
@@ -0,0 +1,29 @@
1
+ component: UiModalWindowSurface
2
+ summary: >
3
+ UiModalWindowSurface is the lower-level modal surface API behind modal window flows.
4
+ Use it when you need modal surface behavior with more explicit composition control.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiModalWindowSurface
10
+
11
+ related_components:
12
+ - UiModalWindow
13
+
14
+ use_when:
15
+ - You need explicit modal surface composition.
16
+ - You need modal surface behavior without the higher-level modal wrapper.
17
+
18
+ avoid_when:
19
+ - You just need the regular centered modal API, use UiModalWindow instead.
20
+
21
+ api:
22
+ key_props:
23
+ - name: opened
24
+ - name: closable
25
+ - name: appearance
26
+ - name: fullscreen
27
+ - name: responsive
28
+ - name: scrolling
29
+ - name: role