@retailcrm/embed-ui-v1-components 0.9.13 → 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 +1900 -590
  7. package/dist/host.css +659 -6
  8. package/dist/host.d.ts +2374 -50
  9. package/dist/host.js +1901 -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 +11 -2
@@ -0,0 +1,32 @@
1
+ component: UiTableFooterButton
2
+ summary: >
3
+ UiTableFooterButton is a footer-scoped action control for custom table footer layouts.
4
+ It behaves like a table-specific button primitive rather than a full replacement for UiButton.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTableFooterButton
10
+
11
+ related_components:
12
+ - UiTable
13
+ - UiTableFooterSection
14
+
15
+ use_when:
16
+ - You need an action inside a custom table footer area.
17
+
18
+ avoid_when:
19
+ - UiButton is enough outside table footer composition.
20
+ - You are not building custom footer structure.
21
+
22
+ api:
23
+ key_props:
24
+ - name: type
25
+ emits:
26
+ - name: click
27
+
28
+ ai_notes:
29
+ do:
30
+ - Keep it in table footer usage.
31
+ avoid:
32
+ - Do not substitute it for general page-level actions.
@@ -0,0 +1,26 @@
1
+ component: UiTableFooterSection
2
+ summary: >
3
+ UiTableFooterSection is the low-level footer container for custom table footer layouts.
4
+ It is mainly useful when UiTable footer slots are not enough on their own.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTableFooterSection
10
+
11
+ related_components:
12
+ - UiTable
13
+ - UiTableFooterButton
14
+
15
+ use_when:
16
+ - You compose custom footer content from public table primitives.
17
+
18
+ avoid_when:
19
+ - UiTable footer slots already solve the layout.
20
+ - You do not need explicit footer structure.
21
+
22
+ ai_notes:
23
+ do:
24
+ - Use it only as part of custom table footer composition.
25
+ avoid:
26
+ - Do not treat it as a standalone layout section.
@@ -0,0 +1,32 @@
1
+ component: UiTableHeadCell
2
+ summary: >
3
+ UiTableHeadCell is the low-level table header cell primitive used inside UiTable head rows.
4
+ Use it only when you build custom table structure from public table parts.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTableHeadCell
10
+
11
+ related_components:
12
+ - UiTable
13
+ - UiTableSorter
14
+
15
+ use_when:
16
+ - You compose a custom table head with public table primitives.
17
+ - You need header-cell alignment or trim control outside UiTableColumn defaults.
18
+
19
+ avoid_when:
20
+ - UiTableColumn already covers the header rendering you need.
21
+ - You are not building custom table markup.
22
+
23
+ api:
24
+ key_props:
25
+ - name: align
26
+ - name: trim
27
+
28
+ ai_notes:
29
+ do:
30
+ - Prefer UiTableColumn first for regular table headers.
31
+ avoid:
32
+ - Do not use it as a generic container outside table head rows.
@@ -0,0 +1,33 @@
1
+ component: UiTableSorter
2
+ summary: >
3
+ UiTableSorter is a compact sort control primitive for custom table head content.
4
+ Use it when header rendering is composed manually and sorting state must be shown explicitly.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTableSorter
10
+
11
+ related_components:
12
+ - UiTable
13
+ - UiTableHeadCell
14
+
15
+ use_when:
16
+ - You build a custom sortable header with table primitives.
17
+ - You need to show asc or desc state explicitly in header content.
18
+
19
+ avoid_when:
20
+ - Sorting is not part of the table interaction.
21
+ - UiTableColumn label rendering is enough.
22
+
23
+ api:
24
+ key_props:
25
+ - name: direction
26
+ emits:
27
+ - name: click
28
+
29
+ ai_notes:
30
+ do:
31
+ - Pair it with explicit sort state in screen logic.
32
+ avoid:
33
+ - Do not use it as a generic icon-only control outside table headers.
@@ -0,0 +1,29 @@
1
+ component: UiTag
2
+ summary: >
3
+ UiTag is a compact label or status pill. It can be interactive, removable, pinned, or visually saturated.
4
+
5
+ public_import:
6
+ from: '@retailcrm/embed-ui-v1-components/remote'
7
+ named:
8
+ - UiTag
9
+
10
+ use_when:
11
+ - You need a short status or label pill.
12
+ - You need removable or interactive tags.
13
+
14
+ avoid_when:
15
+ - You need a full button or link.
16
+
17
+ api:
18
+ key_props:
19
+ - name: size
20
+ - name: pinned
21
+ - name: removable
22
+ - name: interactive
23
+ - name: saturated
24
+ - name: background
25
+ emits:
26
+ - name: click
27
+ - name: focus
28
+ - name: blur
29
+ - name: remove
@@ -0,0 +1,388 @@
1
+ component: UiTextbox
2
+ summary: >
3
+ UiTextbox is the base text and numeric input component. It covers single-line input,
4
+ textarea mode, numeric and decimal input, plus prefix, suffix, icon zones, and a clear action.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTextbox
10
+
11
+ related_components:
12
+ - UiField
13
+ - UiPageHeader
14
+ - UiSelect
15
+
16
+ use_when:
17
+ - You need a standard text input.
18
+ - You need search, email, phone, url, or password input.
19
+ - You need decimal or numeric input without a separate stepper.
20
+ - You need a multiline control in the same visual language.
21
+ - You need an input that composes well with UiField and inline editing.
22
+
23
+ avoid_when:
24
+ - You need value selection, not free-form input.
25
+ - You need explicit increment and decrement UX.
26
+ - You need advanced formatting beyond the prefix or suffix model.
27
+
28
+ api:
29
+ key_props:
30
+ - name: value
31
+ notes: Main control value, usually via v-model:value.
32
+ - name: placeholder
33
+ notes: Placeholder for empty state.
34
+ - name: type
35
+ notes: Input type for single-line mode.
36
+ - name: inputmode
37
+ notes: >
38
+ High-signal prop for numeric and decimal behavior. It changes not only keyboard hints
39
+ but also the actual input handling rules.
40
+ - name: clearable
41
+ notes: Shows a clear button when the value is not empty.
42
+ - name: invalid
43
+ notes: Enables error state and aria-invalid.
44
+ - name: multiline
45
+ notes: Switches the component to textarea mode.
46
+ - name: outlined
47
+ notes: Enables or disables textbox chrome. Often false in embedded scenarios.
48
+ - name: autofit
49
+ notes: Shrinks or grows to content width and is useful for inline editing.
50
+ props:
51
+ - name: id
52
+ notes: Identifier for the actual input or textarea.
53
+ - name: max
54
+ notes: Used in numeric or decimal scenarios.
55
+ - name: min
56
+ notes: Controls whether negative values are allowed in decimal mode.
57
+ - name: step
58
+ notes: Step for ArrowUp and ArrowDown in decimal mode.
59
+ - name: required
60
+ notes: Forwarded to the native control.
61
+ - name: autocomplete
62
+ notes: Forwarded to the actual input.
63
+ - name: maxlength
64
+ notes: Limits input length.
65
+ - name: decimals
66
+ notes: Limits the number of decimal places in decimal mode.
67
+ - name: size
68
+ notes: Affects height, paddings, and typography.
69
+ - name: prefix
70
+ notes: String shortcut for the prefix zone.
71
+ - name: suffix
72
+ notes: String shortcut for the suffix zone.
73
+ - name: active
74
+ notes: Enables active-like visual styling.
75
+ - name: autofocus
76
+ notes: Focuses the control after mount.
77
+ - name: autoselect
78
+ notes: Selects the current value on focus.
79
+ - name: readonly
80
+ notes: Blocks editing while keeping the value visible.
81
+ - name: disabled
82
+ notes: Disables interaction completely.
83
+ - name: rows
84
+ notes: Used in multiline mode.
85
+ - name: cols
86
+ notes: Used in multiline mode.
87
+ - name: inputAttributes
88
+ notes: Main path for aria-* and native attributes.
89
+ slots:
90
+ - name: prefix
91
+ zone: before-control
92
+ creates: A dedicated leading zone before the control.
93
+ accepts:
94
+ recommended:
95
+ - plain text
96
+ - span
97
+ - svg
98
+ - icon component
99
+ avoid:
100
+ - div
101
+ - block layout container
102
+ - interactive controls
103
+ notes: >
104
+ In outlined mode, the prefix becomes a separate visual segment before the input.
105
+ - name: leading-icon
106
+ zone: before-control
107
+ creates: A dedicated icon zone before the control.
108
+ accepts:
109
+ recommended:
110
+ - svg
111
+ - icon component
112
+ - span
113
+ avoid:
114
+ - div
115
+ - large text blocks
116
+ notes: Intended for a single icon-like node rather than arbitrary layout.
117
+ - name: trailing-icon
118
+ zone: after-control
119
+ creates: A dedicated icon zone after the control.
120
+ accepts:
121
+ recommended:
122
+ - svg
123
+ - icon component
124
+ - span
125
+ avoid:
126
+ - div
127
+ - form controls
128
+ notes: Good for status icons or compact indicators.
129
+ - name: suffix
130
+ zone: after-control
131
+ creates: A dedicated trailing zone after the control.
132
+ accepts:
133
+ recommended:
134
+ - plain text
135
+ - span
136
+ - svg
137
+ - icon component
138
+ avoid:
139
+ - div
140
+ - block layout container
141
+ - nested input
142
+ notes: >
143
+ In outlined mode, the suffix becomes a separate trailing gray segment after the input.
144
+ emits:
145
+ - name: update:value
146
+ payload: string | number | null
147
+ notes: Main value update channel.
148
+ - name: update:focused
149
+ payload: boolean
150
+ notes: Focus state update.
151
+ - name: input
152
+ payload: Event
153
+ notes: Native input event.
154
+ - name: change
155
+ payload: Event
156
+ notes: Native change event.
157
+ - name: keydown
158
+ payload: KeyboardEvent
159
+ notes: Forwarded from the input or textarea.
160
+ - name: paste
161
+ payload: ClipboardEvent
162
+ notes: Forwarded without extra semantics.
163
+ - name: focus
164
+ payload: FocusEvent
165
+ notes: Fired when the actual control is focused.
166
+ - name: blur
167
+ payload: FocusEvent
168
+ notes: Fired when the actual control loses focus.
169
+ - name: clear
170
+ payload: undefined
171
+ notes: Fired when the clear action is used.
172
+ methods:
173
+ - name: focus
174
+ notes: Focuses the actual control.
175
+ - name: blur
176
+ notes: Removes focus from the actual control.
177
+ - name: select
178
+ notes: Selects the current value.
179
+ - name: clear
180
+ notes: Clears the current value.
181
+ - name: insert
182
+ notes: Inserts text at the current cursor position.
183
+ - name: getSelectionStart
184
+ notes: Returns the start of the current selection.
185
+ - name: getSelectionEnd
186
+ notes: Returns the end of the current selection.
187
+ - name: setSelectionRange
188
+ notes: Controls selection programmatically.
189
+
190
+ rendered_structure:
191
+ descriptive_only: true
192
+ notes: >
193
+ This is a descriptive model of the current implementation for reasoning and debugging,
194
+ not a guaranteed DOM API. The root is span-based, so UiTextbox should be treated as
195
+ an inline control rather than a block wrapper.
196
+ root: span.ui-v1-textbox
197
+ zones:
198
+ - span.ui-v1-textbox__prefix
199
+ - span.ui-v1-textbox__icon.ui-v1-textbox__icon_leading
200
+ - input or textarea
201
+ - span.ui-v1-textbox__placeholder for autofit mirror
202
+ - button.ui-v1-textbox__eraser
203
+ - span.ui-v1-textbox__icon.ui-v1-textbox__icon_trailing
204
+ - span.ui-v1-textbox__suffix
205
+
206
+ geometry:
207
+ layout: inline-flex
208
+ width: fit-content
209
+ max_width: 100%
210
+ notes:
211
+ - Root behaves as a span-based inline-flex group around the actual control.
212
+ - Size affects height, paddings, and typography.
213
+ - outlined=false removes the standard textbox frame and is common in embedded flows such as UiPageHeader.
214
+ - autofit=true adjusts width to content but still respects max-width on the root.
215
+ - Prefix, suffix, and icon slots affect internal layout but not the component's semantic role.
216
+ - Do not treat UiTextbox as a generic block container.
217
+ - If you need full-width behavior, provide width through layout context or explicit style.
218
+
219
+ styling:
220
+ notes:
221
+ - Main visual chrome lives on the root span.
222
+ - Prefer props like size, outlined, invalid, active, and autofit before custom CSS.
223
+ - Classes below are useful for reasoning and debugging, not a stable public styling API.
224
+ - Block-layout behavior should come from the parent layout, not from UiTextbox itself.
225
+ root_classes:
226
+ - .ui-v1-textbox
227
+ state_classes:
228
+ - .ui-v1-textbox_invalid
229
+ - .ui-v1-textbox_active
230
+ - .ui-v1-textbox_outlined
231
+ - .ui-v1-textbox_xs
232
+ - .ui-v1-textbox_md
233
+ - .ui-v1-textbox_lg
234
+ - .ui-v1-textbox_xl
235
+ zones:
236
+ - .ui-v1-textbox__prefix
237
+ - .ui-v1-textbox__suffix
238
+ - .ui-v1-textbox__icon.ui-v1-textbox__icon_leading
239
+ - .ui-v1-textbox__icon.ui-v1-textbox__icon_trailing
240
+ - .ui-v1-textbox__eraser
241
+ - .ui-v1-textbox__placeholder
242
+ css_variables:
243
+ public_theme_variables:
244
+ - name: --ui-v1-textbox-primary-color
245
+ effect: Active and focus border color.
246
+ - name: --ui-v1-textbox-primary-shadow-color
247
+ effect: Focus ring shadow color in outlined mode.
248
+ - name: --ui-v1-textbox-danger-color
249
+ effect: Invalid border and active color.
250
+ - name: --ui-v1-textbox-danger-shadow-color
251
+ effect: Invalid focus ring shadow color in outlined mode.
252
+ - name: --ui-v1-textbox-autofill-color
253
+ effect: Background for browser autofill state.
254
+ - name: --ui-v1-textbox-icon-color
255
+ effect: Default leading and trailing icon color.
256
+ internal_layout_variables:
257
+ - name: --height
258
+ effect: Control height and line box.
259
+ - name: --padding
260
+ effect: Inner inline padding in outlined mode.
261
+ - name: --gap
262
+ effect: Spacing between the control and adjacent zones.
263
+ - name: --icon-size
264
+ effect: Icon square size.
265
+ - name: --border-color
266
+ effect: Current border or underline color.
267
+ - name: --active-color
268
+ effect: Derived active color used during focus and active states.
269
+ - name: --shadow-color
270
+ effect: Derived focus ring color used in outlined mode.
271
+ typography:
272
+ default:
273
+ mixin: text-regular
274
+ size: 16px
275
+ line_height: 24px
276
+ weight: 400
277
+ size_variants:
278
+ - name: xs
279
+ mixin: text-small
280
+ size: 14px
281
+ line_height: 20px
282
+ weight: 400
283
+ - name: md
284
+ mixin: h4
285
+ size: 18px
286
+ line_height: 28px
287
+ weight: 400
288
+ - name: lg
289
+ mixin: h3
290
+ size: 20px
291
+ line_height: 32px
292
+ weight: 400
293
+ - name: xl
294
+ mixin: h2
295
+ size: 24px
296
+ line_height: 32px
297
+ weight: 400
298
+ notes:
299
+ - Prefix, suffix, and icon zones inherit the active size context.
300
+ - The inner input or textarea inherits font-family, size, weight, and line-height from the root.
301
+
302
+ behavior:
303
+ states:
304
+ - name: clearable
305
+ notes: The clear button is shown only when String(value) is not empty.
306
+ - name: invalid
307
+ notes: Sets aria-invalid=true and enables error styling.
308
+ - name: readonly
309
+ notes: Keeps the value visible but blocks editing.
310
+ - name: disabled
311
+ notes: Disables interaction completely.
312
+ - name: autofocus
313
+ notes: Focuses after mount.
314
+ - name: autoselect
315
+ notes: Selects the whole value on focus.
316
+ - name: multiline
317
+ notes: Renders a textarea instead of an input.
318
+ numeric_behavior:
319
+ - inputmode=numeric filters input down to digits and does not behave like a full decimal model.
320
+ - inputmode=decimal enables decimal input, separator normalization, and decimals limiting.
321
+ - Negative decimal input is allowed only when min < 0.
322
+ - ArrowUp and ArrowDown change value by step in decimal mode.
323
+
324
+ accessibility:
325
+ notes:
326
+ - The component sets aria-invalid automatically from invalid.
327
+ - Extra ARIA wiring is usually passed through inputAttributes.
328
+ - Native events such as keydown, focus, and blur are forwarded outward.
329
+
330
+ composition:
331
+ works_well_with:
332
+ - UiField
333
+ - UiPageHeader
334
+ - UiSelect trigger internals
335
+ patterns:
336
+ - title: Form field
337
+ notes: For standard forms, UiTextbox usually belongs inside UiField.
338
+ - title: Search field
339
+ notes: Leading icon plus clearable is a strong search pattern.
340
+ - title: Inline editing
341
+ notes: outlined=false and autofit=true fit header and inline editing scenarios.
342
+ - title: Inline control
343
+ notes: Use UiTextbox as a self-contained control, not as a wrapper for arbitrary content.
344
+
345
+ examples:
346
+ - title: Field wiring
347
+ goal: Build a standard text field with correct ARIA wiring.
348
+ code: |
349
+ <UiField id="name" label="Name">
350
+ <template #default="field">
351
+ <UiTextbox
352
+ :id="field.id"
353
+ :input-attributes="{
354
+ 'aria-labelledby': field.ariaLabelledby,
355
+ 'aria-invalid': field.ariaInvalid,
356
+ }"
357
+ v-model:value="name"
358
+ />
359
+ </template>
360
+ </UiField>
361
+ - title: Search pattern
362
+ goal: Build a textbox with a leading icon and clear action.
363
+ code: |
364
+ <UiTextbox v-model:value="term" clearable>
365
+ <template #leading-icon>
366
+ <IconSearch aria-hidden="true" />
367
+ </template>
368
+ </UiTextbox>
369
+ - title: Prefix and suffix zones
370
+ goal: Show safe markup for prefix and suffix content.
371
+ code: |
372
+ <UiTextbox v-model:value="amount" inputmode="decimal" suffix="₽">
373
+ <template #prefix>
374
+ <span>Amount</span>
375
+ </template>
376
+ </UiTextbox>
377
+
378
+ ai_notes:
379
+ do:
380
+ - Pair UiTextbox with UiField in most form scenarios.
381
+ - Use inputmode=decimal for amounts and explicitly set decimals, min, and step.
382
+ - Prefer span, svg, and icon components for slot content.
383
+ - Remember that the root is span-based and inline-flex.
384
+ avoid:
385
+ - Do not use UiTextbox as a select.
386
+ - Do not place div or block layout markup inside prefix, suffix, or icon zones.
387
+ - Do not replace multiline mode with a different component if a textarea-like control is enough.
388
+ - Do not rely on block-level behavior from the component root.
@@ -0,0 +1,34 @@
1
+ component: UiTimePicker
2
+ summary: >
3
+ UiTimePicker is a time input component that combines textbox-like entry with a list of
4
+ normalized time variants and bounds.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTimePicker
10
+
11
+ related_components:
12
+ - UiTextbox
13
+ - UiPopper
14
+
15
+ use_when:
16
+ - You need editable time input.
17
+ - You need bounded time variants or interval-based time selection.
18
+
19
+ avoid_when:
20
+ - You need raw text input without time semantics.
21
+
22
+ api:
23
+ key_props:
24
+ - name: value
25
+ - name: placeholder
26
+ - name: interval
27
+ - name: timeVariants
28
+ - name: minTime
29
+ - name: maxTime
30
+ - name: textboxOptions
31
+ methods:
32
+ - name: open
33
+ - name: close
34
+ - name: focus
@@ -0,0 +1,25 @@
1
+ component: UiToolbarButton
2
+ summary: >
3
+ UiToolbarButton is a compact button for toolbar zones. It shares action semantics with buttons
4
+ but is tuned for dense toolbar layouts.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiToolbarButton
10
+
11
+ use_when:
12
+ - You need a compact button in a toolbar or action strip.
13
+
14
+ avoid_when:
15
+ - You need the full visual weight of UiButton.
16
+
17
+ api:
18
+ emits:
19
+ - name: click
20
+ - name: focus
21
+ - name: blur
22
+ methods:
23
+ - name: click
24
+ - name: focus
25
+ - name: blur
@@ -0,0 +1,20 @@
1
+ component: UiToolbarLink
2
+ summary: >
3
+ UiToolbarLink is a compact toolbar-oriented link. It is the link counterpart to UiToolbarButton.
4
+
5
+ public_import:
6
+ from: '@retailcrm/embed-ui-v1-components/remote'
7
+ named:
8
+ - UiToolbarLink
9
+
10
+ use_when:
11
+ - You need a compact link in a toolbar area.
12
+
13
+ avoid_when:
14
+ - You need a regular inline content link.
15
+
16
+ api:
17
+ emits:
18
+ - name: click
19
+ - name: focus
20
+ - name: blur
@@ -0,0 +1,31 @@
1
+ component: UiTooltip
2
+ summary: >
3
+ UiTooltip is the tooltip-specialized floating layer built on top of popper mechanics.
4
+ Use it for compact helper content anchored to one target.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTooltip
10
+
11
+ related_components:
12
+ - UiPopper
13
+ - UiPopperConnector
14
+ - UiPopperTarget
15
+
16
+ use_when:
17
+ - You need compact helper text or tooltip content.
18
+
19
+ avoid_when:
20
+ - You need a dropdown or rich popup layout.
21
+
22
+ api:
23
+ key_props:
24
+ - name: visible
25
+ - name: placement
26
+ - name: targetTriggers
27
+ - name: popperTriggers
28
+
29
+ ai_notes:
30
+ do:
31
+ - Use UiTooltip for tooltip semantics and UiPopper for lower-level floating behavior.
@@ -0,0 +1,15 @@
1
+ component: UiTransition
2
+ summary: >
3
+ UiTransition is a transition wrapper for animated mount, unmount, and visibility flows.
4
+ Use it to express motion without switching to raw transition markup.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiTransition
10
+
11
+ use_when:
12
+ - You need transition behavior around content.
13
+
14
+ avoid_when:
15
+ - You need static content with no transition behavior.
@@ -0,0 +1,17 @@
1
+ component: UiYandexMap
2
+ summary: >
3
+ UiYandexMap is the Yandex map component for map display and related location scenarios.
4
+ Treat it as unstable for now and avoid it unless the screen explicitly requires a map surface.
5
+
6
+ public_import:
7
+ from: '@retailcrm/embed-ui-v1-components/remote'
8
+ named:
9
+ - UiYandexMap
10
+
11
+ use_when:
12
+ - You need a Yandex map view.
13
+ - You need location display inside extension UI.
14
+
15
+ avoid_when:
16
+ - You can solve the task without an embedded map and do not want to depend on an unstable component.
17
+ - You only need text address output.