@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,464 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: fd-form-item
|
|
3
|
+
title: Components/Forms/Input
|
|
4
|
+
category: Components
|
|
5
|
+
selector: fd-form-item
|
|
6
|
+
cssFile: form-item.css
|
|
7
|
+
sourcePath: packages/styles/stories/Components/Forms/input/input.stories.js
|
|
8
|
+
tags: []
|
|
9
|
+
dependencies: []
|
|
10
|
+
relatedComponents: []
|
|
11
|
+
stability: stable
|
|
12
|
+
generatedAt: 2026-06-09T18:29:01.450Z
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Components/Forms/Input
|
|
16
|
+
|
|
17
|
+
Inputs are used to collect data from the user and should always be paired with a label. When a field is required, the label should include an asterisk (*).
|
|
18
|
+
|
|
19
|
+
A text input field allows users to enter and edit text or numeric values in one line. To help users enter a valid value, it provides additional features like “auto-complete”, “suggestions”, and “value help”.
|
|
20
|
+
|
|
21
|
+
##Usage
|
|
22
|
+
|
|
23
|
+
Use the input field if:
|
|
24
|
+
|
|
25
|
+
- The user needs to enter a short, single-line text or numbers, dates or times.
|
|
26
|
+
- The user needs to select one or more items from a list of items, such a a multi-input.
|
|
27
|
+
- The user needs to find one or more items out of a list of items by searching for more than one attribute, such as a combobox.
|
|
28
|
+
|
|
29
|
+
Do not use the input field if:
|
|
30
|
+
|
|
31
|
+
- The user needs to enter long texts. In this case, use the textarea.
|
|
32
|
+
- The user needs to carry out a search. In this case, use the search field.
|
|
33
|
+
|
|
34
|
+
## Usage Guidelines
|
|
35
|
+
|
|
36
|
+
Use the input field if:
|
|
37
|
+
|
|
38
|
+
- The user needs to enter a short, single-line text or numbers, dates or times.
|
|
39
|
+
- The user needs to select one or more items from a list of items, such a a multi-input.
|
|
40
|
+
- The user needs to find one or more items out of a list of items by searching for more than one attribute, such as a combobox.
|
|
41
|
+
|
|
42
|
+
Do not use the input field if:
|
|
43
|
+
|
|
44
|
+
- The user needs to enter long texts. In this case, use the textarea.
|
|
45
|
+
- The user needs to carry out a search. In this case, use the search field.
|
|
46
|
+
|
|
47
|
+
## Installation
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install fundamental-styles
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<!-- Include theme -->
|
|
55
|
+
<link href="node_modules/fundamental-styles/dist/theming/sap_horizon.css" rel="stylesheet">
|
|
56
|
+
|
|
57
|
+
<!-- Include component CSS -->
|
|
58
|
+
<link href="node_modules/fundamental-styles/dist/form-item.css" rel="stylesheet">
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Basic Usage
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<div class="fd-form-item">
|
|
66
|
+
<label class="fd-form-label" for="input-default">Full Name</label>
|
|
67
|
+
<input class="fd-input" type="text" id="input-default" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div class="fd-form-item">
|
|
71
|
+
<label class="fd-form-label" for="input-hover">Full Name (Hover State)</label>
|
|
72
|
+
<input class="fd-input is-hover" type="text" id="input-hover" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="fd-form-item">
|
|
76
|
+
<label class="fd-form-label" for="input-focus">Full Name (Focus State)</label>
|
|
77
|
+
<input class="fd-input is-focus" type="text" id="input-focus" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div class="fd-form-item">
|
|
81
|
+
<label class="fd-form-label fd-form-label--required" for="input-required">Email Address</label>
|
|
82
|
+
<input class="fd-input" type="email" id="input-required" placeholder="e.g., user@example.com" autocomplete="off" required aria-required="true">
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="fd-form-item">
|
|
86
|
+
<label class="fd-form-label" for="input-password">Password</label>
|
|
87
|
+
<input class="fd-input" type="password" id="input-password" autocomplete="off" required aria-required="true">
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<div class="fd-form-item">
|
|
91
|
+
<label class="fd-form-label" for="input-error">Username (Error)</label>
|
|
92
|
+
<input class="fd-input is-error" type="text" id="input-error" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-message">
|
|
93
|
+
<div class="fd-input__sr-only" id="input-error-message">You have entered invalid username.</div>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
<div class="fd-form-item">
|
|
97
|
+
<label class="fd-form-label" for="input-error-hover">Username (Error + Hover)</label>
|
|
98
|
+
<input class="fd-input is-error is-hover" type="text" id="input-error-hover" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-hover-message">
|
|
99
|
+
<div class="fd-input__sr-only" id="input-error-hover-message">You have entered invalid username.</div>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<div class="fd-form-item">
|
|
103
|
+
<label class="fd-form-label" for="input-error-focus">Username (Error + Focus)</label>
|
|
104
|
+
<input class="fd-input is-error is-focus" type="text" id="input-error-focus" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-focus-message">
|
|
105
|
+
<div class="fd-input__sr-only" id="input-error-focus-message">You have entered invalid username.</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<div class="fd-form-item">
|
|
109
|
+
<label class="fd-form-label" for="input-success">Phone Number (Success)</label>
|
|
110
|
+
<input class="fd-input is-success" type="tel" id="input-success" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-message">
|
|
111
|
+
<div class="fd-input__sr-only" id="input-success-message">Entry successfully validated</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="fd-form-item">
|
|
115
|
+
<label class="fd-form-label" for="input-success-hover">Phone Number (Success + Hover)</label>
|
|
116
|
+
<input class="fd-input is-success is-hover" type="tel" id="input-success-hover" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-hover-message">
|
|
117
|
+
<div class="fd-input__sr-only" id="input-success-hover-message">Entry successfully validated</div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<div class="fd-form-item">
|
|
121
|
+
<label class="fd-form-label" for="input-success-focus">Phone Number (Success + Focus)</label>
|
|
122
|
+
<input class="fd-input is-success is-focus" type="tel" id="input-success-focus" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-focus-message">
|
|
123
|
+
<div class="fd-input__sr-only" id="input-success-focus-message">Entry successfully validated</div>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div class="fd-form-item">
|
|
127
|
+
<label class="fd-form-label" for="input-warning">Security Answer (Warning)</label>
|
|
128
|
+
<input class="fd-input is-warning" type="text" id="input-warning" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-message">
|
|
129
|
+
<div class="fd-input__sr-only" id="input-warning-message">Warning message</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<div class="fd-form-item">
|
|
133
|
+
<label class="fd-form-label" for="input-warning-hover">Security Answer (Warning + Hover)</label>
|
|
134
|
+
<input class="fd-input is-warning is-hover" type="text" id="input-warning-hover" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-hover-message">
|
|
135
|
+
<div class="fd-input__sr-only" id="input-warning-hover-message">Warning message</div>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<div class="fd-form-item">
|
|
139
|
+
<label class="fd-form-label" for="input-warning-focus">Security Answer (Warning + Focus)</label>
|
|
140
|
+
<input class="fd-input is-warning is-focus" type="text" id="input-warning-focus" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-focus-message">
|
|
141
|
+
<div class="fd-input__sr-only" id="input-warning-focus-message">Warning message</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<div class="fd-form-item">
|
|
145
|
+
<label class="fd-form-label" for="input-info">Notes (Info)</label>
|
|
146
|
+
<input class="fd-input is-information" type="text" id="input-info" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-message">
|
|
147
|
+
<div class="fd-input__sr-only" id="input-info-message">Informative message</div>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<div class="fd-form-item">
|
|
151
|
+
<label class="fd-form-label" for="input-info-hover">Notes (Info + Hover)</label>
|
|
152
|
+
<input class="fd-input is-information is-hover" type="text" id="input-info-hover" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-hover-message">
|
|
153
|
+
<div class="fd-input__sr-only" id="input-info-hover-message">Informative message</div>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
<div class="fd-form-item">
|
|
157
|
+
<label class="fd-form-label" for="input-info-focus">Notes (Info + Focus)</label>
|
|
158
|
+
<input class="fd-input is-information is-focus" type="text" id="input-info-focus" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-focus-message">
|
|
159
|
+
<div class="fd-input__sr-only" id="input-info-focus-message">Informative message</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="fd-form-item">
|
|
163
|
+
<label class="fd-form-label fd-form-label--disabled" for="input-disabled" aria-disabled="true">Organization</label>
|
|
164
|
+
<input class="fd-input" type="text" id="input-disabled" value="SAP" disabled>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div class="fd-form-item">
|
|
168
|
+
<label class="fd-form-label" for="input-readonly">Country (Read-Only)</label>
|
|
169
|
+
<input class="fd-input" type="text" id="input-readonly" value="Canada" readonly>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div class="fd-form-item fd-form-item--horizontal">
|
|
173
|
+
<label class="fd-form-label" for="input-horizontal">Department</label>
|
|
174
|
+
<input class="fd-input" type="text" id="input-horizontal" placeholder="e.g., Marketing">
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
<div class="fd-form-item fd-form-item--horizontal">
|
|
178
|
+
<label class="fd-form-label fd-form-label--required" for="input-horizontal-required">Employee ID</label>
|
|
179
|
+
<input class="fd-input" type="text" id="input-horizontal-required" placeholder="e.g., E12345" required aria-required="true">
|
|
180
|
+
</div>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Modifiers
|
|
184
|
+
|
|
185
|
+
| Class | Description |
|
|
186
|
+
|-------|-------------|
|
|
187
|
+
| `fd-form-item--horizontal` | Style variant |
|
|
188
|
+
|
|
189
|
+
## States
|
|
190
|
+
|
|
191
|
+
| Class | Description |
|
|
192
|
+
|-------|-------------|
|
|
193
|
+
| `is-error` | Error state |
|
|
194
|
+
| `is-focus` | Focus state |
|
|
195
|
+
| `is-hover` | Hover state |
|
|
196
|
+
| `is-information` | Information state |
|
|
197
|
+
| `is-success` | Success state |
|
|
198
|
+
| `is-warning` | Warning state |
|
|
199
|
+
|
|
200
|
+
## Examples
|
|
201
|
+
|
|
202
|
+
### Default
|
|
203
|
+
|
|
204
|
+
The standard input component can be displayed by using `fd-input` class
|
|
205
|
+
|
|
206
|
+
```html
|
|
207
|
+
<div class="fd-form-item">
|
|
208
|
+
<label class="fd-form-label" for="input-default">Full Name</label>
|
|
209
|
+
<input class="fd-input" type="text" id="input-default" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
<div class="fd-form-item">
|
|
213
|
+
<label class="fd-form-label" for="input-hover">Full Name (Hover State)</label>
|
|
214
|
+
<input class="fd-input is-hover" type="text" id="input-hover" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<div class="fd-form-item">
|
|
218
|
+
<label class="fd-form-label" for="input-focus">Full Name (Focus State)</label>
|
|
219
|
+
<input class="fd-input is-focus" type="text" id="input-focus" placeholder="e.g., Jane Doe" autocomplete="off">
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
<div class="fd-form-item">
|
|
223
|
+
<label class="fd-form-label fd-form-label--required" for="input-required">Email Address</label>
|
|
224
|
+
<input class="fd-input" type="email" id="input-required" placeholder="e.g., user@example.com" autocomplete="off" required aria-required="true">
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<div class="fd-form-item">
|
|
228
|
+
<label class="fd-form-label" for="input-password">Password</label>
|
|
229
|
+
<input class="fd-input" type="password" id="input-password" autocomplete="off" required aria-required="true">
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div class="fd-form-item">
|
|
233
|
+
<label class="fd-form-label" for="input-error">Username (Error)</label>
|
|
234
|
+
<input class="fd-input is-error" type="text" id="input-error" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-message">
|
|
235
|
+
<div class="fd-input__sr-only" id="input-error-message">You have entered invalid username.</div>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<div class="fd-form-item">
|
|
239
|
+
<label class="fd-form-label" for="input-error-hover">Username (Error + Hover)</label>
|
|
240
|
+
<input class="fd-input is-error is-hover" type="text" id="input-error-hover" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-hover-message">
|
|
241
|
+
<div class="fd-input__sr-only" id="input-error-hover-message">You have entered invalid username.</div>
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
<div class="fd-form-item">
|
|
245
|
+
<label class="fd-form-label" for="input-error-focus">Username (Error + Focus)</label>
|
|
246
|
+
<input class="fd-input is-error is-focus" type="text" id="input-error-focus" placeholder="Invalid username" autocomplete="off" aria-invalid="true" aria-describedby="input-error-focus-message">
|
|
247
|
+
<div class="fd-input__sr-only" id="input-error-focus-message">You have entered invalid username.</div>
|
|
248
|
+
</div>
|
|
249
|
+
|
|
250
|
+
<div class="fd-form-item">
|
|
251
|
+
<label class="fd-form-label" for="input-success">Phone Number (Success)</label>
|
|
252
|
+
<input class="fd-input is-success" type="tel" id="input-success" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-message">
|
|
253
|
+
<div class="fd-input__sr-only" id="input-success-message">Entry successfully validated</div>
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
<div class="fd-form-item">
|
|
257
|
+
<label class="fd-form-label" for="input-success-hover">Phone Number (Success + Hover)</label>
|
|
258
|
+
<input class="fd-input is-success is-hover" type="tel" id="input-success-hover" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-hover-message">
|
|
259
|
+
<div class="fd-input__sr-only" id="input-success-hover-message">Entry successfully validated</div>
|
|
260
|
+
</div>
|
|
261
|
+
|
|
262
|
+
<div class="fd-form-item">
|
|
263
|
+
<label class="fd-form-label" for="input-success-focus">Phone Number (Success + Focus)</label>
|
|
264
|
+
<input class="fd-input is-success is-focus" type="tel" id="input-success-focus" placeholder="e.g., +1 555 123 4567" autocomplete="off" aria-describedby="input-success-focus-message">
|
|
265
|
+
<div class="fd-input__sr-only" id="input-success-focus-message">Entry successfully validated</div>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<div class="fd-form-item">
|
|
269
|
+
<label class="fd-form-label" for="input-warning">Security Answer (Warning)</label>
|
|
270
|
+
<input class="fd-input is-warning" type="text" id="input-warning" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-message">
|
|
271
|
+
<div class="fd-input__sr-only" id="input-warning-message">Warning message</div>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<div class="fd-form-item">
|
|
275
|
+
<label class="fd-form-label" for="input-warning-hover">Security Answer (Warning + Hover)</label>
|
|
276
|
+
<input class="fd-input is-warning is-hover" type="text" id="input-warning-hover" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-hover-message">
|
|
277
|
+
<div class="fd-input__sr-only" id="input-warning-hover-message">Warning message</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<div class="fd-form-item">
|
|
281
|
+
<label class="fd-form-label" for="input-warning-focus">Security Answer (Warning + Focus)</label>
|
|
282
|
+
<input class="fd-input is-warning is-focus" type="text" id="input-warning-focus" placeholder="e.g., Your first pet's name" autocomplete="off" aria-describedby="input-warning-focus-message">
|
|
283
|
+
<div class="fd-input__sr-only" id="input-warning-focus-message">Warning message</div>
|
|
284
|
+
</div>
|
|
285
|
+
|
|
286
|
+
<div class="fd-form-item">
|
|
287
|
+
<label class="fd-form-label" for="input-info">Notes (Info)</label>
|
|
288
|
+
<input class="fd-input is-information" type="text" id="input-info" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-message">
|
|
289
|
+
<div class="fd-input__sr-only" id="input-info-message">Informative message</div>
|
|
290
|
+
</div>
|
|
291
|
+
|
|
292
|
+
<div class="fd-form-item">
|
|
293
|
+
<label class="fd-form-label" for="input-info-hover">Notes (Info + Hover)</label>
|
|
294
|
+
<input class="fd-input is-information is-hover" type="text" id="input-info-hover" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-hover-message">
|
|
295
|
+
<div class="fd-input__sr-only" id="input-info-hover-message">Informative message</div>
|
|
296
|
+
</div>
|
|
297
|
+
|
|
298
|
+
<div class="fd-form-item">
|
|
299
|
+
<label class="fd-form-label" for="input-info-focus">Notes (Info + Focus)</label>
|
|
300
|
+
<input class="fd-input is-information is-focus" type="text" id="input-info-focus" placeholder="e.g., Optional comments" autocomplete="off" aria-describedby="input-info-focus-message">
|
|
301
|
+
<div class="fd-input__sr-only" id="input-info-focus-message">Informative message</div>
|
|
302
|
+
</div>
|
|
303
|
+
|
|
304
|
+
<div class="fd-form-item">
|
|
305
|
+
<label class="fd-form-label fd-form-label--disabled" for="input-disabled" aria-disabled="true">Organization</label>
|
|
306
|
+
<input class="fd-input" type="text" id="input-disabled" value="SAP" disabled>
|
|
307
|
+
</div>
|
|
308
|
+
|
|
309
|
+
<div class="fd-form-item">
|
|
310
|
+
<label class="fd-form-label" for="input-readonly">Country (Read-Only)</label>
|
|
311
|
+
<input class="fd-input" type="text" id="input-readonly" value="Canada" readonly>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<div class="fd-form-item fd-form-item--horizontal">
|
|
315
|
+
<label class="fd-form-label" for="input-horizontal">Department</label>
|
|
316
|
+
<input class="fd-input" type="text" id="input-horizontal" placeholder="e.g., Marketing">
|
|
317
|
+
</div>
|
|
318
|
+
|
|
319
|
+
<div class="fd-form-item fd-form-item--horizontal">
|
|
320
|
+
<label class="fd-form-label fd-form-label--required" for="input-horizontal-required">Employee ID</label>
|
|
321
|
+
<input class="fd-input" type="text" id="input-horizontal-required" placeholder="e.g., E12345" required aria-required="true">
|
|
322
|
+
</div>
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### States
|
|
326
|
+
|
|
327
|
+
```html
|
|
328
|
+
<!-- Default Input -->
|
|
329
|
+
<div class="fd-form-item">
|
|
330
|
+
<label class="fd-form-label" for="input-default-field">Full Name</label>
|
|
331
|
+
<input
|
|
332
|
+
class="fd-input"
|
|
333
|
+
type="text"
|
|
334
|
+
id="input-default-field"
|
|
335
|
+
placeholder="e.g., Jane Doe"
|
|
336
|
+
autocomplete="off"
|
|
337
|
+
>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
<!-- Success Input with Message -->
|
|
341
|
+
<div class="fd-form-item">
|
|
342
|
+
<label class="fd-form-label" for="input-success-field">Email Address</label>
|
|
343
|
+
<div class="fd-popover">
|
|
344
|
+
<div class="fd-popover__control" aria-controls="success-message" aria-expanded="true" aria-haspopup="true">
|
|
345
|
+
<input
|
|
346
|
+
class="fd-input is-success"
|
|
347
|
+
type="email"
|
|
348
|
+
id="input-success-field"
|
|
349
|
+
placeholder="e.g., user@example.com"
|
|
350
|
+
autocomplete="off"
|
|
351
|
+
aria-describedby="success-message-input success-message"
|
|
352
|
+
>
|
|
353
|
+
<div class="fd-input__sr-only" id="success-message-input">Value State Success</div>
|
|
354
|
+
</div>
|
|
355
|
+
<div class="fd-popover__body fd-popover__body--input-message-group fd-popover__body--no-arrow" id="success-message">
|
|
356
|
+
<div class="fd-form-message fd-form-message--success">Email address looks good.</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
<!-- Error Input with Message -->
|
|
362
|
+
<div class="fd-form-item">
|
|
363
|
+
<label class="fd-form-label" for="input-error-field">Username</label>
|
|
364
|
+
<div class="fd-popover">
|
|
365
|
+
<div class="fd-popover__control" aria-controls="error-message-state" aria-expanded="true" aria-haspopup="true">
|
|
366
|
+
<input
|
|
367
|
+
class="fd-input is-error"
|
|
368
|
+
type="text"
|
|
369
|
+
id="input-error-field"
|
|
370
|
+
placeholder="e.g., johndoe123"
|
|
371
|
+
autocomplete="off"
|
|
372
|
+
aria-describedby="error-message-input error-message-state"
|
|
373
|
+
aria-invalid="true"
|
|
374
|
+
>
|
|
375
|
+
<div class="fd-input__sr-only" id="error-message-input">Value State Error</div>
|
|
376
|
+
</div>
|
|
377
|
+
<div class="fd-popover__body fd-popover__body--input-message-group fd-popover__body--no-arrow" id="error-message-state">
|
|
378
|
+
<div class="fd-form-message fd-form-message--error">Username must be at least 6 characters.</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
|
|
383
|
+
<!-- Warning Input with Message -->
|
|
384
|
+
<div class="fd-form-item">
|
|
385
|
+
<label class="fd-form-label" for="input-warning-field">Security Answer</label>
|
|
386
|
+
<div class="fd-popover">
|
|
387
|
+
<div class="fd-popover__control" aria-controls="warn-message" aria-expanded="true" aria-haspopup="true">
|
|
388
|
+
<input
|
|
389
|
+
class="fd-input is-warning"
|
|
390
|
+
type="text"
|
|
391
|
+
id="input-warning-field"
|
|
392
|
+
placeholder="e.g., Your first pet's name"
|
|
393
|
+
autocomplete="off"
|
|
394
|
+
aria-describedby="warn-message-input warn-message"
|
|
395
|
+
>
|
|
396
|
+
<div class="fd-input__sr-only" id="warn-message-input">Value State Warning</div>
|
|
397
|
+
</div>
|
|
398
|
+
<div class="fd-popover__body fd-popover__body--input-message-group fd-popover__body--no-arrow" id="warn-message">
|
|
399
|
+
<div class="fd-form-message fd-form-message--warning">Make sure this is easy for you to remember.</div>
|
|
400
|
+
</div>
|
|
401
|
+
</div>
|
|
402
|
+
</div>
|
|
403
|
+
<!-- Information Input with Message -->
|
|
404
|
+
<div class="fd-form-item">
|
|
405
|
+
<label class="fd-form-label" for="input-info-field">Additional Notes</label>
|
|
406
|
+
<div class="fd-popover">
|
|
407
|
+
<div class="fd-popover__control" aria-controls="info-message" aria-expanded="true" aria-haspopup="true">
|
|
408
|
+
<input
|
|
409
|
+
class="fd-input is-information"
|
|
410
|
+
type="text"
|
|
411
|
+
id="input-info-field"
|
|
412
|
+
placeholder="Optional"
|
|
413
|
+
autocomplete="off"
|
|
414
|
+
aria-describedby="info-message-input info-message"
|
|
415
|
+
>
|
|
416
|
+
<div class="fd-input__sr-only" id="info-message-input">Value State Information</div>
|
|
417
|
+
</div>
|
|
418
|
+
<div class="fd-popover__body fd-popover__body--input-message-group fd-popover__body--no-arrow" id="info-message">
|
|
419
|
+
<div class="fd-form-message fd-form-message--information">You can leave this blank if not applicable.</div>
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
</div>
|
|
423
|
+
|
|
424
|
+
<!-- Disabled Input -->
|
|
425
|
+
<div class="fd-form-item">
|
|
426
|
+
<label class="fd-form-label fd-form-label--disabled" for="input-disabled-field" aria-disabled="true">Organization</label>
|
|
427
|
+
<input
|
|
428
|
+
class="fd-input"
|
|
429
|
+
type="text"
|
|
430
|
+
id="input-disabled-field"
|
|
431
|
+
value="SAP"
|
|
432
|
+
placeholder="Organization"
|
|
433
|
+
autocomplete="off"
|
|
434
|
+
disabled
|
|
435
|
+
>
|
|
436
|
+
</div>
|
|
437
|
+
|
|
438
|
+
<!-- Read-Only Input -->
|
|
439
|
+
<div class="fd-form-item">
|
|
440
|
+
<label class="fd-form-label" for="input-readonly-field">Country</label>
|
|
441
|
+
<input
|
|
442
|
+
class="fd-input"
|
|
443
|
+
type="text"
|
|
444
|
+
id="input-readonly-field"
|
|
445
|
+
value="Canada"
|
|
446
|
+
placeholder="Country"
|
|
447
|
+
autocomplete="off"
|
|
448
|
+
readonly
|
|
449
|
+
>
|
|
450
|
+
</div>
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
## Accessibility
|
|
454
|
+
|
|
455
|
+
- Use semantic HTML elements where appropriate
|
|
456
|
+
- Include proper ARIA attributes for interactive elements
|
|
457
|
+
- Ensure keyboard navigation support
|
|
458
|
+
- Provide adequate color contrast
|
|
459
|
+
|
|
460
|
+
## Source
|
|
461
|
+
|
|
462
|
+
This documentation was automatically generated from: `packages/styles/stories/Components/Forms/input/input.stories.js`
|
|
463
|
+
|
|
464
|
+
For the latest updates and interactive examples, see [Storybook](https://sap.github.io/fundamental-styles/).
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: fd-form-label
|
|
3
|
+
title: AI/Patterns/Notice
|
|
4
|
+
category: AI
|
|
5
|
+
selector: fd-form-label
|
|
6
|
+
cssFile: form-label.css
|
|
7
|
+
sourcePath: packages/styles/stories/AI/Patterns/ai-notice/ai-notice.stories.js
|
|
8
|
+
tags: ["ai","experimental"]
|
|
9
|
+
dependencies: []
|
|
10
|
+
relatedComponents: []
|
|
11
|
+
stability: experimental
|
|
12
|
+
generatedAt: 2026-06-09T18:29:01.697Z
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# AI/Patterns/Notice
|
|
16
|
+
|
|
17
|
+
> **🧪 EXPERIMENTAL**: This component is experimental and its API may change.
|
|
18
|
+
|
|
19
|
+
The "AI Notice" pattern provides clear references about the quality and reliability of AI-generated results in written text. It is an essential part of the broader "messaging patterns" associated with AI services and integrates with other AI interaction patterns like explainability and feedback. This pattern helps users understand the trustworthiness of AI-generated content, enhancing transparency and confidence. It's especially useful in environments where AI-generated information is key, such as collaborative platforms, educational tools, content creation apps, and informational websites.
|
|
20
|
+
<br><b>Note: The component is in an experimental state.</b>
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install fundamental-styles
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<!-- Include theme -->
|
|
30
|
+
<link href="node_modules/fundamental-styles/dist/theming/sap_horizon.css" rel="stylesheet">
|
|
31
|
+
|
|
32
|
+
<!-- Include component CSS -->
|
|
33
|
+
<link href="node_modules/fundamental-styles/dist/form-label.css" rel="stylesheet">
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Basic Usage
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<h4>For Joule</h4>
|
|
41
|
+
<div>
|
|
42
|
+
<label class="fd-form-label">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">Joule</span></a>. Verify results before using them.</label>
|
|
43
|
+
</div>
|
|
44
|
+
<h4>For SAP Business AI</h4>
|
|
45
|
+
<div>
|
|
46
|
+
<label class="fd-form-label fd-form-label--required" aria-required="true">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">SAP Business AI</span></a>. Verify results before using them.</label>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<h4>With Text Area</h4>
|
|
50
|
+
<div class="fd-form-item">
|
|
51
|
+
<div class="fd-form-item__label-container">
|
|
52
|
+
<label class="fd-form-label" for="textarea-ai-1">How will you measure this goal? </label>
|
|
53
|
+
<button class="fd-button">
|
|
54
|
+
<i class="sap-icon--ai"></i>
|
|
55
|
+
<span class="fd-button__text">Revise</span>
|
|
56
|
+
<i class="sap-icon--slim-arrow-down"></i>
|
|
57
|
+
</button>
|
|
58
|
+
<div role="textbox" contenteditable="true" aria-multiline="true" class="fd-textarea fd-textarea--ai is-information" id="textarea-ai-1" placeholder="Write something here" rows="5"><p class="fd-ai-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatum eligendi quae recusandae rem illum? <mark>Vel minus corrupti in numquam qui eius totam!</mark> Sequi aut molestiae minus inventore. Sapiente, officia possimus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos fugiat quas cum, voluptas consequuntur totam aliquam illum aspernatur corrupti consectetur sint eaque sequi magni alias aliquid saepe quod ab voluptates.</p>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="fd-textarea-counter-container">
|
|
61
|
+
<label class="fd-form-label">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">Joule</span></a>. Verify results before using them.</label>
|
|
62
|
+
<div class="fd-textarea-counter">150 characters left</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Modifiers
|
|
70
|
+
|
|
71
|
+
| Class | Description |
|
|
72
|
+
|-------|-------------|
|
|
73
|
+
| `fd-form-label--required` | Style variant |
|
|
74
|
+
|
|
75
|
+
## States
|
|
76
|
+
|
|
77
|
+
| Class | Description |
|
|
78
|
+
|-------|-------------|
|
|
79
|
+
| `is-information` | Information state |
|
|
80
|
+
|
|
81
|
+
## Examples
|
|
82
|
+
|
|
83
|
+
### AINotice
|
|
84
|
+
|
|
85
|
+
```html
|
|
86
|
+
<h4>For Joule</h4>
|
|
87
|
+
<div>
|
|
88
|
+
<label class="fd-form-label">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">Joule</span></a>. Verify results before using them.</label>
|
|
89
|
+
</div>
|
|
90
|
+
<h4>For SAP Business AI</h4>
|
|
91
|
+
<div>
|
|
92
|
+
<label class="fd-form-label fd-form-label--required" aria-required="true">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">SAP Business AI</span></a>. Verify results before using them.</label>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<h4>With Text Area</h4>
|
|
96
|
+
<div class="fd-form-item">
|
|
97
|
+
<div class="fd-form-item__label-container">
|
|
98
|
+
<label class="fd-form-label" for="textarea-ai-1">How will you measure this goal? </label>
|
|
99
|
+
<button class="fd-button">
|
|
100
|
+
<i class="sap-icon--ai"></i>
|
|
101
|
+
<span class="fd-button__text">Revise</span>
|
|
102
|
+
<i class="sap-icon--slim-arrow-down"></i>
|
|
103
|
+
</button>
|
|
104
|
+
<div role="textbox" contenteditable="true" aria-multiline="true" class="fd-textarea fd-textarea--ai is-information" id="textarea-ai-1" placeholder="Write something here" rows="5"><p class="fd-ai-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatum eligendi quae recusandae rem illum? <mark>Vel minus corrupti in numquam qui eius totam!</mark> Sequi aut molestiae minus inventore. Sapiente, officia possimus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos fugiat quas cum, voluptas consequuntur totam aliquam illum aspernatur corrupti consectetur sint eaque sequi magni alias aliquid saepe quod ab voluptates.</p>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="fd-textarea-counter-container">
|
|
107
|
+
<label class="fd-form-label">Created with <a href="#" class="fd-link" tabindex="0"><span class="fd-link__content">Joule</span></a>. Verify results before using them.</label>
|
|
108
|
+
<div class="fd-textarea-counter">150 characters left</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Accessibility
|
|
116
|
+
|
|
117
|
+
- Use semantic HTML elements where appropriate
|
|
118
|
+
- Include proper ARIA attributes for interactive elements
|
|
119
|
+
- Ensure keyboard navigation support
|
|
120
|
+
- Provide adequate color contrast
|
|
121
|
+
|
|
122
|
+
## Source
|
|
123
|
+
|
|
124
|
+
This documentation was automatically generated from: `packages/styles/stories/AI/Patterns/ai-notice/ai-notice.stories.js`
|
|
125
|
+
|
|
126
|
+
For the latest updates and interactive examples, see [Storybook](https://sap.github.io/fundamental-styles/).
|