@iress-oss/ids-mcp-server 5.14.2 → 5.20.1

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 (132) hide show
  1. package/generated/docs/components_components-alert-docs.md +492 -0
  2. package/generated/docs/components_components-autocomplete-docs.md +3485 -0
  3. package/generated/docs/{components-autocomplete-recipes-docs.md → components_components-autocomplete-recipes-docs.md} +32 -14
  4. package/generated/docs/{components-badge-docs.md → components_components-badge-docs.md} +222 -30
  5. package/generated/docs/components_components-button-docs.md +2078 -0
  6. package/generated/docs/components_components-button-recipes-docs.md +37 -0
  7. package/generated/docs/components_components-buttongroup-docs.md +1045 -0
  8. package/generated/docs/components_components-card-docs.md +2276 -0
  9. package/generated/docs/{components-card-recipes-docs.md → components_components-card-recipes-docs.md} +131 -14
  10. package/generated/docs/components_components-checkbox-docs.md +1054 -0
  11. package/generated/docs/{components-checkboxgroup-docs.md → components_components-checkboxgroup-docs.md} +1000 -81
  12. package/generated/docs/{components-checkboxgroup-recipes-docs.md → components_components-checkboxgroup-recipes-docs.md} +101 -11
  13. package/generated/docs/{components-col-docs.md → components_components-col-docs.md} +331 -58
  14. package/generated/docs/components_components-combobox-docs.md +3767 -0
  15. package/generated/docs/{components-container-docs.md → components_components-container-docs.md} +61 -24
  16. package/generated/docs/{components-divider-docs.md → components_components-divider-docs.md} +83 -24
  17. package/generated/docs/{components-expander-docs.md → components_components-expander-docs.md} +264 -33
  18. package/generated/docs/{components-field-docs.md → components_components-field-docs.md} +814 -120
  19. package/generated/docs/components_components-filter-docs.md +4080 -0
  20. package/generated/docs/{components-form-docs.md → components_components-form-docs.md} +1488 -358
  21. package/generated/docs/{components-form-recipes-docs.md → components_components-form-recipes-docs.md} +174 -64
  22. package/generated/docs/components_components-hide-docs.md +293 -0
  23. package/generated/docs/components_components-icon-docs.md +1337 -0
  24. package/generated/docs/{components-inline-docs.md → components_components-inline-docs.md} +462 -42
  25. package/generated/docs/components_components-input-docs.md +1468 -0
  26. package/generated/docs/components_components-input-recipes-docs.md +367 -0
  27. package/generated/docs/components_components-inputcurrency-docs.md +432 -0
  28. package/generated/docs/{components-inputcurrency-recipes-docs.md → components_components-inputcurrency-recipes-docs.md} +110 -17
  29. package/generated/docs/components_components-label-docs.md +323 -0
  30. package/generated/docs/components_components-menu-docs.md +2345 -0
  31. package/generated/docs/components_components-menu-menuitem-docs.md +633 -0
  32. package/generated/docs/{components-modal-docs.md → components_components-modal-docs.md} +1625 -232
  33. package/generated/docs/components_components-navbar-docs.md +1847 -0
  34. package/generated/docs/{components-navbar-recipes-docs.md → components_components-navbar-recipes-docs.md} +697 -39
  35. package/generated/docs/{components-panel-docs.md → components_components-panel-docs.md} +754 -57
  36. package/generated/docs/components_components-placeholder-docs.md +92 -0
  37. package/generated/docs/components_components-popover-docs.md +1641 -0
  38. package/generated/docs/{components-popover-recipes-docs.md → components_components-popover-recipes-docs.md} +347 -17
  39. package/generated/docs/components_components-progress-docs.md +115 -0
  40. package/generated/docs/components_components-provider-docs.md +114 -0
  41. package/generated/docs/components_components-radio-docs.md +491 -0
  42. package/generated/docs/{components-radiogroup-docs.md → components_components-radiogroup-docs.md} +943 -75
  43. package/generated/docs/components_components-readonly-docs.md +263 -0
  44. package/generated/docs/components_components-richselect-docs.md +6497 -0
  45. package/generated/docs/{components-row-docs.md → components_components-row-docs.md} +353 -43
  46. package/generated/docs/{components-select-docs.md → components_components-select-docs.md} +719 -61
  47. package/generated/docs/components_components-skeleton-docs.md +480 -0
  48. package/generated/docs/{components-skeleton-recipes-docs.md → components_components-skeleton-recipes-docs.md} +50 -10
  49. package/generated/docs/{components-skiplink-docs.md → components_components-skiplink-docs.md} +53 -14
  50. package/generated/docs/components_components-slideout-docs.md +2262 -0
  51. package/generated/docs/components_components-slider-docs.md +1276 -0
  52. package/generated/docs/components_components-spinner-docs.md +82 -0
  53. package/generated/docs/{components-stack-docs.md → components_components-stack-docs.md} +223 -40
  54. package/generated/docs/components_components-table-docs.md +3651 -0
  55. package/generated/docs/components_components-tabset-docs.md +772 -0
  56. package/generated/docs/components_components-tabset-tab-docs.md +262 -0
  57. package/generated/docs/components_components-tag-docs.md +259 -0
  58. package/generated/docs/{components-text-docs.md → components_components-text-docs.md} +491 -51
  59. package/generated/docs/{components-toaster-docs.md → components_components-toaster-docs.md} +224 -71
  60. package/generated/docs/components_components-toaster-toast-docs.md +634 -0
  61. package/generated/docs/components_components-toggle-docs.md +461 -0
  62. package/generated/docs/{components-tooltip-docs.md → components_components-tooltip-docs.md} +286 -41
  63. package/generated/docs/{components-validationmessage-docs.md → components_components-validationmessage-docs.md} +230 -61
  64. package/generated/docs/components_contact-us-docs.md +12 -0
  65. package/generated/docs/{foundations-accessibility-docs.md → components_foundations-accessibility-docs.md} +11 -21
  66. package/generated/docs/{foundations-colours-docs.md → components_foundations-colour-030-colours.md} +8 -15
  67. package/generated/docs/{foundations-consistency-docs.md → components_foundations-consistency-docs.md} +12 -20
  68. package/generated/docs/{foundations-content-docs.md → components_foundations-content-docs.md} +6 -11
  69. package/generated/docs/components_foundations-introduction-docs.md +15 -0
  70. package/generated/docs/{foundations-principles-docs.md → components_foundations-principles-docs.md} +14 -24
  71. package/generated/docs/components_foundations-typography-docs.md +608 -0
  72. package/generated/docs/{foundations-user-experience-docs.md → components_foundations-user-experience-docs.md} +16 -26
  73. package/generated/docs/{foundations-visual-design-docs.md → components_foundations-visual-design-docs.md} +10 -17
  74. package/generated/docs/{frequently-asked-questions-docs.md → components_frequently-asked-questions-docs.md} +14 -23
  75. package/generated/docs/components_get-started-develop-docs.md +84 -0
  76. package/generated/docs/components_get-started-using-storybook-docs.md +55 -0
  77. package/generated/docs/components_introduction-docs.md +15 -0
  78. package/generated/docs/{patterns-loading-docs.md → components_patterns-loading-docs.md} +711 -143
  79. package/generated/docs/components_resources-changelog-docs.md +4 -0
  80. package/generated/docs/{resources-code-katas-docs.md → components_resources-code-katas-docs.md} +5 -9
  81. package/generated/docs/{resources-migration-guides-from-v4-to-v5-docs.md → components_resources-migration-guides-from-v4-to-v5-docs.md} +54 -239
  82. package/generated/docs/{versions-docs.md → components_versions-docs.md} +5 -8
  83. package/generated/docs/guidelines.md +484 -200
  84. package/generated/docs/introduction-docs.md +19 -30
  85. package/package.json +41 -45
  86. package/generated/docs/components-alert-docs.md +0 -130
  87. package/generated/docs/components-autocomplete-docs.md +0 -754
  88. package/generated/docs/components-button-docs.md +0 -362
  89. package/generated/docs/components-button-recipes-docs.md +0 -76
  90. package/generated/docs/components-buttongroup-docs.md +0 -310
  91. package/generated/docs/components-card-docs.md +0 -494
  92. package/generated/docs/components-checkbox-docs.md +0 -193
  93. package/generated/docs/components-combobox-docs.md +0 -1016
  94. package/generated/docs/components-filter-docs.md +0 -1109
  95. package/generated/docs/components-hide-docs.md +0 -265
  96. package/generated/docs/components-icon-docs.md +0 -553
  97. package/generated/docs/components-input-docs.md +0 -335
  98. package/generated/docs/components-input-recipes-docs.md +0 -140
  99. package/generated/docs/components-inputcurrency-docs.md +0 -157
  100. package/generated/docs/components-label-docs.md +0 -135
  101. package/generated/docs/components-menu-docs.md +0 -704
  102. package/generated/docs/components-menu-menuitem-docs.md +0 -193
  103. package/generated/docs/components-navbar-docs.md +0 -291
  104. package/generated/docs/components-placeholder-docs.md +0 -27
  105. package/generated/docs/components-popover-docs.md +0 -464
  106. package/generated/docs/components-progress-docs.md +0 -104
  107. package/generated/docs/components-radio-docs.md +0 -107
  108. package/generated/docs/components-readonly-docs.md +0 -89
  109. package/generated/docs/components-richselect-docs.md +0 -2433
  110. package/generated/docs/components-skeleton-docs.md +0 -214
  111. package/generated/docs/components-slideout-docs.md +0 -538
  112. package/generated/docs/components-slider-docs.md +0 -346
  113. package/generated/docs/components-spinner-docs.md +0 -59
  114. package/generated/docs/components-table-ag-grid-docs.md +0 -2666
  115. package/generated/docs/components-table-docs.md +0 -1305
  116. package/generated/docs/components-tabset-docs.md +0 -341
  117. package/generated/docs/components-tabset-tab-docs.md +0 -86
  118. package/generated/docs/components-tag-docs.md +0 -115
  119. package/generated/docs/components-toaster-toast-docs.md +0 -157
  120. package/generated/docs/components-toggle-docs.md +0 -158
  121. package/generated/docs/contact-us-docs.md +0 -27
  122. package/generated/docs/extensions-editor-docs.md +0 -288
  123. package/generated/docs/extensions-editor-recipes-docs.md +0 -39
  124. package/generated/docs/foundations-introduction-docs.md +0 -17
  125. package/generated/docs/foundations-typography-docs.md +0 -191
  126. package/generated/docs/get-started-develop-docs.md +0 -48
  127. package/generated/docs/get-started-using-storybook-docs.md +0 -68
  128. package/generated/docs/resources-changelog-docs.md +0 -6
  129. package/generated/docs/themes-available-themes-docs.md +0 -66
  130. package/generated/docs/themes-introduction-docs.md +0 -121
  131. package/generated/docs/themes-tokens-docs.md +0 -1200
  132. /package/{LICENSE.txt → LICENSE} +0 -0
