@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.
Files changed (215) hide show
  1. package/data/AI_USAGE.md +425 -0
  2. package/data/CHANGELOG.md +53 -3
  3. package/data/component-catalog.json +62 -209
  4. package/data/components/README.md +281 -0
  5. package/data/components/action-bar.md +443 -0
  6. package/data/components/ai-busy-indicator.md +79 -0
  7. package/data/components/ai-loading-bar.md +66 -0
  8. package/data/components/avatar-btp.md +198 -0
  9. package/data/components/avatar-group.md +2660 -0
  10. package/data/components/avatar-product-switch.md +476 -0
  11. package/data/components/avatar.md +993 -0
  12. package/data/components/bar.md +574 -0
  13. package/data/components/border-radius.md +148 -0
  14. package/data/components/border.md +412 -0
  15. package/data/components/breadcrumb.md +546 -0
  16. package/data/components/button-2.md +440 -0
  17. package/data/components/button-action-sheet.md +292 -0
  18. package/data/components/button-ai.md +730 -0
  19. package/data/components/button-btp.md +223 -0
  20. package/data/components/button-button.md +233 -0
  21. package/data/components/button-counter.md +176 -0
  22. package/data/components/button-patterns.md +731 -0
  23. package/data/components/button-split.md +459 -0
  24. package/data/components/button.md +469 -0
  25. package/data/components/calendar.md +5784 -0
  26. package/data/components/card-card-media.md +707 -0
  27. package/data/components/card-card.md +2426 -0
  28. package/data/components/card-layouts.md +1201 -0
  29. package/data/components/card.md +2404 -0
  30. package/data/components/carousel.md +1506 -0
  31. package/data/components/code.md +139 -0
  32. package/data/components/component-reset.md +272 -0
  33. package/data/components/components-icons-businesssuiteinappsymbol-icons.md +85 -0
  34. package/data/components/components-icons-sap-icons.md +147 -0
  35. package/data/components/components-icons-tnt-icons.md +85 -0
  36. package/data/components/container-queries.md +221 -0
  37. package/data/components/container.md +227 -0
  38. package/data/components/dialog-docs-static-busy-indicator.md +165 -0
  39. package/data/components/dialog-docs-static-dialog.md +949 -0
  40. package/data/components/dialog-docs-static-patterns.md +147 -0
  41. package/data/components/dialog-docs-static-settings.md +528 -0
  42. package/data/components/dialog-docs-static.md +982 -0
  43. package/data/components/dialog.md +606 -0
  44. package/data/components/dynamic-page-dynamic-page.md +1914 -0
  45. package/data/components/dynamic-page.md +973 -0
  46. package/data/components/dynamic-side.md +197 -0
  47. package/data/components/elevation.md +110 -0
  48. package/data/components/feed-input.md +346 -0
  49. package/data/components/feed-list.md +580 -0
  50. package/data/components/fieldset-2.md +292 -0
  51. package/data/components/fieldset-forms.md +169 -0
  52. package/data/components/fieldset.md +381 -0
  53. package/data/components/flexible-column-layout.md +205 -0
  54. package/data/components/form-group.md +287 -0
  55. package/data/components/form-header.md +71 -0
  56. package/data/components/form-item-2.md +98 -0
  57. package/data/components/form-item-3.md +134 -0
  58. package/data/components/form-item-4.md +556 -0
  59. package/data/components/form-item-5.md +182 -0
  60. package/data/components/form-item-6.md +539 -0
  61. package/data/components/form-item-7.md +239 -0
  62. package/data/components/form-item-ai.md +158 -0
  63. package/data/components/form-item-file-uploader.md +445 -0
  64. package/data/components/form-item-forms.md +234 -0
  65. package/data/components/form-item-patterns.md +426 -0
  66. package/data/components/form-item.md +464 -0
  67. package/data/components/form-label-ai.md +126 -0
  68. package/data/components/form-label-layouts.md +306 -0
  69. package/data/components/form-label-patterns.md +1175 -0
  70. package/data/components/form-label-status-indicator.md +1083 -0
  71. package/data/components/form-label-step-input.md +620 -0
  72. package/data/components/form-label.md +2876 -0
  73. package/data/components/generic-tag.md +747 -0
  74. package/data/components/grid-list-grid-list.md +1185 -0
  75. package/data/components/grid-list.md +1449 -0
  76. package/data/components/heading.md +66 -0
  77. package/data/components/horizontal-navigation.md +568 -0
  78. package/data/components/icon-tab-bar-dev.md +190 -0
  79. package/data/components/icon-tab-bar.md +2620 -0
  80. package/data/components/icon.md +171 -0
  81. package/data/components/iconBusinessSuite.md +92 -0
  82. package/data/components/iconTnt.md +92 -0
  83. package/data/components/illustrated-message.md +439 -0
  84. package/data/components/info-label.md +348 -0
  85. package/data/components/input-group.md +2068 -0
  86. package/data/components/label.md +66 -0
  87. package/data/components/layout-grid.md +447 -0
  88. package/data/components/layout-panel.md +261 -0
  89. package/data/components/layouts-layout-grid.md +608 -0
  90. package/data/components/layouts-paddings.md +133 -0
  91. package/data/components/layouts-section.md +287 -0
  92. package/data/components/list-2.md +148 -0
  93. package/data/components/list-3.md +735 -0
  94. package/data/components/list-list.md +790 -0
  95. package/data/components/list-object-list.md +1225 -0
  96. package/data/components/list.md +1286 -0
  97. package/data/components/media-queries.md +168 -0
  98. package/data/components/menu.md +946 -0
  99. package/data/components/message-box-docs-static-ai.md +149 -0
  100. package/data/components/message-box-docs-static.md +527 -0
  101. package/data/components/message-page-upload-collection.md +678 -0
  102. package/data/components/message-page.md +256 -0
  103. package/data/components/message-strip.md +977 -0
  104. package/data/components/message-toast.md +119 -0
  105. package/data/components/micro-process-flow.md +991 -0
  106. package/data/components/navigation-menu.md +366 -0
  107. package/data/components/navigation-navigation.md +1245 -0
  108. package/data/components/navigation.md +2604 -0
  109. package/data/components/numeric-content.md +317 -0
  110. package/data/components/object-attribute.md +96 -0
  111. package/data/components/object-identifier.md +227 -0
  112. package/data/components/object-marker.md +202 -0
  113. package/data/components/object-number.md +327 -0
  114. package/data/components/object-status.md +1538 -0
  115. package/data/components/off-screen.md +87 -0
  116. package/data/components/overflow.md +97 -0
  117. package/data/components/padding.md +122 -0
  118. package/data/components/paddings.md +130 -0
  119. package/data/components/page.md +300 -0
  120. package/data/components/pagination.md +672 -0
  121. package/data/components/panel-layouts.md +345 -0
  122. package/data/components/panel.md +514 -0
  123. package/data/components/patterns-label.md +74 -0
  124. package/data/components/popover-2.md +906 -0
  125. package/data/components/popover-ai.md +466 -0
  126. package/data/components/popover-btp.md +886 -0
  127. package/data/components/popover-deprecated.md +308 -0
  128. package/data/components/popover-message-popover.md +683 -0
  129. package/data/components/popover-notification.md +1511 -0
  130. package/data/components/popover-patterns.md +1100 -0
  131. package/data/components/popover-popover.md +1862 -0
  132. package/data/components/popover-quick-view.md +385 -0
  133. package/data/components/popover-timepicker.md +1836 -0
  134. package/data/components/popover-user-menu.md +1303 -0
  135. package/data/components/popover.md +1938 -0
  136. package/data/components/progress-indicator.md +351 -0
  137. package/data/components/prompt-input-ai.md +226 -0
  138. package/data/components/prompt-input.md +226 -0
  139. package/data/components/rating-indicator.md +1469 -0
  140. package/data/components/resizable-card-layout.md +951 -0
  141. package/data/components/scrollbar.md +86 -0
  142. package/data/components/search-field.md +287 -0
  143. package/data/components/section.md +250 -0
  144. package/data/components/segmented-button.md +324 -0
  145. package/data/components/shellbar.md +2183 -0
  146. package/data/components/side-nav.md +1562 -0
  147. package/data/components/skeleton.md +243 -0
  148. package/data/components/slider.md +395 -0
  149. package/data/components/splitter.md +353 -0
  150. package/data/components/table.md +2749 -0
  151. package/data/components/tabs.md +658 -0
  152. package/data/components/text-text.md +380 -0
  153. package/data/components/text.md +253 -0
  154. package/data/components/tile.md +1132 -0
  155. package/data/components/time.md +818 -0
  156. package/data/components/title.md +153 -0
  157. package/data/components/titles.md +83 -0
  158. package/data/components/token.md +311 -0
  159. package/data/components/tokenizer.md +398 -0
  160. package/data/components/tool-header.md +1352 -0
  161. package/data/components/tool-layout.md +199 -0
  162. package/data/components/toolbar-ai.md +174 -0
  163. package/data/components/toolbar-btp.md +526 -0
  164. package/data/components/toolbar-title-bar.md +473 -0
  165. package/data/components/toolbar.md +432 -0
  166. package/data/components/tree.md +1031 -0
  167. package/data/components/typography.md +435 -0
  168. package/data/components/variant-management.md +360 -0
  169. package/data/components/vertical-nav.md +589 -0
  170. package/data/components/wizard.md +1429 -0
  171. package/data/examples/Components/dialog/device-specifications.example.html +39 -30
  172. package/data/examples/Components/shellbar/optional-items.example.html +210 -157
  173. package/data/examples/Components/shellbar/overflow-toolbar.example.html +202 -177
  174. package/data/examples/Components/shellbar/responsive-paddings.example.html +217 -146
  175. package/data/examples/Components/shellbar/responsiveness.example.html +825 -613
  176. package/data/examples/Components/user-menu/default.example.html +241 -83
  177. package/data/schemas/badge.schema.json +1 -1
  178. package/data/schemas/button-split.schema.json +1 -1
  179. package/data/schemas/component-frontmatter.schema.json +123 -0
  180. package/data/schemas/component-markdown.schema.json +81 -0
  181. package/data/schemas/counter.schema.json +1 -1
  182. package/data/schemas/dynamic-page.schema.json +1 -1
  183. package/data/schemas/dynamic-side-content.schema.json +1 -1
  184. package/data/schemas/facet.schema.json +1 -1
  185. package/data/schemas/fieldset.schema.json +1 -1
  186. package/data/schemas/flexible-column-layout.schema.json +1 -1
  187. package/data/schemas/form-group.schema.json +3 -2
  188. package/data/schemas/form-header.schema.json +1 -1
  189. package/data/schemas/form-label.schema.json +1 -0
  190. package/data/schemas/form-message.schema.json +1 -1
  191. package/data/schemas/grid-list.schema.json +1 -1
  192. package/data/schemas/input-group.schema.json +1 -1
  193. package/data/schemas/layout-panel.schema.json +1 -1
  194. package/data/schemas/page.schema.json +1 -1
  195. package/data/schemas/quick-view.schema.json +2 -1
  196. package/data/schemas/section.schema.json +1 -1
  197. package/data/schemas/side-nav.schema.json +1 -1
  198. package/data/schemas/splitter.schema.json +1 -1
  199. package/data/schemas/tabs.schema.json +1 -1
  200. package/data/schemas/tile.schema.json +1 -1
  201. package/data/schemas/tool-layout.schema.json +1 -1
  202. package/data/schemas/user-menu.schema.json +10 -0
  203. package/data/schemas/wizard.schema.json +1 -1
  204. package/package.json +1 -1
  205. package/src/data/load-catalog.d.ts +2 -0
  206. package/src/data/load-catalog.js +5 -1
  207. package/src/data/load-catalog.js.map +1 -1
  208. package/src/data/load-markdown-docs.d.ts +44 -0
  209. package/src/data/load-markdown-docs.js +179 -0
  210. package/src/data/load-markdown-docs.js.map +1 -0
  211. package/src/data/markdown-cache.d.ts +60 -0
  212. package/src/data/markdown-cache.js +218 -0
  213. package/src/data/markdown-cache.js.map +1 -0
  214. package/src/server.js +72 -1
  215. 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/).