@iress-oss/ids-mcp-server 6.0.0-alpha.0 → 6.0.0-alpha.1-canary-20251204014525-3f0dce4

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 (108) hide show
  1. package/dist/searchHandlers.test.js +8 -2
  2. package/dist/toolHandler.test.js +9 -9
  3. package/dist/utils.test.js +6 -2
  4. package/package.json +32 -30
  5. package/generated/docs/components-alert-docs.md +0 -702
  6. package/generated/docs/components-autocomplete-docs.md +0 -1433
  7. package/generated/docs/components-autocomplete-recipes-docs.md +0 -104
  8. package/generated/docs/components-badge-docs.md +0 -531
  9. package/generated/docs/components-button-docs.md +0 -1442
  10. package/generated/docs/components-buttongroup-docs.md +0 -748
  11. package/generated/docs/components-card-docs.md +0 -944
  12. package/generated/docs/components-checkbox-docs.md +0 -694
  13. package/generated/docs/components-checkboxgroup-docs.md +0 -1087
  14. package/generated/docs/components-checkboxgroup-recipes-docs.md +0 -119
  15. package/generated/docs/components-col-docs.md +0 -881
  16. package/generated/docs/components-container-docs.md +0 -123
  17. package/generated/docs/components-divider-docs.md +0 -576
  18. package/generated/docs/components-expander-docs.md +0 -594
  19. package/generated/docs/components-field-docs.md +0 -2007
  20. package/generated/docs/components-filter-docs.md +0 -1322
  21. package/generated/docs/components-hide-docs.md +0 -702
  22. package/generated/docs/components-icon-docs.md +0 -816
  23. package/generated/docs/components-image-docs.md +0 -493
  24. package/generated/docs/components-inline-docs.md +0 -2003
  25. package/generated/docs/components-input-docs.md +0 -867
  26. package/generated/docs/components-input-recipes-docs.md +0 -140
  27. package/generated/docs/components-inputcurrency-docs.md +0 -689
  28. package/generated/docs/components-inputcurrency-recipes-docs.md +0 -115
  29. package/generated/docs/components-introduction-docs.md +0 -450
  30. package/generated/docs/components-label-docs.md +0 -562
  31. package/generated/docs/components-link-docs.md +0 -586
  32. package/generated/docs/components-menu-docs.md +0 -1146
  33. package/generated/docs/components-menu-menuitem-docs.md +0 -739
  34. package/generated/docs/components-modal-docs.md +0 -1346
  35. package/generated/docs/components-panel-docs.md +0 -600
  36. package/generated/docs/components-placeholder-docs.md +0 -446
  37. package/generated/docs/components-popover-docs.md +0 -1529
  38. package/generated/docs/components-popover-recipes-docs.md +0 -211
  39. package/generated/docs/components-progress-docs.md +0 -568
  40. package/generated/docs/components-provider-docs.md +0 -160
  41. package/generated/docs/components-radio-docs.md +0 -563
  42. package/generated/docs/components-radiogroup-docs.md +0 -1153
  43. package/generated/docs/components-readonly-docs.md +0 -535
  44. package/generated/docs/components-richselect-docs.md +0 -5836
  45. package/generated/docs/components-row-docs.md +0 -2354
  46. package/generated/docs/components-select-docs.md +0 -940
  47. package/generated/docs/components-skeleton-docs.md +0 -597
  48. package/generated/docs/components-skeleton-recipes-docs.md +0 -76
  49. package/generated/docs/components-skiplink-docs.md +0 -587
  50. package/generated/docs/components-slideout-docs.md +0 -1036
  51. package/generated/docs/components-slider-docs.md +0 -828
  52. package/generated/docs/components-spinner-docs.md +0 -450
  53. package/generated/docs/components-stack-docs.md +0 -923
  54. package/generated/docs/components-table-ag-grid-docs.md +0 -1444
  55. package/generated/docs/components-table-docs.md +0 -2327
  56. package/generated/docs/components-tabset-docs.md +0 -768
  57. package/generated/docs/components-tabset-tab-docs.md +0 -550
  58. package/generated/docs/components-tag-docs.md +0 -548
  59. package/generated/docs/components-text-docs.md +0 -585
  60. package/generated/docs/components-toaster-docs.md +0 -755
  61. package/generated/docs/components-toggle-docs.md +0 -614
  62. package/generated/docs/components-tooltip-docs.md +0 -747
  63. package/generated/docs/components-validationmessage-docs.md +0 -1161
  64. package/generated/docs/contact-us-docs.md +0 -27
  65. package/generated/docs/extensions-editor-docs.md +0 -1181
  66. package/generated/docs/extensions-editor-recipes-docs.md +0 -89
  67. package/generated/docs/foundations-accessibility-docs.md +0 -40
  68. package/generated/docs/foundations-consistency-docs.md +0 -52
  69. package/generated/docs/foundations-content-docs.md +0 -23
  70. package/generated/docs/foundations-grid-docs.md +0 -74
  71. package/generated/docs/foundations-introduction-docs.md +0 -19
  72. package/generated/docs/foundations-principles-docs.md +0 -70
  73. package/generated/docs/foundations-responsive-breakpoints-docs.md +0 -193
  74. package/generated/docs/foundations-tokens-colour-docs.md +0 -564
  75. package/generated/docs/foundations-tokens-elevation-docs.md +0 -155
  76. package/generated/docs/foundations-tokens-introduction-docs.md +0 -190
  77. package/generated/docs/foundations-tokens-radius-docs.md +0 -71
  78. package/generated/docs/foundations-tokens-spacing-docs.md +0 -89
  79. package/generated/docs/foundations-tokens-typography-docs.md +0 -322
  80. package/generated/docs/foundations-user-experience-docs.md +0 -63
  81. package/generated/docs/foundations-visual-design-docs.md +0 -46
  82. package/generated/docs/foundations-z-index-stacking-docs.md +0 -31
  83. package/generated/docs/frequently-asked-questions-docs.md +0 -53
  84. package/generated/docs/get-started-develop-docs.md +0 -209
  85. package/generated/docs/get-started-using-storybook-docs.md +0 -68
  86. package/generated/docs/guidelines.md +0 -2054
  87. package/generated/docs/introduction-docs.md +0 -87
  88. package/generated/docs/news-version-6-docs.md +0 -93
  89. package/generated/docs/patterns-form-docs.md +0 -3902
  90. package/generated/docs/patterns-form-recipes-docs.md +0 -1370
  91. package/generated/docs/patterns-introduction-docs.md +0 -24
  92. package/generated/docs/patterns-loading-docs.md +0 -4043
  93. package/generated/docs/resources-code-katas-docs.md +0 -29
  94. package/generated/docs/resources-introduction-docs.md +0 -38
  95. package/generated/docs/resources-mcp-server-docs.md +0 -27
  96. package/generated/docs/resources-migration-guides-from-v4-to-v5-docs.md +0 -437
  97. package/generated/docs/styling-props-colour-docs.md +0 -172
  98. package/generated/docs/styling-props-elevation-docs.md +0 -88
  99. package/generated/docs/styling-props-radius-docs.md +0 -86
  100. package/generated/docs/styling-props-reference-docs.md +0 -160
  101. package/generated/docs/styling-props-screen-readers-docs.md +0 -71
  102. package/generated/docs/styling-props-sizing-docs.md +0 -627
  103. package/generated/docs/styling-props-spacing-docs.md +0 -2282
  104. package/generated/docs/styling-props-typography-docs.md +0 -121
  105. package/generated/docs/themes-available-themes-docs.md +0 -66
  106. package/generated/docs/themes-introduction-docs.md +0 -121
  107. package/generated/docs/versions-docs.md +0 -17
  108. /package/{LICENSE.txt → LICENSE} +0 -0