@@ -0,0 +1,82 @@
1
+ Spinner
2
+ =======
3
+
4
+ Overview
5
+ --------
6
+
7
+ Spinners notify the user that a task is being processed. They indicate that the app is busy, and should be used when the user has to wait for more than a few seconds.
8
+
9
+ [](./iframe.html?id=components-spinner--standalone)
10
+
11
+ ```
12
+
13
+ <IressSpinner screenreaderText\="Making magic happen..." />
14
+
15
+ ```
16
+
17
+ Props
18
+ -----
19
+
20
+ | Name | Description | Default | Control |
21
+ | --- | --- | --- | --- |
22
+ | screenreaderText |
23
+ string
24
+
25
+
26
+
27
+ | \- | Making magic happen... |
28
+ | Show Icon itemsIcon | Show Icon items |
29
+
30
+ Examples
31
+ --------
32
+
33
+ ### Standalone
34
+
35
+ When using the spinner on its own, you can define the `screenreaderText` prop to provide context to screen readers.
36
+
37
+ [](./iframe.html?id=components-spinner--standalone)
38
+
39
+ ```
40
+
41
+ <IressSpinner screenreaderText\="Making magic happen..." />
42
+
43
+ ```
44
+
45
+ #### Props
46
+
47
+ | Name | Description | Default | Control |
48
+ | --- | --- | --- | --- |
49
+ | screenreaderText |
50
+ string
51
+
52
+
53
+
54
+ | \- | Making magic happen... |
55
+ | Show Icon itemsIcon | Show Icon items |
56
+
57
+ ### Message
58
+
59
+ You can display a message alongside the spinner. In this case, you do not need to define the `screenreaderText` prop, as you have a visible message to the user telling them what is happening.
60
+
61
+ [](./iframe.html?id=components-spinner--message)
62
+
63
+ Making magic happen...
64
+
65
+ ```
66
+
67
+ <IressInline
68
+ gutter\="sm"
69
+ verticalAlign\="middle"
70
+ \>
71
+ <IressSpinner />
72
+ <IressText mode\="muted"\>
73
+ Making magic happen... </IressText\>
74
+ </IressInline\>
75
+
76
+ ```
77
+
78
+ #### Props
79
+
80
+ | Name | Description | Default | Control |
81
+ | --- | --- | --- | --- |
82
+ | Show Icon itemsIcon | Show Icon items |
@@ -1,14 +1,14 @@
1
- [](#stack)Stack
2
- ===============
1
+ Stack
2
+ =====
3
3
 
4
4
  Overview
5
5
  --------
6
6
 
7
7
  Use `IressStack` to control vertical spacing between content with consistent present values.
8
8
 
9
- Hide code
9
+ [](./iframe.html?id=components-stack--default)
10
10
 
11
- \[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; }
11
+ ```
12
12
 
13
13
  <IressStack gutter\="md"\>
14
14
  <IressPlaceholder height\="50" />
@@ -18,15 +18,48 @@ Hide code
18
18
  <IressPlaceholder height\="50" />
19
19
  </IressStack\>
20
20
 
21
- Copy
21
+ ```
22
22
 
23
- [](#examples)Examples
24
- ---------------------
23
+ Props
24
+ -----
25
25
 
26
- ### [](#gutter)Gutter
26
+ | Name | Description | Default | Control |
27
+ | --- | --- | --- | --- |
28
+ | children |
29
+ Content to be separated by a gutter.
30
+
31
+ ReactNode
32
+
33
+
34
+
35
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
36
+ | gutter |
37
+
38
+ Sets the gutter size of the stack.
39
+
40
+ union
41
+
42
+
43
+
44
+ |
45
+
46
+ 'none'
47
+
48
+ |
49
+
50
+ "md"
51
+
52
+ |
53
+
54
+ Examples
55
+ --------
56
+
57
+ ### Gutter
27
58
 
28
59
  Vertical spacing is applied to the direct children of the `IressStack` component. The amount of spacing is controlled by the gutter prop which accepts `none`, `xs`, `sm`, `md`, `lg` or `xl`.
29
60
 
61
+ [](./iframe.html?id=components-stack--gutter)
62
+
30
63
  none
31
64
  ----
32
65
 
@@ -45,9 +78,7 @@ lg
45
78
  xl
46
79
  --
47
80
 
48
- Hide code
49
-
50
- \[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; }
81
+ ```
51
82
 
52
83
  <IressStack gutter\="xl"\>
53
84
  <IressText\>
@@ -118,25 +149,51 @@ Hide code
118
149
  </IressText\>
119
150
  </IressStack\>
120
151
 
121
- Copy
152
+ ```
153
+
154
+ #### Props
155
+
156
+ | Name | Description | Default | Control |
157
+ | --- | --- | --- | --- |
158
+ | children |
159
+ Content to be separated by a gutter.
160
+
161
+ ReactNode
162
+
163
+
164
+
165
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
166
+ | gutter |
167
+
168
+ Sets the gutter size of the stack.
169
+
170
+ union
171
+
122
172
 
123
- ### [](#responsive-gutter)Responsive gutter
173
+
174
+ |
175
+
176
+ 'none'
177
+
178
+ | \- |
179
+
180
+ ### Responsive gutter
124
181
 
125
182
  The `gutter` prop can take an object that takes five key/value pairs that correlate with the IDS breakpoints.
126
183
 
184
+ [](./iframe.html?id=components-stack--responsive-gutter)
185
+
127
186
  Current breakpoint: **xl** breakpoint (1200px - 1499px).
128
187
 
129
188
  `gutter={{"xs":"xs","sm":"sm","md":"md"}}`
130
189
 
131
- Hide code
132
-
133
- \[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; }
190
+ ```
134
191
 
135
192
  <IressStack gutter\="md"\>
136
193
  <IressPanel\>
137
194
  <p\>
138
195
  Current breakpoint:{' '}
139
- <CurrentBreakpoint />
196
+ <kn />
140
197
  . </p\>
141
198
  <p\>
142
199
  <code\>
@@ -159,9 +216,55 @@ Hide code
159
216
  </IressStack\>
160
217
  </IressStack\>
161
218
 
162
- Copy
219
+ ```
220
+
221
+ #### Props
222
+
223
+ | Name | Description | Default | Control |
224
+ | --- | --- | --- | --- |
225
+ | children |
226
+ Content to be separated by a gutter.
227
+
228
+ ReactNode
229
+
230
+
231
+
232
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
233
+ | gutter |
234
+
235
+ Sets the gutter size of the stack.
236
+
237
+ union
238
+
239
+
240
+
241
+ |
242
+
243
+ 'none'
244
+
245
+ |
246
+
247
+ RAW
248
+
249
+ gutter :
250
+
251
+ {
252
+
253
+ * xs : "xs"
254
+ * sm : "sm"
255
+ * md : "md"
256
+
257
+ }
258
+
259
+
260
+
163
261
 
164
- ### [](#inline-children)Inline children
262
+
263
+
264
+
265
+ |
266
+
267
+ ### Inline children
165
268
 
166
269
  The stack component respects the `display` type of it's direct children.
167
270
 
@@ -171,6 +274,8 @@ In the example below:
171
274
  * `IressButton`s recieve the margin but remain inline-block
172
275
  * `IressPanel`s recieve the margin as they are block elements.
173
276
 
277
+ [](./iframe.html?id=components-stack--inline-children)
278
+
174
279
  Panel 1 (block)
175
280
 
176
281
  I am a (inline) span so will get no margin
@@ -181,9 +286,7 @@ Button 1Button 2Button 3
181
286
 
182
287
  Panel 3 (block)
183
288
 
184
- Hide code
185
-
186
- \[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; }
289
+ ```
187
290
 
188
291
  <IressStack gutter\="md"\>
189
292
  <IressPanel background\="alt"\>
@@ -202,21 +305,51 @@ Hide code
202
305
  Panel 3 (block) </IressPanel\>
203
306
  </IressStack\>
204
307
 
205
- Copy
308
+ ```
309
+
310
+ #### Props
311
+
312
+ | Name | Description | Default | Control |
313
+ | --- | --- | --- | --- |
314
+ | children |
315
+ Content to be separated by a gutter.
316
+
317
+ ReactNode
318
+
319
+
320
+
321
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
322
+ | gutter |
323
+
324
+ Sets the gutter size of the stack.
325
+
326
+ union
206
327
 
207
- ### [](#lists)Lists
328
+
329
+
330
+ |
331
+
332
+ 'none'
333
+
334
+ |
335
+
336
+ "md"
337
+
338
+ |
339
+
340
+ ### Lists
208
341
 
209
342
  `IressStack` can't be used directly with list items as this would break the list semantics; list items need to be direct children of the list. Instead, you can wrap the list element, and the correct margin will be applied to the list items.
210
343
 
211
344
  This only works if the list is a direct child of the `IressStack` component. If you want to add margin to the list instead of the list items, you'll need to wrap the list in a `<div>`, as shown in the second example below.
212
345
 
346
+ [](./iframe.html?id=components-stack--lists)
347
+
213
348
  * List item 1
214
349
  * List item 2
215
350
  * List item 3
216
351
 
217
- Hide code
218
-
219
- \[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; }
352
+ ```
220
353
 
221
354
  <IressStack gutter\="md"\>
222
355
  <ul className\="iress-u-text"\>
@@ -229,15 +362,45 @@ Hide code
229
362
  </ul\>
230
363
  </IressStack\>
231
364
 
232
- Copy
365
+ ```
366
+
367
+ #### Props
368
+
369
+ | Name | Description | Default | Control |
370
+ | --- | --- | --- | --- |
371
+ | children |
372
+ Content to be separated by a gutter.
373
+
374
+ ReactNode
375
+
376
+
377
+
378
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
379
+ | gutter |
380
+
381
+ Sets the gutter size of the stack.
382
+
383
+ union
384
+
385
+
386
+
387
+ |
388
+
389
+ 'none'
390
+
391
+ |
392
+
393
+ "md"
394
+
395
+ |
396
+
397
+ [](./iframe.html?id=components-stack--wrapped-list)
233
398
 
234
399
  * List item 1
235
400
  * List item 2
236
401
  * List item 3
237
402
 
238
- Hide code
239
-
240
- \[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; }
403
+ ```
241
404
 
242
405
  <IressStack gutter\="md"\>
243
406
  <IressText\>
@@ -252,14 +415,34 @@ Hide code
252
415
  </IressText\>
253
416
  </IressStack\>
254
417
 
255
- Copy
418
+ ```
419
+
420
+ #### Props
421
+
422
+ | Name | Description | Default | Control |
423
+ | --- | --- | --- | --- |
424
+ | children |
425
+ Content to be separated by a gutter.
426
+
427
+ ReactNode
428
+
429
+
430
+
431
+ | \- | Choose option...eveninlineChildrenlistwrappedList |
432
+ | gutter |
433
+
434
+ Sets the gutter size of the stack.
435
+
436
+ union
437
+
438
+
439
+
440
+ |
441
+
442
+ 'none'
443
+
444
+ |
256
445
 
257
- On this page
446
+ "md"
258
447
 
259
- * [Overview](#overview)
260
- * [Props](#props)
261
- * [Examples](#examples)
262
- * [Gutter](#gutter)
263
- * [Responsive gutter](#responsive-gutter)
264
- * [Inline children](#inline-children)
265
- * [Lists](#lists)
448
+ |