@fundamental-styles/mcp 0.41.7-rc.8 → 0.41.7
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/data/AI_USAGE.md +425 -0
- package/data/CHANGELOG.md +53 -3
- package/data/component-catalog.json +62 -209
- package/data/components/README.md +281 -0
- package/data/components/action-bar.md +443 -0
- package/data/components/ai-busy-indicator.md +79 -0
- package/data/components/ai-loading-bar.md +66 -0
- package/data/components/avatar-btp.md +198 -0
- package/data/components/avatar-group.md +2660 -0
- package/data/components/avatar-product-switch.md +476 -0
- package/data/components/avatar.md +993 -0
- package/data/components/bar.md +574 -0
- package/data/components/border-radius.md +148 -0
- package/data/components/border.md +412 -0
- package/data/components/breadcrumb.md +546 -0
- package/data/components/button-2.md +440 -0
- package/data/components/button-action-sheet.md +292 -0
- package/data/components/button-ai.md +730 -0
- package/data/components/button-btp.md +223 -0
- package/data/components/button-button.md +233 -0
- package/data/components/button-counter.md +176 -0
- package/data/components/button-patterns.md +731 -0
- package/data/components/button-split.md +459 -0
- package/data/components/button.md +469 -0
- package/data/components/calendar.md +5784 -0
- package/data/components/card-card-media.md +707 -0
- package/data/components/card-card.md +2426 -0
- package/data/components/card-layouts.md +1201 -0
- package/data/components/card.md +2404 -0
- package/data/components/carousel.md +1506 -0
- package/data/components/code.md +139 -0
- package/data/components/component-reset.md +272 -0
- package/data/components/components-icons-businesssuiteinappsymbol-icons.md +85 -0
- package/data/components/components-icons-sap-icons.md +147 -0
- package/data/components/components-icons-tnt-icons.md +85 -0
- package/data/components/container-queries.md +221 -0
- package/data/components/container.md +227 -0
- package/data/components/dialog-docs-static-busy-indicator.md +165 -0
- package/data/components/dialog-docs-static-dialog.md +949 -0
- package/data/components/dialog-docs-static-patterns.md +147 -0
- package/data/components/dialog-docs-static-settings.md +528 -0
- package/data/components/dialog-docs-static.md +982 -0
- package/data/components/dialog.md +606 -0
- package/data/components/dynamic-page-dynamic-page.md +1914 -0
- package/data/components/dynamic-page.md +973 -0
- package/data/components/dynamic-side.md +197 -0
- package/data/components/elevation.md +110 -0
- package/data/components/feed-input.md +346 -0
- package/data/components/feed-list.md +580 -0
- package/data/components/fieldset-2.md +292 -0
- package/data/components/fieldset-forms.md +169 -0
- package/data/components/fieldset.md +381 -0
- package/data/components/flexible-column-layout.md +205 -0
- package/data/components/form-group.md +287 -0
- package/data/components/form-header.md +71 -0
- package/data/components/form-item-2.md +98 -0
- package/data/components/form-item-3.md +134 -0
- package/data/components/form-item-4.md +556 -0
- package/data/components/form-item-5.md +182 -0
- package/data/components/form-item-6.md +539 -0
- package/data/components/form-item-7.md +239 -0
- package/data/components/form-item-ai.md +158 -0
- package/data/components/form-item-file-uploader.md +445 -0
- package/data/components/form-item-forms.md +234 -0
- package/data/components/form-item-patterns.md +426 -0
- package/data/components/form-item.md +464 -0
- package/data/components/form-label-ai.md +126 -0
- package/data/components/form-label-layouts.md +306 -0
- package/data/components/form-label-patterns.md +1175 -0
- package/data/components/form-label-status-indicator.md +1083 -0
- package/data/components/form-label-step-input.md +620 -0
- package/data/components/form-label.md +2876 -0
- package/data/components/generic-tag.md +747 -0
- package/data/components/grid-list-grid-list.md +1185 -0
- package/data/components/grid-list.md +1449 -0
- package/data/components/heading.md +66 -0
- package/data/components/horizontal-navigation.md +568 -0
- package/data/components/icon-tab-bar-dev.md +190 -0
- package/data/components/icon-tab-bar.md +2620 -0
- package/data/components/icon.md +171 -0
- package/data/components/iconBusinessSuite.md +92 -0
- package/data/components/iconTnt.md +92 -0
- package/data/components/illustrated-message.md +439 -0
- package/data/components/info-label.md +348 -0
- package/data/components/input-group.md +2068 -0
- package/data/components/label.md +66 -0
- package/data/components/layout-grid.md +447 -0
- package/data/components/layout-panel.md +261 -0
- package/data/components/layouts-layout-grid.md +608 -0
- package/data/components/layouts-paddings.md +133 -0
- package/data/components/layouts-section.md +287 -0
- package/data/components/list-2.md +148 -0
- package/data/components/list-3.md +735 -0
- package/data/components/list-list.md +790 -0
- package/data/components/list-object-list.md +1225 -0
- package/data/components/list.md +1286 -0
- package/data/components/media-queries.md +168 -0
- package/data/components/menu.md +946 -0
- package/data/components/message-box-docs-static-ai.md +149 -0
- package/data/components/message-box-docs-static.md +527 -0
- package/data/components/message-page-upload-collection.md +678 -0
- package/data/components/message-page.md +256 -0
- package/data/components/message-strip.md +977 -0
- package/data/components/message-toast.md +119 -0
- package/data/components/micro-process-flow.md +991 -0
- package/data/components/navigation-menu.md +366 -0
- package/data/components/navigation-navigation.md +1245 -0
- package/data/components/navigation.md +2604 -0
- package/data/components/numeric-content.md +317 -0
- package/data/components/object-attribute.md +96 -0
- package/data/components/object-identifier.md +227 -0
- package/data/components/object-marker.md +202 -0
- package/data/components/object-number.md +327 -0
- package/data/components/object-status.md +1538 -0
- package/data/components/off-screen.md +87 -0
- package/data/components/overflow.md +97 -0
- package/data/components/padding.md +122 -0
- package/data/components/paddings.md +130 -0
- package/data/components/page.md +300 -0
- package/data/components/pagination.md +672 -0
- package/data/components/panel-layouts.md +345 -0
- package/data/components/panel.md +514 -0
- package/data/components/patterns-label.md +74 -0
- package/data/components/popover-2.md +906 -0
- package/data/components/popover-ai.md +466 -0
- package/data/components/popover-btp.md +886 -0
- package/data/components/popover-deprecated.md +308 -0
- package/data/components/popover-message-popover.md +683 -0
- package/data/components/popover-notification.md +1511 -0
- package/data/components/popover-patterns.md +1100 -0
- package/data/components/popover-popover.md +1862 -0
- package/data/components/popover-quick-view.md +385 -0
- package/data/components/popover-timepicker.md +1836 -0
- package/data/components/popover-user-menu.md +1303 -0
- package/data/components/popover.md +1938 -0
- package/data/components/progress-indicator.md +351 -0
- package/data/components/prompt-input-ai.md +226 -0
- package/data/components/prompt-input.md +226 -0
- package/data/components/rating-indicator.md +1469 -0
- package/data/components/resizable-card-layout.md +951 -0
- package/data/components/scrollbar.md +86 -0
- package/data/components/search-field.md +287 -0
- package/data/components/section.md +250 -0
- package/data/components/segmented-button.md +324 -0
- package/data/components/shellbar.md +2183 -0
- package/data/components/side-nav.md +1562 -0
- package/data/components/skeleton.md +243 -0
- package/data/components/slider.md +395 -0
- package/data/components/splitter.md +353 -0
- package/data/components/table.md +2749 -0
- package/data/components/tabs.md +658 -0
- package/data/components/text-text.md +380 -0
- package/data/components/text.md +253 -0
- package/data/components/tile.md +1132 -0
- package/data/components/time.md +818 -0
- package/data/components/title.md +153 -0
- package/data/components/titles.md +83 -0
- package/data/components/token.md +311 -0
- package/data/components/tokenizer.md +398 -0
- package/data/components/tool-header.md +1352 -0
- package/data/components/tool-layout.md +199 -0
- package/data/components/toolbar-ai.md +174 -0
- package/data/components/toolbar-btp.md +526 -0
- package/data/components/toolbar-title-bar.md +473 -0
- package/data/components/toolbar.md +432 -0
- package/data/components/tree.md +1031 -0
- package/data/components/typography.md +435 -0
- package/data/components/variant-management.md +360 -0
- package/data/components/vertical-nav.md +589 -0
- package/data/components/wizard.md +1429 -0
- package/data/examples/Components/dialog/device-specifications.example.html +39 -30
- package/data/examples/Components/shellbar/optional-items.example.html +210 -157
- package/data/examples/Components/shellbar/overflow-toolbar.example.html +202 -177
- package/data/examples/Components/shellbar/responsive-paddings.example.html +217 -146
- package/data/examples/Components/shellbar/responsiveness.example.html +825 -613
- package/data/examples/Components/user-menu/default.example.html +241 -83
- package/data/schemas/badge.schema.json +1 -1
- package/data/schemas/button-split.schema.json +1 -1
- package/data/schemas/component-frontmatter.schema.json +123 -0
- package/data/schemas/component-markdown.schema.json +81 -0
- package/data/schemas/counter.schema.json +1 -1
- package/data/schemas/dynamic-page.schema.json +1 -1
- package/data/schemas/dynamic-side-content.schema.json +1 -1
- package/data/schemas/facet.schema.json +1 -1
- package/data/schemas/fieldset.schema.json +1 -1
- package/data/schemas/flexible-column-layout.schema.json +1 -1
- package/data/schemas/form-group.schema.json +3 -2
- package/data/schemas/form-header.schema.json +1 -1
- package/data/schemas/form-label.schema.json +1 -0
- package/data/schemas/form-message.schema.json +1 -1
- package/data/schemas/grid-list.schema.json +1 -1
- package/data/schemas/input-group.schema.json +1 -1
- package/data/schemas/layout-panel.schema.json +1 -1
- package/data/schemas/page.schema.json +1 -1
- package/data/schemas/quick-view.schema.json +2 -1
- package/data/schemas/section.schema.json +1 -1
- package/data/schemas/side-nav.schema.json +1 -1
- package/data/schemas/splitter.schema.json +1 -1
- package/data/schemas/tabs.schema.json +1 -1
- package/data/schemas/tile.schema.json +1 -1
- package/data/schemas/tool-layout.schema.json +1 -1
- package/data/schemas/user-menu.schema.json +10 -0
- package/data/schemas/wizard.schema.json +1 -1
- package/package.json +1 -1
- package/src/data/load-catalog.d.ts +2 -0
- package/src/data/load-catalog.js +5 -1
- package/src/data/load-catalog.js.map +1 -1
- package/src/data/load-markdown-docs.d.ts +44 -0
- package/src/data/load-markdown-docs.js +179 -0
- package/src/data/load-markdown-docs.js.map +1 -0
- package/src/data/markdown-cache.d.ts +60 -0
- package/src/data/markdown-cache.js +218 -0
- package/src/data/markdown-cache.js.map +1 -0
- package/src/server.js +72 -1
- package/src/server.js.map +1 -1
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: fd-dialog
|
|
3
|
+
title: Patterns/Combobox Input
|
|
4
|
+
category: Patterns
|
|
5
|
+
selector: fd-dialog
|
|
6
|
+
cssFile: dialog.css
|
|
7
|
+
sourcePath: packages/styles/stories/Patterns/combobox-input/combobox-input.stories.js
|
|
8
|
+
tags: []
|
|
9
|
+
dependencies: ["bar","button","dialog","form-item","form-label","icon","input","input-group","list","popover","radio","title"]
|
|
10
|
+
relatedComponents: ["bar","button","dialog","form-item","form-label","icon","input","input-group","list","popover","radio","title"]
|
|
11
|
+
stability: stable
|
|
12
|
+
generatedAt: 2026-06-09T18:29:01.747Z
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Patterns/Combobox Input
|
|
16
|
+
|
|
17
|
+
The Combobox Input component is an opinionated composition of the input group, popover and list components.
|
|
18
|
+
The popover and \
|
|
19
|
+
|
|
20
|
+
## Dependencies
|
|
21
|
+
|
|
22
|
+
This component depends on the following CSS files:
|
|
23
|
+
|
|
24
|
+
- `bar.css`
|
|
25
|
+
- `button.css`
|
|
26
|
+
- `dialog.css`
|
|
27
|
+
- `form-item.css`
|
|
28
|
+
- `form-label.css`
|
|
29
|
+
- `icon.css`
|
|
30
|
+
- `input.css`
|
|
31
|
+
- `input-group.css`
|
|
32
|
+
- `list.css`
|
|
33
|
+
- `popover.css`
|
|
34
|
+
- `radio.css`
|
|
35
|
+
- `title.css`
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install fundamental-styles
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<!-- Include theme -->
|
|
45
|
+
<link href="node_modules/fundamental-styles/dist/theming/sap_horizon.css" rel="stylesheet">
|
|
46
|
+
|
|
47
|
+
<!-- Include component CSS -->
|
|
48
|
+
<link href="node_modules/fundamental-styles/dist/dialog.css" rel="stylesheet">
|
|
49
|
+
|
|
50
|
+
<!-- Include dependencies -->
|
|
51
|
+
<link href="node_modules/fundamental-styles/dist/bar.css" rel="stylesheet">
|
|
52
|
+
<link href="node_modules/fundamental-styles/dist/button.css" rel="stylesheet">
|
|
53
|
+
<link href="node_modules/fundamental-styles/dist/dialog.css" rel="stylesheet">
|
|
54
|
+
<link href="node_modules/fundamental-styles/dist/form-item.css" rel="stylesheet">
|
|
55
|
+
<link href="node_modules/fundamental-styles/dist/form-label.css" rel="stylesheet">
|
|
56
|
+
<link href="node_modules/fundamental-styles/dist/icon.css" rel="stylesheet">
|
|
57
|
+
<link href="node_modules/fundamental-styles/dist/input.css" rel="stylesheet">
|
|
58
|
+
<link href="node_modules/fundamental-styles/dist/input-group.css" rel="stylesheet">
|
|
59
|
+
<link href="node_modules/fundamental-styles/dist/list.css" rel="stylesheet">
|
|
60
|
+
<link href="node_modules/fundamental-styles/dist/popover.css" rel="stylesheet">
|
|
61
|
+
<link href="node_modules/fundamental-styles/dist/radio.css" rel="stylesheet">
|
|
62
|
+
<link href="node_modules/fundamental-styles/dist/title.css" rel="stylesheet">
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Basic Usage
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<div class="fd-form-item">
|
|
69
|
+
<label for="comboboxAsFormItem" class="fd-form-label">Combobox as a form item</label>
|
|
70
|
+
<div class="fd-popover">
|
|
71
|
+
<div class="fd-popover__control" aria-controls="amsfiaufuaskhjd" aria-expanded="true" aria-haspopup="true"
|
|
72
|
+
id="ansioda7dh">
|
|
73
|
+
<div class="fd-input-group fd-input-group--control">
|
|
74
|
+
<input type="text" class="fd-input fd-input-group__input" id="comboboxAsFormItem" placeholder="Select Fruit">
|
|
75
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
76
|
+
<button
|
|
77
|
+
id="ansid87arfgj"
|
|
78
|
+
aria-label="show/hide fruit options"
|
|
79
|
+
aria-controls="amsfiaufuaskhjd"
|
|
80
|
+
aria-expanded="true"
|
|
81
|
+
aria-haspopup="true"
|
|
82
|
+
class="fd-input-group__button fd-button fd-button--transparent">
|
|
83
|
+
<i class="sap-icon--navigation-down-arrow"></i></button>
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown fd-popover__body--dropdown-fill" aria-hidden="false" id="amsfiaufuaskhjd">
|
|
87
|
+
<div class="fd-popover__wrapper docs-max-height">
|
|
88
|
+
<ul aria-label="fruit options" class="fd-list fd-list--dropdown" role="listbox">
|
|
89
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
90
|
+
<span class="fd-list__title">
|
|
91
|
+
<span class="fd-list__bold">App</span>le
|
|
92
|
+
</span>
|
|
93
|
+
</li>
|
|
94
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
95
|
+
<span class="fd-list__title">Orange</span>
|
|
96
|
+
</li>
|
|
97
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
98
|
+
<span class="fd-list__title">Banana</span>
|
|
99
|
+
</li>
|
|
100
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
101
|
+
<span class="fd-list__title">Kiwi</span>
|
|
102
|
+
</li>
|
|
103
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
104
|
+
<span class="fd-list__title">Nectarine</span>
|
|
105
|
+
</li>
|
|
106
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
107
|
+
<span class="fd-list__title">Apricots</span>
|
|
108
|
+
</li>
|
|
109
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
110
|
+
<span class="fd-list__title">Peache</span>
|
|
111
|
+
</li>
|
|
112
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
113
|
+
<span class="fd-list__title">Plum</span>
|
|
114
|
+
</li>
|
|
115
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
116
|
+
<span class="fd-list__title">Mango</span>
|
|
117
|
+
</li>
|
|
118
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
119
|
+
<span class="fd-list__title">Strawberry</span>
|
|
120
|
+
</li>
|
|
121
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
122
|
+
<span class="fd-list__title">Blueberry</span>
|
|
123
|
+
</li>
|
|
124
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
125
|
+
<span class="fd-list__title">Watermelon</span>
|
|
126
|
+
</li>
|
|
127
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
128
|
+
<span class="fd-list__title">Honeydew</span>
|
|
129
|
+
</li>
|
|
130
|
+
</ul>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Modifiers
|
|
138
|
+
|
|
139
|
+
| Class | Description |
|
|
140
|
+
|-------|-------------|
|
|
141
|
+
| `fd-dialog--active` | Style variant |
|
|
142
|
+
|
|
143
|
+
## States
|
|
144
|
+
|
|
145
|
+
| Class | Description |
|
|
146
|
+
|-------|-------------|
|
|
147
|
+
| `is-selected` | Selected state |
|
|
148
|
+
| `is-success` | Success state |
|
|
149
|
+
|
|
150
|
+
## BEM Elements
|
|
151
|
+
|
|
152
|
+
This component uses the following BEM elements:
|
|
153
|
+
|
|
154
|
+
- `fd-dialog__body`
|
|
155
|
+
- `fd-dialog__body--no-vertical-padding`
|
|
156
|
+
- `fd-dialog__content`
|
|
157
|
+
- `fd-dialog__content--mobile`
|
|
158
|
+
- `fd-dialog__decisive-button`
|
|
159
|
+
- `fd-dialog__footer`
|
|
160
|
+
- `fd-dialog__header`
|
|
161
|
+
- `fd-dialog__subheader`
|
|
162
|
+
|
|
163
|
+
## Related Components
|
|
164
|
+
|
|
165
|
+
This component works with or depends on:
|
|
166
|
+
|
|
167
|
+
- `bar`
|
|
168
|
+
- `button`
|
|
169
|
+
- `dialog`
|
|
170
|
+
- `form-item`
|
|
171
|
+
- `form-label`
|
|
172
|
+
- `icon`
|
|
173
|
+
- `input`
|
|
174
|
+
- `input-group`
|
|
175
|
+
- `list`
|
|
176
|
+
- `popover`
|
|
177
|
+
- `radio`
|
|
178
|
+
- `title`
|
|
179
|
+
|
|
180
|
+
## Design Tokens
|
|
181
|
+
|
|
182
|
+
Key CSS variables used by this component:
|
|
183
|
+
|
|
184
|
+
- `--active`
|
|
185
|
+
- `--draggable`
|
|
186
|
+
- `--mobile`
|
|
187
|
+
- `--no-backdrop`
|
|
188
|
+
- `--no-horizontal-padding`
|
|
189
|
+
- `--no-mobile-stretch`
|
|
190
|
+
- `--no-vertical-padding`
|
|
191
|
+
- `--sapButton_Lite_TextColor`
|
|
192
|
+
- `--sapElement_BorderCornerRadius`
|
|
193
|
+
- `--targeted`
|
|
194
|
+
|
|
195
|
+
## Examples
|
|
196
|
+
|
|
197
|
+
### AsFormItem
|
|
198
|
+
|
|
199
|
+
Note that the popover body width is restricted to a max of 37.5rem to avoid readability issues in large-width popovers.
|
|
200
|
+
Applications are free to override this in their custom styles if needed and own any readability issues arising from this override.
|
|
201
|
+
|
|
202
|
+
```html
|
|
203
|
+
<div class="fd-form-item">
|
|
204
|
+
<label for="comboboxAsFormItem" class="fd-form-label">Combobox as a form item</label>
|
|
205
|
+
<div class="fd-popover">
|
|
206
|
+
<div class="fd-popover__control" aria-controls="amsfiaufuaskhjd" aria-expanded="true" aria-haspopup="true"
|
|
207
|
+
id="ansioda7dh">
|
|
208
|
+
<div class="fd-input-group fd-input-group--control">
|
|
209
|
+
<input type="text" class="fd-input fd-input-group__input" id="comboboxAsFormItem" placeholder="Select Fruit">
|
|
210
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
211
|
+
<button
|
|
212
|
+
id="ansid87arfgj"
|
|
213
|
+
aria-label="show/hide fruit options"
|
|
214
|
+
aria-controls="amsfiaufuaskhjd"
|
|
215
|
+
aria-expanded="true"
|
|
216
|
+
aria-haspopup="true"
|
|
217
|
+
class="fd-input-group__button fd-button fd-button--transparent">
|
|
218
|
+
<i class="sap-icon--navigation-down-arrow"></i></button>
|
|
219
|
+
</span>
|
|
220
|
+
</div>
|
|
221
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown fd-popover__body--dropdown-fill" aria-hidden="false" id="amsfiaufuaskhjd">
|
|
222
|
+
<div class="fd-popover__wrapper docs-max-height">
|
|
223
|
+
<ul aria-label="fruit options" class="fd-list fd-list--dropdown" role="listbox">
|
|
224
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
225
|
+
<span class="fd-list__title">
|
|
226
|
+
<span class="fd-list__bold">App</span>le
|
|
227
|
+
</span>
|
|
228
|
+
</li>
|
|
229
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
230
|
+
<span class="fd-list__title">Orange</span>
|
|
231
|
+
</li>
|
|
232
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
233
|
+
<span class="fd-list__title">Banana</span>
|
|
234
|
+
</li>
|
|
235
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
236
|
+
<span class="fd-list__title">Kiwi</span>
|
|
237
|
+
</li>
|
|
238
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
239
|
+
<span class="fd-list__title">Nectarine</span>
|
|
240
|
+
</li>
|
|
241
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
242
|
+
<span class="fd-list__title">Apricots</span>
|
|
243
|
+
</li>
|
|
244
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
245
|
+
<span class="fd-list__title">Peache</span>
|
|
246
|
+
</li>
|
|
247
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
248
|
+
<span class="fd-list__title">Plum</span>
|
|
249
|
+
</li>
|
|
250
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
251
|
+
<span class="fd-list__title">Mango</span>
|
|
252
|
+
</li>
|
|
253
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
254
|
+
<span class="fd-list__title">Strawberry</span>
|
|
255
|
+
</li>
|
|
256
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
257
|
+
<span class="fd-list__title">Blueberry</span>
|
|
258
|
+
</li>
|
|
259
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
260
|
+
<span class="fd-list__title">Watermelon</span>
|
|
261
|
+
</li>
|
|
262
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
263
|
+
<span class="fd-list__title">Honeydew</span>
|
|
264
|
+
</li>
|
|
265
|
+
</ul>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### TwoItemsAndItemsGrouping
|
|
273
|
+
|
|
274
|
+
The \
|
|
275
|
+
|
|
276
|
+
```html
|
|
277
|
+
<label for="twoItems" class="fd-form-label">Product prices</label>
|
|
278
|
+
<div class="fd-popover">
|
|
279
|
+
<div class="fd-popover__control" aria-controls="F4GRTGLK6" aria-expanded="true" aria-haspopup="true"
|
|
280
|
+
id="124qqdf34"
|
|
281
|
+
onclick="
|
|
282
|
+
toggleElAttrs('F4GRTGLK6', ['aria-hidden']);
|
|
283
|
+
toggleElAttrs('124qqdf34', ['aria-expanded']);
|
|
284
|
+
toggleElAttrs('f32rafsef', ['aria-expanded']);
|
|
285
|
+
">
|
|
286
|
+
<div class="fd-input-group fd-input-group--control">
|
|
287
|
+
<input type="text" class="fd-input fd-input-group__input" id="twoItems" placeholder="Select Product">
|
|
288
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
289
|
+
<button
|
|
290
|
+
id="f32rafsef"
|
|
291
|
+
aria-label="show/hide fruit options"
|
|
292
|
+
aria-controls="F4GRTGLK6"
|
|
293
|
+
aria-expanded="true"
|
|
294
|
+
aria-haspopup="true"
|
|
295
|
+
class="fd-input-group__button fd-button fd-button--transparent fd-select__button">
|
|
296
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
297
|
+
</button>
|
|
298
|
+
</span>
|
|
299
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown fd-popover__body--dropdown-fill" aria-hidden="false" id="F4GRTGLK6">
|
|
300
|
+
<div class="fd-popover__wrapper">
|
|
301
|
+
<ul aria-label="fruit options" class="fd-list fd-list--dropdown" role="listbox">
|
|
302
|
+
<li class="fd-list__item is-selected" role="option" tabindex="0">
|
|
303
|
+
<span class="fd-list__title">Product 1</span>
|
|
304
|
+
<span class="fd-list__secondary">1000 EUR</span>
|
|
305
|
+
</li>
|
|
306
|
+
<li class="fd-list__item" role="option" tabindex="0">
|
|
307
|
+
<span class="fd-list__title">Product 2</span>
|
|
308
|
+
<span class="fd-list__secondary">750 EUR</span>
|
|
309
|
+
</li>
|
|
310
|
+
<li class="fd-list__item" role="option" tabindex="0">
|
|
311
|
+
<span class="fd-list__title">Product 3</span>
|
|
312
|
+
<span class="fd-list__secondary">780 EUR</span>
|
|
313
|
+
</li>
|
|
314
|
+
<li class="fd-list__item" role="option" tabindex="0">
|
|
315
|
+
<span class="fd-list__title">Product 4</span>
|
|
316
|
+
<span class="fd-list__secondary">40 EUR</span>
|
|
317
|
+
</li>
|
|
318
|
+
</ul>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
<label for="groupedItems" class="fd-form-label">Fruits and Vegetables</label>
|
|
324
|
+
<div class="fd-popover">
|
|
325
|
+
<div class="fd-popover__control" aria-controls="F4GcXLK6" aria-expanded="true" aria-haspopup="true"
|
|
326
|
+
id="mad09sudka"
|
|
327
|
+
onclick="
|
|
328
|
+
toggleElAttrs('F4GcXLK6', ['aria-hidden']);
|
|
329
|
+
toggleElAttrs('mad09sudka', ['aria-expanded']);
|
|
330
|
+
toggleElAttrs('masioda8sdh', ['aria-expanded']);
|
|
331
|
+
">
|
|
332
|
+
<div class="fd-input-group fd-input-group--control">
|
|
333
|
+
<input type="text" class="fd-input fd-input-group__input" id="groupedItems" placeholder="Select Ingredient">
|
|
334
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
335
|
+
<button
|
|
336
|
+
id="masioda8sdh"
|
|
337
|
+
aria-label="show/hide fruit options"
|
|
338
|
+
aria-controls="F4GcXLK6"
|
|
339
|
+
aria-expanded="true"
|
|
340
|
+
aria-haspopup="true"
|
|
341
|
+
class="fd-input-group__button fd-button fd-button--transparent">
|
|
342
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
343
|
+
</button>
|
|
344
|
+
</span>
|
|
345
|
+
</div>
|
|
346
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown fd-popover__body--dropdown-fill" aria-hidden="false" id="F4GcXLK6">
|
|
347
|
+
<div class="fd-popover__wrapper">
|
|
348
|
+
<label id="fruitListHeader" class="fd-list__group-header">
|
|
349
|
+
<span class="fd-list__title">Fruits</span>
|
|
350
|
+
</label>
|
|
351
|
+
<ul aria-labelledby="fruitListHeader" class="fd-list fd-list--dropdown" role="listbox">
|
|
352
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
353
|
+
<span class="fd-list__title">Apple</span>
|
|
354
|
+
</li>
|
|
355
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
356
|
+
<span class="fd-list__title">Orange</span>
|
|
357
|
+
</li>
|
|
358
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
359
|
+
<span class="fd-list__title">Banana</span>
|
|
360
|
+
</li>
|
|
361
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
362
|
+
<span class="fd-list__title">Kiwi</span>
|
|
363
|
+
</li>
|
|
364
|
+
</ul>
|
|
365
|
+
<label id="vegListHeader" class="fd-list__group-header">
|
|
366
|
+
<span class="fd-list__title">Vegetables</span>
|
|
367
|
+
</label>
|
|
368
|
+
<ul aria-labelledby="vegListHeader" class="fd-list fd-list--dropdown" role="listbox">
|
|
369
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
370
|
+
<span class="fd-list__title">Tomato</span>
|
|
371
|
+
</li>
|
|
372
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
373
|
+
<span class="fd-list__title">Onion</span>
|
|
374
|
+
</li>
|
|
375
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
376
|
+
<span class="fd-list__title">Spinach</span>
|
|
377
|
+
</li>
|
|
378
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
379
|
+
<span class="fd-list__title">Potato</span>
|
|
380
|
+
</li>
|
|
381
|
+
</ul>
|
|
382
|
+
</div>
|
|
383
|
+
</div>
|
|
384
|
+
</div>
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### MatchPopoverBodySize
|
|
388
|
+
|
|
389
|
+
The default length size of the popover body is often different from the text length.
|
|
390
|
+
The body length can be adjusted to match the text length by adding the \
|
|
391
|
+
|
|
392
|
+
```html
|
|
393
|
+
<label for="matchPopoverBodySize" class="fd-form-label">Match Popover Body Size</label>
|
|
394
|
+
<div class="fd-popover">
|
|
395
|
+
<div class="fd-popover__control" aria-controls="F4HTFDLK6" aria-expanded="true" aria-haspopup="true"
|
|
396
|
+
id="anmsdic0a8dh"
|
|
397
|
+
onclick="
|
|
398
|
+
toggleElAttrs('F4HTFDLK6', ['aria-hidden']);
|
|
399
|
+
toggleElAttrs('anmsdic0a8dh', ['aria-expanded']);
|
|
400
|
+
toggleElAttrs('samdoia8fhg', ['aria-expanded']);
|
|
401
|
+
">
|
|
402
|
+
<div class="fd-input-group fd-input-group--control">
|
|
403
|
+
<input type="text" class="fd-input fd-input-group__input" id="matchPopoverBodySize" placeholder="Select Ingredient">
|
|
404
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
405
|
+
<button
|
|
406
|
+
id="samdoia8fhg"
|
|
407
|
+
aria-label="show/hide fruit options"
|
|
408
|
+
aria-controls="F4HTFDLK6"
|
|
409
|
+
aria-expanded="true"
|
|
410
|
+
aria-haspopup="true"
|
|
411
|
+
class="fd-input-group__button fd-button fd-button--transparent">
|
|
412
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
413
|
+
</button>
|
|
414
|
+
</span>
|
|
415
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown" aria-hidden="false" id="F4HTFDLK6">
|
|
416
|
+
<div class="fd-popover__wrapper">
|
|
417
|
+
<ul aria-label="fruit options" class="fd-list fd-list--dropdown" role="listbox">
|
|
418
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
419
|
+
<span class="fd-list__title">Apple</span>
|
|
420
|
+
</li>
|
|
421
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
422
|
+
<span class="fd-list__title">Orange</span>
|
|
423
|
+
</li>
|
|
424
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
425
|
+
<span class="fd-list__title">Banana</span>
|
|
426
|
+
</li>
|
|
427
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
428
|
+
<span class="fd-list__title">Kiwi</span>
|
|
429
|
+
</li>
|
|
430
|
+
</ul>
|
|
431
|
+
</div>
|
|
432
|
+
</div>
|
|
433
|
+
</div>
|
|
434
|
+
</div>
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
### DisabledAndReadOnly
|
|
438
|
+
|
|
439
|
+
To disable a \
|
|
440
|
+
|
|
441
|
+
```html
|
|
442
|
+
<label for="disabledCombobox" class="fd-form-label">Disabled</label>
|
|
443
|
+
<div class="fd-popover">
|
|
444
|
+
<div class="fd-popover__control" aria-controls="F4GcX348" aria-expanded="false" aria-haspopup="true" aria-disabled="true" disabled>
|
|
445
|
+
<div class="fd-input-group fd-input-group--control" aria-disabled="true" disabled>
|
|
446
|
+
<input id="disabledCombobox" type="text" class="fd-input fd-input-group__input" id="" value="Orange" placeholder="Select Fruit">
|
|
447
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
448
|
+
<button aria-label="show/hide options button" class="fd-input-group__button fd-button fd-button--transparent fd-select__button">
|
|
449
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
450
|
+
</button>
|
|
451
|
+
</span>
|
|
452
|
+
</div>
|
|
453
|
+
</div>
|
|
454
|
+
<label for="readonlyCombobox" class="fd-form-label">Readonly</label>
|
|
455
|
+
<div class="fd-popover">
|
|
456
|
+
<div class="fd-popover__control" aria-controls="F4GcX348" aria-expanded="false" aria-haspopup="false" aria-readonly="true" readonly>
|
|
457
|
+
<input type="text" class="fd-input fd-input-group__input" id="readonlyCombobox" value="Orange" aria-readonly="true" readonly>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
</div>
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Semantic
|
|
464
|
+
|
|
465
|
+
For a complete list of states supported by the \
|
|
466
|
+
|
|
467
|
+
```html
|
|
468
|
+
<label for="semanticCombobox" class="fd-form-label">Semantic Combobox</label>
|
|
469
|
+
<div class="fd-popover">
|
|
470
|
+
<div class="fd-popover__control" aria-controls="F4GcEX34" aria-expanded="true" aria-haspopup="true"
|
|
471
|
+
id="mfa98agh4ih3"
|
|
472
|
+
onclick="
|
|
473
|
+
toggleElAttrs('F4GcEX34', ['aria-hidden']);
|
|
474
|
+
toggleElAttrs('mfa98agh4ih3', ['aria-expanded']);
|
|
475
|
+
toggleElAttrs('mpzjf2q09ugd', ['aria-expanded']);
|
|
476
|
+
">
|
|
477
|
+
<div class="fd-input-group fd-input-group--control is-success">
|
|
478
|
+
<input type="text" class="fd-input fd-input-group__input" id="semanticCombobox" placeholder="Select Fruit">
|
|
479
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
480
|
+
<button id="mpzjf2q09ugd" aria-label="show/hide fruit options"
|
|
481
|
+
class="fd-input-group__button fd-button fd-button--transparent fd-select__button"
|
|
482
|
+
aria-controls="F4GcEX34" aria-expanded="true" aria-haspopup="true">
|
|
483
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
484
|
+
</button>
|
|
485
|
+
</span>
|
|
486
|
+
</div>
|
|
487
|
+
<div class="fd-popover__body fd-popover__body--no-arrow fd-popover__body--dropdown fd-popover__body--dropdown-fill" aria-hidden="false" id="F4GcEX34">
|
|
488
|
+
<div class="fd-popover__wrapper">
|
|
489
|
+
<span class="fd-list__message fd-list__message--success">Success message</span>
|
|
490
|
+
<ul aria-label="fruit options" class="fd-list fd-list--has-message fd-list--dropdown" role="listbox">
|
|
491
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
492
|
+
<span class="fd-list__title">
|
|
493
|
+
<span class="fd-list__bold">App</span>le
|
|
494
|
+
</span>
|
|
495
|
+
</li>
|
|
496
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
497
|
+
<span class="fd-list__title">Orange</span>
|
|
498
|
+
</li>
|
|
499
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
500
|
+
<span class="fd-list__title">Banana</span>
|
|
501
|
+
</li>
|
|
502
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
503
|
+
<span class="fd-list__title">Kiwi</span>
|
|
504
|
+
</li>
|
|
505
|
+
</ul>
|
|
506
|
+
</div>
|
|
507
|
+
</div>
|
|
508
|
+
</div>
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Mobile
|
|
512
|
+
|
|
513
|
+
For mobile devices, or tablets, combobox component should be displayed in fullscreen mode.
|
|
514
|
+
So instead of using popover and dropdown, it should be wrapped in \
|
|
515
|
+
|
|
516
|
+
```html
|
|
517
|
+
<div class="fd-dialog fd-dialog-docs-static fd-select-docs-max-height fd-dialog--active"
|
|
518
|
+
id="select-dialog-example">
|
|
519
|
+
<section role="dialog" aria-labelledby="mobileDialogHeader" class="fd-dialog__content fd-dialog__content--mobile">
|
|
520
|
+
<header class="fd-dialog__header fd-bar fd-bar--header-with-subheader">
|
|
521
|
+
<div class="fd-bar__left">
|
|
522
|
+
<div class="fd-bar__element">
|
|
523
|
+
<h3 id="mobileDialogHeader" class="fd-title fd-title--h5">
|
|
524
|
+
Ingredients
|
|
525
|
+
</h3>
|
|
526
|
+
</div>
|
|
527
|
+
</div>
|
|
528
|
+
<div class="fd-bar__right">
|
|
529
|
+
<div class="fd-bar__element">
|
|
530
|
+
<button class="fd-button fd-button--transparent" aria-label="close">
|
|
531
|
+
<i class="sap-icon--decline"></i>
|
|
532
|
+
</button>
|
|
533
|
+
</div>
|
|
534
|
+
</div>
|
|
535
|
+
</header>
|
|
536
|
+
<div class="fd-dialog__subheader fd-bar fd-bar--subheader">
|
|
537
|
+
<div class="fd-bar__middle">
|
|
538
|
+
<div class="fd-input-group fd-input-group--control">
|
|
539
|
+
<input aria-labelledby="mobileDialogHeader"
|
|
540
|
+
type="text" class="fd-input fd-input-group__input" value="Apple" id="mobileCombobox" placeholder="Select Ingredient">
|
|
541
|
+
<span class="fd-input-group__addon fd-input-group__addon--button">
|
|
542
|
+
<button aria-label="hide/show options" class="fd-input-group__button fd-button fd-button--transparent">
|
|
543
|
+
<i class="sap-icon--navigation-down-arrow"></i>
|
|
544
|
+
</button>
|
|
545
|
+
</span>
|
|
546
|
+
</div>
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
<div class="fd-dialog__body fd-dialog__body--no-vertical-padding">
|
|
550
|
+
<label id="fruitsMobileHeader" class="fd-list__group-header">
|
|
551
|
+
<span class="fd-list__title">Fruits</span>
|
|
552
|
+
</label>
|
|
553
|
+
<ul aria-labelledby="fruitsMobileHeader" class="fd-list fd-list--dropdown fd-list--mobile" role="listbox">
|
|
554
|
+
<li role="option" tabindex="0" class="fd-list__item is-selected">
|
|
555
|
+
<span class="fd-list__title">Apple</span>
|
|
556
|
+
</li>
|
|
557
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
558
|
+
<span class="fd-list__title">Orange</span>
|
|
559
|
+
</li>
|
|
560
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
561
|
+
<span class="fd-list__title">Banana</span>
|
|
562
|
+
</li>
|
|
563
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
564
|
+
<span class="fd-list__title">Kiwi</span>
|
|
565
|
+
</li>
|
|
566
|
+
</ul>
|
|
567
|
+
<label id="vegMobileHeader" class="fd-list__group-header">
|
|
568
|
+
<span class="fd-list__title">Vegetables</span>
|
|
569
|
+
</label>
|
|
570
|
+
<ul aria-labelledby="vegMobileHeader" class="fd-list fd-list--dropdown fd-list--mobile" role="listbox">
|
|
571
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
572
|
+
<span class="fd-list__title">Tomato</span>
|
|
573
|
+
</li>
|
|
574
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
575
|
+
<span class="fd-list__title">Onion</span>
|
|
576
|
+
</li>
|
|
577
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
578
|
+
<span class="fd-list__title">Spinach</span>
|
|
579
|
+
</li>
|
|
580
|
+
<li role="option" tabindex="0" class="fd-list__item">
|
|
581
|
+
<span class="fd-list__title">Potato</span>
|
|
582
|
+
</li>
|
|
583
|
+
</ul>
|
|
584
|
+
</div>
|
|
585
|
+
<footer class="fd-dialog__footer fd-bar fd-bar--footer">
|
|
586
|
+
<div class="fd-bar__right">
|
|
587
|
+
<div class="fd-bar__element">
|
|
588
|
+
<button class="fd-button fd-button--emphasized fd-dialog__decisive-button">OK</button>
|
|
589
|
+
</div>
|
|
590
|
+
</div>
|
|
591
|
+
</footer>
|
|
592
|
+
</section>
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
## Accessibility
|
|
596
|
+
|
|
597
|
+
- Use semantic HTML elements where appropriate
|
|
598
|
+
- Include proper ARIA attributes for interactive elements
|
|
599
|
+
- Ensure keyboard navigation support
|
|
600
|
+
- Provide adequate color contrast
|
|
601
|
+
|
|
602
|
+
## Source
|
|
603
|
+
|
|
604
|
+
This documentation was automatically generated from: `packages/styles/stories/Patterns/combobox-input/combobox-input.stories.js`
|
|
605
|
+
|
|
606
|
+
For the latest updates and interactive examples, see [Storybook](https://sap.github.io/fundamental-styles/).
|