@@ -1,1146 +0,0 @@
1
- [](#menu)Menu
2
- =============
3
-
4
- Overview
5
- --------
6
-
7
- A menu can display grouped action buttons, navigation items or headings.
8
-
9
- * * *
10
-
11
- Updated
12
-
13
- **Recently updated**
14
-
15
- This component has been recently updated with new props. The props have been marked as beta. Please tell us if there are any issues.
16
-
17
- Menu heading
18
- ------------
19
-
20
- Menu item (button)
21
-
22
- * * *
23
-
24
- [Menu item (link)](https://iress.com)Menu item (selected)
25
-
26
- Hide code
27
-
28
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
29
-
30
- <IressMenu defaultSelected\="5"\>
31
- <IressMenuHeading\>
32
- Menu heading </IressMenuHeading\>
33
- <IressMenuItem value\="2"\>
34
- Menu item (button) </IressMenuItem\>
35
- <IressMenuDivider />
36
- <IressMenuItem href\="https://iress.com"\>
37
- Menu item (link) </IressMenuItem\>
38
- <IressMenuItem
39
- selected
40
- value\={5}
41
- \>
42
- Menu item (selected) </IressMenuItem\>
43
- </IressMenu\>
44
-
45
- Copy
46
-
47
- [](#props)Props
48
- ---------------
49
-
50
- Below are the custom props you can access when using `IressMenu`. In addition to these, you have access to the original props of the underlying [`div` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div).
51
-
52
- | Name | Description | Default | Control |
53
- | --- | --- | --- | --- |
54
- | bg |
55
- **`bg`** sets the background color of an element using the `background-color` css property using the color tokens in the design system.
56
-
57
- We recommend using the following token values for best background contrast:
58
-
59
- * `colour.primary.fill` for primary backgrounds that need to stand out
60
- * `colour.primary.surface` for primary backgrounds that need to be less prominent
61
- * `colour.neutral.10` for the base background color, normally white in light mode or shade of grey in dark mode
62
- * `colour.neutral.20` for a slightly darker background color, used in neutral state components
63
- * `colour.system.danger.fill` for error backgrounds that need to stand out
64
- * `colour.system.danger.surface` for error backgrounds that need to be less prominent
65
- * `colour.system.success.fill` for success backgrounds that need to stand out
66
- * `colour.system.success.surface` for success backgrounds that need to be less prominent
67
- * `colour.system.warning.fill` for warning backgrounds that need to stand out
68
- * `colour.system.warning.surface` for warning backgrounds that need to be less prominent
69
- * `colour.system.info.fill` for info backgrounds that need to stand out
70
- * `colour.system.info.surface` for info backgrounds that need to be less prominent
71
-
72
- ResponsiveProp<ColorToken> | undefined
73
-
74
- | \- | Set object |
75
- | borderRadius |
76
-
77
- The **`border-radius`** CSS property rounds the corners of an element's outer border edge using the radius tokens in the design system.
78
-
79
- | Chrome | Firefox | Safari | Edge | IE |
80
- | --- | --- | --- | --- | --- |
81
- | **4** | **4** | **5** | **12** | **9** |
82
- | 1 _\-x-_ | | 3 _\-x-_ | | |
83
-
84
- ResponsiveProp<RadiusToken> | undefined
85
-
86
- | \- | Set object |
87
- | changeOnBlur |
88
-
89
- If set to true, change event will be fired with the correctly selected value.
90
-
91
- booleanundefined
92
-
93
-
94
-
95
- | \- | Set object |
96
- | children |
97
-
98
- Content of the menu, usually multiple `IressMenuItem`, `IressMenuHeading`, `IressMenuText` or `IressMenuDivider`.
99
-
100
- ReactNode
101
-
102
-
103
-
104
- | \- | Choose option...nonebasiccomplexnavigationheadingsdividersslotsextraInformationselectable |
105
- | color |
106
-
107
- The **`color`** CSS property sets the foreground color value of an element's text and text decorations using the colour tokens from the design system. It also sets the `currentcolor` value. `currentcolor` may be used as an indirect value on _other_ properties and is the default for other color properties, such as `border-color`.
108
-
109
- We recommend using the following token values for best color contrast:
110
-
111
- * `colour.primary.onFill` used on top of `colour.primary.fill` for primary text that needs to stand out
112
- * `colour.primary.text` used on top of `colour.primary.surface` or `colour.neutral.10` for primary text that needs to be less prominent
113
- * `colour.neutral.70` used on top of `colour.neutral.10` or `colour.neutral.20` for muted text
114
- * `colour.neutral.80` used on top of `colour.neutral.10` or `colour.neutral.20` for standard text
115
- * `colour.system.danger.onFill` used on top of `colour.system.danger.fill` for error text that needs to stand out
116
- * `colour.system.danger.text` used on top of `colour.system.danger.surface` for error text that needs to be less prominent
117
- * `colour.system.success.onFill` used on top of `colour.system.success.fill` for success text that needs to stand out
118
- * `colour.system.success.text` used on top of `colour.system.success.surface` for success text that needs to be less prominent
119
- * `colour.system.warning.onFill` used on top of `colour.system.warning.fill` for warning text that needs to stand out
120
- * `colour.system.warning.text` used on top of `colour.system.warning.surface` for warning text that needs to be less prominent
121
- * `colour.system.info.onFill` used on top of `colour.system.info.fill` for informative text that needs to stand out
122
- * `colour.system.info.text` used on top of `colour.system.info.surface` for informative text that needs to be less prominent
123
-
124
- ResponsiveProp<ColorToken> | undefined
125
-
126
- | \- | Set object |
127
- | defaultSelected |
128
-
129
- Initially selected values of menu when `role` is listbox. Used for uncontrolled menus.
130
-
131
- ControlledValue<T, TMultiple> | undefined
132
-
133
- | \- |
134
-
135
- "5"
136
-
137
- |
138
- | fluid |
139
-
140
- If set to true, menu will fill the width of its container.
141
-
142
- booleanundefined
143
-
144
-
145
-
146
- | \- | Set object |
147
- | focusable |
148
-
149
- The `focusable` prop is used to apply the focus elevation when focused. It can be set to `true` to apply focus styles on focus, or `'within'` to apply focus styles when the element or any of its children are focused.
150
-
151
- "true""within"undefined
152
-
153
-
154
-
155
- | \- | Set object |
156
- | hide |
157
-
158
- Set **`hide`** to hide an element completely using `display: none`. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
159
-
160
- Hide on all breakpoints: `hide: true` Hide on specific breakpoints: `hide: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
161
-
162
- Notes:
163
-
164
- * If you need to hide an element but allow it to be visible to screen readers, use the `srOnly` prop instead.
165
- * Consider if you can conditionally render the element instead of hiding it.
166
-
167
- ResponsiveProp<boolean> | undefined
168
-
169
- | \- | Set object |
170
- | id |
171
-
172
- Unique ID of the menu. If not provided, will be automatically generated. Used to add aria attributes for accessibility.
173
-
174
- stringundefined
175
-
176
-
177
-
178
- | \- | Set object |
179
- | layerStyle |
180
-
181
- Elevate a layer by using a **`layerStyle`**. These are connected to the elevation tokens in the design system. They can be combined to create hierarchy and structure.
182
-
183
- * `elevation.raised`: Raised elevations sit slightly higher than other content. They are reserved for cards that can be moved, such as Jira issue cards and Trello cards. In special circumstances, they can be used for cards as a way to provide additional heirarchy or emphasis.
184
- * `elevation.floating`: Floating is the highest elevation available. It is reserved for a UI that sits over another UI, such as modals, dialogs, dropdown menus, floating toolbars, and floating single-action buttons.
185
- * `elevation.overflow`: Overflow is a shadow indicating content has scrolled outside a view. It can be used for vertical or horizontal scroll. An example of overflow shadows is the horizontal scroll in tables on a Confluence page.
186
-
187
- ResponsiveProp<"elevation.raised" | "elevation.floating" | "elevation.overflow" | "elevation.focus" | "elevation.focusCompact"> | undefined
188
-
189
- | \- | Set object |
190
- | layout |
191
-
192
- Sets whether the layout is vertical (stack) or horizontal (inline/inline-equal-width).
193
-
194
- "inline""stack""inline-equal-width"undefined
195
-
196
-
197
-
198
- |
199
-
200
- stack
201
-
202
- | Set object |
203
- | m |
204
-
205
- The **`m`** property is short for `margin`, and sets the margin area on all four sides of an element.
206
-
207
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
208
-
209
- | Chrome | Firefox | Safari | Edge | IE |
210
- | --- | --- | --- | --- | --- |
211
- | **1** | **1** | **1** | **12** | **3** |
212
-
213
- ResponsiveProp<SpacingToken | "auto"> | undefined
214
-
215
- | \- | Set object |
216
- | maxWidth |
217
-
218
- The **`max-width`** CSS property sets the maximum width of an element. It prevents the used value of the `width` property from becoming larger than the value specified by `max-width`.
219
-
220
- | Chrome | Firefox | Safari | Edge | IE |
221
- | --- | --- | --- | --- | --- |
222
- | **1** | **1** | **1** | **12** | **7** |
223
-
224
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
225
-
226
- | \- | Set object |
227
- | mb |
228
-
229
- The **`mb`** property is short for `margin-bottom` and sets the margin area on the bottom side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
230
-
231
- It uses the spacing tokens in the design system.
232
-
233
- | Chrome | Firefox | Safari | Edge | IE |
234
- | --- | --- | --- | --- | --- |
235
- | **1** | **1** | **1** | **12** | **3** |
236
-
237
- ResponsiveProp<SpacingToken | "auto"> | undefined
238
-
239
- | \- | Set object |
240
- | ml |
241
-
242
- The **`ml`** property is short for `margin-left` and sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
243
-
244
- It uses the spacing tokens in the design system.
245
-
246
- | Chrome | Firefox | Safari | Edge | IE |
247
- | --- | --- | --- | --- | --- |
248
- | **1** | **1** | **1** | **12** | **3** |
249
-
250
- ResponsiveProp<SpacingToken | "auto"> | undefined
251
-
252
- | \- | Set object |
253
- | mr |
254
-
255
- The **`mr`** property is short for `margin-right` and sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
256
-
257
- It uses the spacing tokens in the design system.
258
-
259
- | Chrome | Firefox | Safari | Edge | IE |
260
- | --- | --- | --- | --- | --- |
261
- | **1** | **1** | **1** | **12** | **3** |
262
-
263
- ResponsiveProp<SpacingToken | "auto"> | undefined
264
-
265
- | \- | Set object |
266
- | mt |
267
-
268
- The **`mt`** property is short for `margin-top` and sets the margin area on the top side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.
269
-
270
- It uses the spacing tokens in the design system.
271
-
272
- | Chrome | Firefox | Safari | Edge | IE |
273
- | --- | --- | --- | --- | --- |
274
- | **1** | **1** | **1** | **12** | **3** |
275
-
276
- ResponsiveProp<SpacingToken | "auto"> | undefined
277
-
278
- | \- | Set object |
279
- | multiSelect |
280
-
281
- If set to true, menu items will contain checkboxes.
282
-
283
- booleanundefined
284
-
285
-
286
-
287
- | \- | Set object |
288
- | mx |
289
-
290
- The **`mx`** property is short for `margin-inline`. It is a shorthand property that defines both the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
291
-
292
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
293
-
294
- | Chrome | Firefox | Safari | Edge | IE |
295
- | --- | --- | --- | --- | --- |
296
- | **1** | **1** | **1** | **12** | **3** |
297
-
298
- ResponsiveProp<SpacingToken | "auto"> | undefined
299
-
300
- | \- | Set object |
301
- | my |
302
-
303
- The **`my`** property is short for `margin-block`. It defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.
304
-
305
- It uses the spacing tokens in the design system. You can also use the negative values to overlap elements or ignore padding based on the design requirements.
306
-
307
- | Chrome | Firefox | Safari | Edge | IE |
308
- | --- | --- | --- | --- | --- |
309
- | **1** | **1** | **1** | **12** | **3** |
310
-
311
- ResponsiveProp<SpacingToken | "auto"> | undefined
312
-
313
- | \- | Set object |
314
- | noGutter |
315
-
316
- The **`noGutter`** property is used to remove the bottom margin from the last child of a component. This is useful when you want to avoid extra spacing at the end of a layout.
317
-
318
- booleanundefined
319
-
320
-
321
-
322
- | \- | Set object |
323
- | noWrap |
324
-
325
- If set to true, menu items will not wrap onto a separate line when space is exceeded.
326
-
327
- booleanundefined
328
-
329
-
330
-
331
- | \- | Set object |
332
- | onChange |
333
-
334
- Emitted when the menu value changes
335
-
336
- ((value?: ControlledValue<T, TMultiple> | null | undefined) => void) | undefined
337
-
338
- | \- | \- |
339
- | p |
340
-
341
- The **`p`** property is short for `padding`, and sets the padding area on all four sides of an element at once.
342
-
343
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
344
-
345
- | Chrome | Firefox | Safari | Edge | IE |
346
- | --- | --- | --- | --- | --- |
347
- | **1** | **1** | **1** | **12** | **3** |
348
-
349
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
350
-
351
- | \- | Set object |
352
- | pb |
353
-
354
- The **`pb`** property is short for `padding-bottom` and sets the padding area on the bottom side of an element.
355
-
356
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
357
-
358
- | Chrome | Firefox | Safari | Edge | IE |
359
- | --- | --- | --- | --- | --- |
360
- | **1** | **1** | **1** | **12** | **3** |
361
-
362
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
363
-
364
- | \- | Set object |
365
- | pl |
366
-
367
- The **`pl`** property is short for `padding-left` and sets the padding area on the left side of an element.
368
-
369
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
370
-
371
- | Chrome | Firefox | Safari | Edge | IE |
372
- | --- | --- | --- | --- | --- |
373
- | **1** | **1** | **1** | **12** | **3** |
374
-
375
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
376
-
377
- | \- | Set object |
378
- | pr |
379
-
380
- The **`pr`** property is short for `padding-right` and sets the padding area on the right side of an element.
381
-
382
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
383
-
384
- | Chrome | Firefox | Safari | Edge | IE |
385
- | --- | --- | --- | --- | --- |
386
- | **1** | **1** | **1** | **12** | **3** |
387
-
388
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
389
-
390
- | \- | Set object |
391
- | pt |
392
-
393
- The **`pt`** property is short for `padding-top` and sets the padding area on the top side of an element.
394
-
395
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
396
-
397
- | Chrome | Firefox | Safari | Edge | IE |
398
- | --- | --- | --- | --- | --- |
399
- | **1** | **1** | **1** | **12** | **3** |
400
-
401
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
402
-
403
- | \- | Set object |
404
- | px |
405
-
406
- The **`px`** property is short for `padding-inline`. It is a shorthand property that defines both the logical inline start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
407
-
408
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
409
-
410
- | Chrome | Firefox | Safari | Edge | IE |
411
- | --- | --- | --- | --- | --- |
412
- | **1** | **1** | **1** | **12** | **3** |
413
-
414
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
415
-
416
- | \- | Set object |
417
- | py |
418
-
419
- The **`py`** property is short for `padding-block`. It defines the logical block start and end paddings of an element, which maps to physical paddings depending on the element's writing mode, directionality, and text orientation.
420
-
421
- It uses the spacing tokens in the design system. Padding cannot use negative values, if you need to overlap elements or ignore padding, use the margin property instead.
422
-
423
- | Chrome | Firefox | Safari | Edge | IE |
424
- | --- | --- | --- | --- | --- |
425
- | **1** | **1** | **1** | **12** | **3** |
426
-
427
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
428
-
429
- | \- | Set object |
430
- | role |
431
-
432
- Type of menu, corresponding to [aria-roles](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles). Will be set automatically when used inside popover or when the `multiSelect` prop is set to true.
433
-
434
- "list""menu""listbox"undefined
435
-
436
-
437
-
438
- |
439
-
440
- list
441
-
442
- | Set object |
443
- | rowGap |
444
-
445
- The **`row-gap`** CSS property sets the size of the gap (gutter) between an element's rows.
446
-
447
- Note: It only has an effect when used as a direct child of a layout component, such as IressRow, IressStack or IressInline.
448
-
449
- | Chrome | Firefox | Safari | Edge | IE |
450
- | --- | --- | --- | --- | --- |
451
- | **47** | **52** | **10.1** | **16** | No |
452
-
453
- ResponsiveProp<"xs" | "sm" | "md" | "lg" | "xl" | "none" | "spacing.000" | "spacing.050" | "spacing.100" | "spacing.150" | "spacing.200" | "spacing.250" | "spacing.300" | "spacing.350" | ... 9 more ... | "slider.tick"> | undefined
454
-
455
- | \- | Set object |
456
- | selected |
457
-
458
- Selected values of menu when `role` is listbox. Used for controlled menus.
459
-
460
- ControlledValue<T, TMultiple> | undefined
461
-
462
- | \- | Set object |
463
- | srOnly |
464
-
465
- Set **`srOnly`** to hide an element visually but still make it accessible to screen readers. It can also be set to an object of breakpoints to hide the element at specific breakpoints.
466
-
467
- Hide on all breakpoints: `srOnly: true` Hide on specific breakpoints: `srOnly: { xs: false, sm: true, md: false, lg: true, xl: false, xxl: true }`
468
-
469
- ResponsiveProp<boolean> | undefined
470
-
471
- | \- | Set object |
472
- | stretch |
473
-
474
- The **`stretch`** property is used to stretch an element to fill the available space in its parent container. It sets the `height` property to `100%` and `alignSelf` to `stretch`, allowing the element to expand and contract based on the size of its parent.
475
-
476
- booleanundefined
477
-
478
-
479
-
480
- | \- | Set object |
481
- | textAlign |
482
-
483
- The **`text-align`** CSS property sets the horizontal alignment of the inline-level content inside a block element or table-cell box.
484
-
485
- | Chrome | Firefox | Safari | Edge | IE |
486
- | --- | --- | --- | --- | --- |
487
- | **1** | **1** | **1** | **12** | **3** |
488
-
489
- ResponsiveProp<"center" | "left" | "right" | "inherit" | "justify"> | undefined
490
-
491
- | \- | Set object |
492
- | textStyle |
493
-
494
- Select the typography to be used using the **`textStyle`** prop. These are connected to the typography tokens in the design system.'
495
-
496
- * `typography.body.sm` - Use for small components such as badges and disclaimers, as well as compact variations of tables and lists.
497
- * `typography.body.md` - The most commonly used body text size, used for most text content in the product and the default state of all components in the design system.
498
- * `typography.body.lg` - Use for tag lines, subtitles, and other large text content in the product.
499
- * `typography.heading.1` - Use for the main page title to establish a clear hierarchy. There is typically only one H1 per screen, emphasising the primary purpose or context of the page.
500
- * `typography.heading.2` - Use for primary section headings within a page to organise content and guide the user through key areas. Also suitable for large components—such as modals—where space allows and where it pairs well with body.md or body.lg.
501
- * `typography.heading.3` - Use for sub-sections under H2s to further structure content and maintain a clear visual hierarchy. Ideal for breaking down complex sections into manageable parts.
502
- * `typography.heading.4` - Use for supporting headings within content blocks or small components where space is limited—such as table headers, cards, or side panels. Provides structure without overwhelming the layout.
503
- * `typography.heading.5` - Use for minor labels or titles in compact UI elements, such as cards, sidebars, or inline labels. Best used to emphasise supplementary information without drawing too much attention. Works well with body.sm and is ideal for subtle content like fine print. Use sparingly to preserve typographic hierarchy.
504
- * `typography.code` - Used to display code snippets in the product, such as in the API documentation.
505
-
506
- ResponsiveProp<"typography.heading.1" | "typography.heading.2" | "typography.heading.3" | "typography.heading.4" | "typography.heading.5" | "typography.body.sm" | "typography.body.sm.regular" | ... 10 more ... | "typography.code"> | undefined
507
-
508
- | \- | Set object |
509
- | width |
510
-
511
- The **`width`** CSS property sets an element's width. By default, it sets the width of the content area, but if `box-sizing` is set to `border-box`, it sets the width of the border area.
512
-
513
- This prop only allows widths available throughout the component library. To use a custom width, you need to use the `style` prop, or add a custom class to the element and use CSS.
514
-
515
- | Chrome | Firefox | Safari | Edge | IE |
516
- | --- | --- | --- | --- | --- |
517
- | **1** | **1** | **1** | **12** | **4** |
518
-
519
- ResponsiveProp<"auto" | SizeToken | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | ... 8 more ... | "11/12"> | undefined
520
-
521
- | \- | Set object |
522
-
523
- [](#usage)Usage
524
- ---------------
525
-
526
- ### [](#basic)Basic
527
-
528
- `IressMenuDivider`, `IressMenuHeading`, `IressMenuItem` and `IressMenuText` should be supplied as `children` of the menu.
529
-
530
- * `IressMenuDivider` can be used to display a divider, it supports all of the props of `hr`. It will adjust according to the menu's role and layout.
531
- * `IressMenuHeading` is used to display headings. It supports all of the props of `IressText` and will adjust according to the menu's role and layout.
532
- * `IressMenuItem` is used to display an interactive item. If provided a `href` prop will render the item as a link, otherwise it will render as a button.
533
- * `IressMenuText` can be used to display other non-interactive text. It supports all of the props of `IressText`.
534
-
535
- Menu heading
536
- ------------
537
-
538
- Menu item (button)
539
-
540
- * * *
541
-
542
- [Menu item (link)](https://iress.com)Menu item (selected)
543
-
544
- Hide code
545
-
546
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
547
-
548
- <IressMenu defaultSelected\="5"\>
549
- <IressMenuHeading\>
550
- Menu heading </IressMenuHeading\>
551
- <IressMenuItem value\="2"\>
552
- Menu item (button) </IressMenuItem\>
553
- <IressMenuDivider />
554
- <IressMenuItem href\="https://iress.com"\>
555
- Menu item (link) </IressMenuItem\>
556
- <IressMenuItem
557
- selected
558
- value\={5}
559
- \>
560
- Menu item (selected) </IressMenuItem\>
561
- </IressMenu\>
562
-
563
- Copy
564
-
565
- ### [](#complex)Complex
566
-
567
- `IressMenuItem`, `IressMenuHeading` and `IressMenuText` support `prepend`, `divider` and `append` slots, to allow you to create complex menu items.
568
-
569
- Note: Instead of using the `divider` prop on `IressMenuItem`, you can use `IressMenuDivider` to separate items. This gives you more control over where the divider sits.
570
-
571
- Heading with prepend
572
- --------------------
573
-
574
- Button with append and prepend
575
-
576
- * * *
577
-
578
- ### Heading with append and prepend
579
-
580
- [Link with append](https://iress.com)
581
-
582
- * * *
583
-
584
- Button with append[A link with a very long name that wraps based on the menu's `noWrap` prop](https://iress.com)
585
-
586
- Hide code
587
-
588
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
589
-
590
- <IressMenu maxWidth\="input.25perc"\>
591
- <IressMenuHeading prepend\={<IressIcon fixedWidth name\="smile"/>}\>
592
- Heading with prepend </IressMenuHeading\>
593
- <IressMenuItem
594
- append\={<IressIcon name\="chevron-right" />}
595
- divider
596
- prepend\={<IressIcon fixedWidth name\="flag"/>}
597
- selected
598
- value\="3"
599
- \>
600
- Button with append and prepend </IressMenuItem\>
601
- <IressMenuHeading
602
- append\={<IressIcon fixedWidth name\="smile"/>}
603
- element\="h3"
604
- prepend\={<IressIcon fixedWidth name\="smile"/>}
605
- \>
606
- Heading with append and prepend </IressMenuHeading\>
607
- <IressMenuItem
608
- append\={<IressIcon name\="chevron-right" />}
609
- href\="https://iress.com"
610
- value\="4"
611
- \>
612
- Link with append </IressMenuItem\>
613
- <IressMenuDivider />
614
- <IressMenuItem
615
- append\={<IressIcon name\="chevron-right" />}
616
- value\="6"
617
- \>
618
- Button with append </IressMenuItem\>
619
- <IressMenuItem
620
- append\={<IressIcon name\="chevron-right" />}
621
- href\="https://iress.com"
622
- value\="7"
623
- \>
624
- A link with a very long name that wraps based on the menu's{' '} <code\>
625
- noWrap </code\>
626
- {' '}prop
627
- </IressMenuItem\>
628
- </IressMenu\>
629
-
630
- Copy
631
-
632
- [](#examples)Examples
633
- ---------------------
634
-
635
- ### [](#secondary-navigation)Secondary navigation
636
-
637
- When the `href` prop is set on `IressMenuItem`, it will render as a link.
638
-
639
- When rendering a set of links for navigation purposes (as a secondary nav in this example) make sure you wrap the `IressMenu` in a nav element and set the menu's `role` prop to list.
640
-
641
- [Financial advice](https://www.iress.com/software/financial-advice/)[Trading and market data](https://www.iress.com/software/trading-and-market-data/)[Investment management](https://www.iress.com/software/investment-management/)[Mortgages](https://www.iress.com/software/mortgages/)[Life and pensions](https://www.iress.com/software/life-and-pensions/)
642
-
643
- Hide code
644
-
645
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
646
-
647
- <nav aria-label\="Secondary"\>
648
- <IressMenu\>
649
- <IressMenuItem href\="https://www.iress.com/software/financial-advice/"\>
650
- Financial advice </IressMenuItem\>
651
- <IressMenuItem
652
- href\="https://www.iress.com/software/trading-and-market-data/"
653
- selected
654
- \>
655
- Trading and market data </IressMenuItem\>
656
- <IressMenuItem href\="https://www.iress.com/software/investment-management/"\>
657
- Investment management </IressMenuItem\>
658
- <IressMenuItem href\="https://www.iress.com/software/mortgages/"\>
659
- Mortgages </IressMenuItem\>
660
- <IressMenuItem href\="https://www.iress.com/software/life-and-pensions/"\>
661
- Life and pensions </IressMenuItem\>
662
- </IressMenu\>
663
- </nav\>
664
-
665
- Copy
666
-
667
- ### [](#headings)Headings
668
-
669
- Using the `IressMenuHeading` component, you can create headings within the menu. Simply set the `element` or `textStyle` prop to your desired heading level.
670
-
671
- #### Menu heading (h4)
672
-
673
- Menu item 1
674
-
675
- ##### Menu heading (h5)
676
-
677
- Menu item 2
678
-
679
- Hide code
680
-
681
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
682
-
683
- <IressMenu\>
684
- <IressMenuHeading element\="h4"\>
685
- Menu heading (h4) </IressMenuHeading\>
686
- <IressMenuItem\>
687
- Menu item 1 </IressMenuItem\>
688
- <IressMenuHeading element\="h5"\>
689
- Menu heading (h5) </IressMenuHeading\>
690
- <IressMenuItem\>
691
- Menu item 2 </IressMenuItem\>
692
- </IressMenu\>
693
-
694
- Copy
695
-
696
- ### [](#dividers)Dividers
697
-
698
- When the `divider` prop is set, the `IressMenuItem`, `IressMenuHeading` and `IressMenuText` will render a bottom border.
699
-
700
- In situations where a bottom border will not work, you can also use `IressMenuDivider` inside the menu to separate items.
701
-
702
- #### Menu heading (h4)
703
-
704
- * * *
705
-
706
- Menu item 1Menu item 2
707
-
708
- * * *
709
-
710
- ##### Menu heading (h5)
711
-
712
- Menu item 3Menu item 4
713
-
714
- * * *
715
-
716
- Menu item 5
717
-
718
- Hide code
719
-
720
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
721
-
722
- <IressMenu\>
723
- <IressMenuHeading
724
- divider
725
- element\="h4"
726
- \>
727
- Menu heading (h4) </IressMenuHeading\>
728
- <IressMenuItem\>
729
- Menu item 1 </IressMenuItem\>
730
- <IressMenuItem divider\>
731
- Menu item 2 </IressMenuItem\>
732
- <IressMenuHeading element\="h5"\>
733
- Menu heading (h5) </IressMenuHeading\>
734
- <IressMenuItem selected\>
735
- Menu item 3 </IressMenuItem\>
736
- <IressMenuItem\>
737
- Menu item 4 </IressMenuItem\>
738
- <IressMenuDivider />
739
- <IressMenuItem\>
740
- Menu item 5 </IressMenuItem\>
741
- </IressMenu\>
742
-
743
- Copy
744
-
745
- ### [](#fluid-menus)Fluid menus
746
-
747
- By setting the `fluid` prop on the menu component, the menu will stretch to the width of its containing element.
748
-
749
- Menu heading
750
- ------------
751
-
752
- Menu item (button)
753
-
754
- * * *
755
-
756
- [Menu item (link)](https://iress.com)Menu item (selected)
757
-
758
- Hide code
759
-
760
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
761
-
762
- <IressMenu
763
- defaultSelected\="5"
764
- fluid
765
- \>
766
- <IressMenuHeading\>
767
- Menu heading </IressMenuHeading\>
768
- <IressMenuItem value\="2"\>
769
- Menu item (button) </IressMenuItem\>
770
- <IressMenuDivider />
771
- <IressMenuItem href\="https://iress.com"\>
772
- Menu item (link) </IressMenuItem\>
773
- <IressMenuItem
774
- selected
775
- value\={5}
776
- \>
777
- Menu item (selected) </IressMenuItem\>
778
- </IressMenu\>
779
-
780
- Copy
781
-
782
- ### [](#layout)Layout
783
-
784
- The `layout` prop comes with three options:
785
-
786
- * `stack` (default) - menu items will stack on top of each other
787
- * `inline` - menu items will be inline
788
- * `inline-equal-width` - menu items will be inline and have equal width
789
-
790
- ### Stack (default)
791
-
792
- Menu heading
793
- ------------
794
-
795
- Menu item (button)
796
-
797
- * * *
798
-
799
- [Menu item (link)](https://iress.com)Menu item (selected)
800
-
801
- ### Inline
802
-
803
- Menu heading
804
- ------------
805
-
806
- Menu item (button)
807
-
808
- * * *
809
-
810
- [Menu item (link)](https://iress.com)Menu item (selected)
811
-
812
- ### Inline Equal Width
813
-
814
- Menu heading
815
- ------------
816
-
817
- Menu item (button)
818
-
819
- * * *
820
-
821
- [Menu item (link)](https://iress.com)Menu item (selected)
822
-
823
- Hide code
824
-
825
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
826
-
827
- <IressStack gap\="lg"\>
828
- <IressText\>
829
- <h3\>
830
- Stack (default) </h3\>
831
- <IressMenu
832
- defaultSelected\="5"
833
- layout\="stack"
834
- \>
835
- <IressMenuHeading\>
836
- Menu heading </IressMenuHeading\>
837
- <IressMenuItem value\="2"\>
838
- Menu item (button) </IressMenuItem\>
839
- <IressMenuDivider />
840
- <IressMenuItem href\="https://iress.com"\>
841
- Menu item (link) </IressMenuItem\>
842
- <IressMenuItem
843
- selected
844
- value\={5}
845
- \>
846
- Menu item (selected) </IressMenuItem\>
847
- </IressMenu\>
848
- </IressText\>
849
- <IressText\>
850
- <h3\>
851
- Inline </h3\>
852
- <IressMenu
853
- defaultSelected\="5"
854
- layout\="inline"
855
- \>
856
- <IressMenuHeading\>
857
- Menu heading </IressMenuHeading\>
858
- <IressMenuItem value\="2"\>
859
- Menu item (button) </IressMenuItem\>
860
- <IressMenuDivider />
861
- <IressMenuItem href\="https://iress.com"\>
862
- Menu item (link) </IressMenuItem\>
863
- <IressMenuItem
864
- selected
865
- value\={5}
866
- \>
867
- Menu item (selected) </IressMenuItem\>
868
- </IressMenu\>
869
- </IressText\>
870
- <IressText\>
871
- <h3\>
872
- Inline Equal Width </h3\>
873
- <IressMenu
874
- defaultSelected\="5"
875
- layout\="inline-equal-width"
876
- \>
877
- <IressMenuHeading\>
878
- Menu heading </IressMenuHeading\>
879
- <IressMenuItem value\="2"\>
880
- Menu item (button) </IressMenuItem\>
881
- <IressMenuDivider />
882
- <IressMenuItem href\="https://iress.com"\>
883
- Menu item (link) </IressMenuItem\>
884
- <IressMenuItem
885
- selected
886
- value\={5}
887
- \>
888
- Menu item (selected) </IressMenuItem\>
889
- </IressMenu\>
890
- </IressText\>
891
- </IressStack\>
892
-
893
- Copy
894
-
895
- ### [](#text-wrapping)Text wrapping
896
-
897
- By default, menu item text will wrap on to the next line when it exceeds the menu width. Using the `noWrap` prop, you set the menu item text to not wrap.
898
-
899
- Menu item with some text that wraps
900
-
901
- Non wrapping menu item with some text
902
-
903
- Hide code
904
-
905
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
906
-
907
- <IressInline\>
908
- <IressMenu
909
- defaultSelected\="5"
910
- maxWidth\="input.12"
911
- \>
912
- <IressMenuItem\>
913
- Menu item with some text that wraps </IressMenuItem\>
914
- </IressMenu\>
915
- <IressMenu
916
- defaultSelected\="5"
917
- maxWidth\="input.12"
918
- noWrap
919
- \>
920
- <IressMenuItem\>
921
- Non wrapping menu item with some text </IressMenuItem\>
922
- </IressMenu\>
923
- </IressInline\>
924
-
925
- Copy
926
-
927
- ### [](#slot-props)Slot props
928
-
929
- `IressMenuItem`, `IressMenuHeading` and `IressMenuText` provide `prepend` and `append` props to position content either before or after its content.
930
-
931
- #### Prepend slot
932
-
933
- New fileSave file as
934
-
935
- * * *
936
-
937
- ### Append slot
938
-
939
- [Visit the Iress website](https://www.iress.com)[Visit Google8+](https://google.com)
940
-
941
- Hide code
942
-
943
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
944
-
945
- <IressMenu role\="menu"\>
946
- <IressMenuHeading
947
- element\="h4"
948
- prepend\={<IressIcon name\="cog" />}
949
- \>
950
- Prepend slot </IressMenuHeading\>
951
- <IressMenuItem
952
- onClick\={() \=> {}}
953
- prepend\={<IressIcon name\="file-alt" />}
954
- \>
955
- New file </IressMenuItem\>
956
- <IressMenuItem
957
- divider
958
- onClick\={() \=> {}}
959
- prepend\={<IressIcon name\="save" />}
960
- \>
961
- Save file as </IressMenuItem\>
962
- <IressMenuHeading
963
- append\={<IressIcon name\="link" />}
964
- element\="h3"
965
- \>
966
- Append slot </IressMenuHeading\>
967
- <IressMenuItem
968
- append\={<IressIcon name\="chevron-right" />}
969
- href\="https://www.iress.com"
970
- \>
971
- Visit the Iress website </IressMenuItem\>
972
- <IressMenuItem
973
- append\={<IressBadge mode\="warning"\>8+</IressBadge\>}
974
- href\="https://google.com"
975
- \>
976
- Visit Google </IressMenuItem\>
977
- </IressMenu\>
978
-
979
- Copy
980
-
981
- ### [](#roles)Roles
982
-
983
- The `role` prop that comes with the menu component not only changes the aria-role of the menu to allow it to be easily recognised in screen readers, but also changes how the menu is interacted with.
984
-
985
- There are four roles supported:
986
-
987
- * `list` (default): The menu is treated as a list of items. Child menu subcomponents render with the `listitem` role where appropriate. The user navigates using the `tab` key.
988
- * `menu`: The menu is treated as a menu of items. Child menu subcomponents render with the `menuitem` role where appropriate. The user navigates using `arrow` keys.
989
- * `listbox`: The menu is treated as a list of selectable items, similar to a `<select />`. Child menu subcomponents render with the `option` role where appropriate. The user navigates using `arrow` keys.
990
-
991
- **Note:** When menu is used as a child of popover, the `type` that is set on popover will be applied to menu (so you don't need to set it twice).
992
-
993
- #### [](#list)List
994
-
995
- The default role for the menu component is `list`. It is most often used for navigation and its items can be navigated (using the keyboard) with the `tab` key.
996
-
997
- Menu heading
998
- ------------
999
-
1000
- Menu item (button)
1001
-
1002
- * * *
1003
-
1004
- [Menu item (link)](https://iress.com)Menu item (selected)
1005
-
1006
- The list menu is used to describe that the items are related to the same context, similar to using `ul` or `ol` lists. It is activated by setting the `role` prop to `list`.
1007
-
1008
- Keyboard interaction
1009
-
1010
- * Menu items cannot be navigated using the arrow keys
1011
- * Menu items are navigated using the `tab` key
1012
-
1013
- Hide code
1014
-
1015
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
1016
-
1017
- <IressMenu defaultSelected\={5}\>
1018
- <IressMenuHeading\>
1019
- Menu heading </IressMenuHeading\>
1020
- <IressMenuItem value\="2"\>
1021
- Menu item (button) </IressMenuItem\>
1022
- <IressMenuDivider />
1023
- <IressMenuItem href\="https://iress.com"\>
1024
- Menu item (link) </IressMenuItem\>
1025
- <IressMenuItem
1026
- selected
1027
- value\={5}
1028
- \>
1029
- Menu item (selected) </IressMenuItem\>
1030
- </IressMenu\>
1031
-
1032
- Copy
1033
-
1034
- #### [](#menu-1)Menu
1035
-
1036
- The `menu` role is used when the items in the menu has an action that performs a task in the application. The items can be navigated (using the keyboard) with the `arrow` keys, depending on the layout.
1037
-
1038
- Menu heading
1039
- ------------
1040
-
1041
- Menu item (button)
1042
-
1043
- * * *
1044
-
1045
- [Menu item (link)](https://iress.com)Menu item (selected)
1046
-
1047
- The application menu is used when the items in the menu has an action that performs a task in the application. It is activated by setting the `role` prop to `menu`.
1048
-
1049
- Keyboard interaction
1050
-
1051
- * In stack layout, pressing the `up` arrow key on the first item will focus the last item
1052
- * In stack layout, pressing the `down` arrow key on the last item will focus the first item
1053
- * In inline layouts, pressing the `left` arrow key on the first item will focus the last item
1054
- * In inline layouts, pressing the `right` arrow key on the last item will focus the first item
1055
- * Pressing the `tab` key when focused on any item in the menu will focus to next focusable item outside of the menu
1056
-
1057
- Hide code
1058
-
1059
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
1060
-
1061
- <IressMenu
1062
- defaultSelected\={5}
1063
- role\="menu"
1064
- \>
1065
- <IressMenuHeading\>
1066
- Menu heading </IressMenuHeading\>
1067
- <IressMenuItem value\="2"\>
1068
- Menu item (button) </IressMenuItem\>
1069
- <IressMenuDivider />
1070
- <IressMenuItem href\="https://iress.com"\>
1071
- Menu item (link) </IressMenuItem\>
1072
- <IressMenuItem
1073
- selected
1074
- value\={5}
1075
- \>
1076
- Menu item (selected) </IressMenuItem\>
1077
- </IressMenu\>
1078
-
1079
- Copy
1080
-
1081
- #### [](#listbox)Listbox
1082
-
1083
- The `listbox` role is used for lists from which a user may select one or more items.
1084
-
1085
- A value is supplied to `IressMenuButton` (like you would with an option element inside a select) and a `onChange` event is emitted with the selected value(s) whenever the selection is changed by the user.
1086
-
1087
- Set the `multiSelect` prop to true for a multi-selectable listbox.
1088
-
1089
- New taskSend prospect welcome packBook in Discovery meetingProspect proceeding
1090
-
1091
- Multi-select
1092
-
1093
- The `listbox` menu is used for lists from which a user may select one or more items.
1094
-
1095
- A value is supplied to MenuItem (like you would with an `option` element inside a `select`) and a `onChange` event is emitted with the selected value(s) whenever the selection is changed by the user.
1096
-
1097
- If you need to set the selected state of an item programmatically, you can use the `selected` prop. This is set as string on Menu (or an array of strings for multi-selectable Menus), which then sets the selected state the child MenuItems. You can also set the `selected` prop on individual MenuItems, although we recommend that you use Menu's `selected` prop instead.
1098
-
1099
- **Note:** This is the menu type used to power Filter components.
1100
-
1101
- Keyboard interaction
1102
-
1103
- * Menu items can be navigated using the arrow keys, depending on the orientation of the menu.
1104
- * In stack layouts, pressing the `up` arrow key on the first item will **not** focus the last item
1105
- * In stack layouts, pressing the `down` arrow key on the last item will **not** focus the first item
1106
- * In inline layouts, pressing the `right` arrow key on the last item will **not** focus the first item
1107
- * In inline layouts, pressing the `left` arrow key on the first item will **not** focus the last item
1108
- * Pressing the `tab` key when focused on any item in the menu will focus to next focusable item outside of the menu
1109
-
1110
- Hide code
1111
-
1112
- \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
1113
-
1114
- <IressMenu
1115
- aria-label\="Selectable listbox"
1116
- defaultSelected\={5}
1117
- role\="listbox"
1118
- \>
1119
- <IressMenuItem value\={0}\>
1120
- New task </IressMenuItem\>
1121
- <IressMenuItem value\={1}\>
1122
- Send prospect welcome pack </IressMenuItem\>
1123
- <IressMenuItem value\={2}\>
1124
- Book in Discovery meeting </IressMenuItem\>
1125
- <IressMenuItem value\={3}\>
1126
- Prospect proceeding </IressMenuItem\>
1127
- </IressMenu\>
1128
-
1129
- Copy
1130
-
1131
- On this page
1132
-
1133
- * [Overview](#overview)
1134
- * [Props](#props)
1135
- * [Usage](#usage)
1136
- * [Basic](#basic)
1137
- * [Complex](#complex)
1138
- * [Examples](#examples)
1139
- * [Secondary navigation](#secondary-navigation)
1140
- * [Headings](#headings)
1141
- * [Dividers](#dividers)
1142
- * [Fluid menus](#fluid-menus)
1143
- * [Layout](#layout)
1144
- * [Text wrapping](#text-wrapping)
1145
- * [Slot props](#slot-props)
1146
- * [Roles](#roles)