@jobber/components 8.26.0 → 8.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/DataTable/DataTable.md +0 -4
- package/dist/docs/InputNumberExperimental/InputNumberExperimental.md +85 -26
- package/dist/docs/Table/Table.md +1 -3
- package/dist/docs/index.md +0 -1
- package/dist/index.cjs +0 -2
- package/dist/index.d.mts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.mjs +0 -1
- package/dist/styles.css +5 -41
- package/dist/utils/meta/meta.json +0 -1
- package/package.json +2 -7
- package/DescriptionList.d.ts +0 -1
- package/DescriptionList.js +0 -17
- package/dist/DescriptionList/DescriptionList.d.ts +0 -11
- package/dist/DescriptionList/index.cjs +0 -10
- package/dist/DescriptionList/index.d.ts +0 -1
- package/dist/DescriptionList/index.mjs +0 -4
- package/dist/DescriptionList-cjs.js +0 -14
- package/dist/DescriptionList-es.js +0 -12
- package/dist/docs/DescriptionList/DescriptionList.md +0 -25
|
@@ -33,10 +33,6 @@ numerical data (and their headers) round to the same decimal point, and are
|
|
|
33
33
|
right-aligned. This makes it much easier for the reader to quickly parse large
|
|
34
34
|
distinctions in dollar amounts, inventory counts, and other key business data.
|
|
35
35
|
|
|
36
|
-
If you have a small list of information with a 1:1 label-to-data relationship
|
|
37
|
-
(for example, the issued and due dates on an invoice), consider using
|
|
38
|
-
[DescriptionList](../DescriptionList/DescriptionList.md).
|
|
39
|
-
|
|
40
36
|
**Note**: The atomic DataTable components are the path forward and should be
|
|
41
37
|
considered prior to using the [DataList](../DataList/DataList.md) and
|
|
42
38
|
[Table](../Table/Table.md) components.
|
|
@@ -3,26 +3,53 @@
|
|
|
3
3
|
## Summary
|
|
4
4
|
|
|
5
5
|
`InputNumberExperimental` collects a single numeric value in a form. Reach for
|
|
6
|
-
it when the value benefits from being nudged up or down
|
|
7
|
-
durations, or counts.
|
|
6
|
+
it when the value benefits from being nudged up or down, such as quantities,
|
|
7
|
+
prices, durations, or counts.
|
|
8
8
|
|
|
9
|
-
Most fields need
|
|
10
|
-
can
|
|
9
|
+
Most fields only need the props shown below. For rare layouts the props can't
|
|
10
|
+
handle, you can build the same field from smaller pieces. See the **Implement**
|
|
11
11
|
tab.
|
|
12
12
|
|
|
13
13
|
### When to use
|
|
14
14
|
|
|
15
|
-
* The value is a number the user increments or decrements
|
|
16
|
-
|
|
17
|
-
* A stepper, min/max bounds, or number formatting would help the user
|
|
15
|
+
* The value is a number the user increments or decrements, like a quantity,
|
|
16
|
+
price, day count, or number of repetitions
|
|
17
|
+
* A stepper, min/max bounds, or number formatting would help the user
|
|
18
18
|
|
|
19
19
|
### When not to use
|
|
20
20
|
|
|
21
|
-
* The value is a sequence of digits that is never calculated with
|
|
21
|
+
* The value is a sequence of digits that is never calculated with, such as phone
|
|
22
22
|
numbers, credit-card numbers, or postal codes. A stepper adds no value there;
|
|
23
23
|
use [InputText](../InputText/InputText.md) instead.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Anatomy
|
|
26
|
+
|
|
27
|
+
`InputNumberExperimental` typically includes:
|
|
28
|
+
|
|
29
|
+
* Label (required): names the value the field collects
|
|
30
|
+
* Value field (required): the number the user types or steps through
|
|
31
|
+
* Stepper (optional): increment and decrement controls that change the value by
|
|
32
|
+
`step`
|
|
33
|
+
* Prefix or suffix (optional): a unit or symbol shown alongside the value, like
|
|
34
|
+
$ or kg
|
|
35
|
+
* Loading indicator (optional): replaces the stepper while background work runs
|
|
36
|
+
|
|
37
|
+
## Behavior
|
|
38
|
+
|
|
39
|
+
* The field is controlled through `value`, where a number sets the value and
|
|
40
|
+
`null` leaves it empty.
|
|
41
|
+
* `onValueCommitted` fires when the user commits a value: on blur, on Enter, or
|
|
42
|
+
when they use the stepper or arrow keys. Use `onValueChange` for per-keystroke
|
|
43
|
+
updates.
|
|
44
|
+
* The stepper buttons and the Up and Down arrow keys change the value by `step`
|
|
45
|
+
(default 1).
|
|
46
|
+
* `min` and `max` bound the value, and the stepper stops at each limit.
|
|
47
|
+
* `loading` hides the stepper and shows an indicator in its place. The field
|
|
48
|
+
stays editable, so use `readOnly` or `disabled` to lock it.
|
|
49
|
+
|
|
50
|
+
## Options
|
|
51
|
+
|
|
52
|
+
### Basic
|
|
26
53
|
|
|
27
54
|
Pass `label`, a controlled `value`, and `onValueCommitted`. Bounds (`min` /
|
|
28
55
|
`max`) and `step` are optional.
|
|
@@ -50,11 +77,9 @@ export function InputNumberExperimentalBasicExample(
|
|
|
50
77
|
}
|
|
51
78
|
```
|
|
52
79
|
|
|
53
|
-
## Options
|
|
54
|
-
|
|
55
80
|
### Prefixes and suffixes
|
|
56
81
|
|
|
57
|
-
Use `prefix`
|
|
82
|
+
Use `prefix` or `suffix` to add a unit or symbol. A suffix can be a label, an
|
|
58
83
|
icon, or a clickable icon that runs an action (give it an `ariaLabel`).
|
|
59
84
|
|
|
60
85
|
```tsx
|
|
@@ -101,7 +126,7 @@ export function InputNumberExperimentalAffixesExample() {
|
|
|
101
126
|
|
|
102
127
|
### Sizes
|
|
103
128
|
|
|
104
|
-
|
|
129
|
+
3 sizes are available. `default` fits almost every form; use `small` only in
|
|
105
130
|
tight spaces and `large` only in especially spacious layouts.
|
|
106
131
|
|
|
107
132
|
```tsx
|
|
@@ -189,8 +214,8 @@ export function InputNumberExperimentalFormattingExample() {
|
|
|
189
214
|
### Loading
|
|
190
215
|
|
|
191
216
|
`loading` shows a non-blocking indicator in the stepper's slot for background
|
|
192
|
-
work
|
|
193
|
-
|
|
217
|
+
work, like saving. The field stays editable and the stepper is hidden while
|
|
218
|
+
loading.
|
|
194
219
|
|
|
195
220
|
```tsx
|
|
196
221
|
import React, { useState } from "react";
|
|
@@ -222,25 +247,59 @@ Put the unit in the label or an affix, not both.
|
|
|
222
247
|
| Label "Weight", suffix "kg" | Label "Weight (kg)", suffix "kg" |
|
|
223
248
|
| Label "Duration", suffix "days" | Label "Duration in days", suffix "days" |
|
|
224
249
|
|
|
225
|
-
### Keep labels short and sentence
|
|
250
|
+
### Keep labels short and sentence case
|
|
226
251
|
|
|
227
252
|
| ✅ Do | ❌ Don't |
|
|
228
253
|
| -------- | ----------------------- |
|
|
229
254
|
| Quantity | Enter the quantity here |
|
|
230
255
|
| Discount | DISCOUNT % |
|
|
231
256
|
|
|
257
|
+
### Put the symbol where it's read
|
|
258
|
+
|
|
259
|
+
Use a prefix for a leading symbol and a suffix for a trailing unit, matching how
|
|
260
|
+
the value is spoken.
|
|
261
|
+
|
|
262
|
+
| ✅ Do | ❌ Don't |
|
|
263
|
+
| -------------------- | -------------------- |
|
|
264
|
+
| Prefix "$", value 40 | Suffix "$", value 40 |
|
|
265
|
+
| Suffix "%", value 15 | Prefix "%", value 15 |
|
|
266
|
+
|
|
267
|
+
### Keep validation errors helpful
|
|
268
|
+
|
|
269
|
+
When a value breaks `min` or `max`, provide helpful guidance on what values will
|
|
270
|
+
be accepted as opposed to just providing a generic error.
|
|
271
|
+
|
|
272
|
+
| ✅ Do | ❌ Don't |
|
|
273
|
+
| ------------------------------ | ------------- |
|
|
274
|
+
| Enter a value between 1 and 99 | Invalid input |
|
|
275
|
+
| Quantity can't be more than 50 | Error |
|
|
276
|
+
|
|
277
|
+
### Use numbers as opposed to spelling them
|
|
278
|
+
|
|
279
|
+
Use numerals in labels, helper text, affixes, and bounds.
|
|
280
|
+
|
|
281
|
+
| ✅ Do | ❌ Don't |
|
|
282
|
+
| ----------- | --------------- |
|
|
283
|
+
| Max 3 items | Max three items |
|
|
284
|
+
|
|
232
285
|
## Do's and Don'ts
|
|
233
286
|
|
|
287
|
+
#### Do:
|
|
288
|
+
|
|
234
289
|
* ✅ Use for values the user increments or decrements
|
|
235
|
-
* ✅ Set `min`
|
|
290
|
+
* ✅ Set `min` and `max` when the value has real bounds
|
|
236
291
|
* ✅ Use `format` for currency, percent, and decimals rather than formatting the
|
|
237
292
|
value yourself
|
|
238
|
-
*
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
293
|
+
* ✅ Use `loading` for background work so the field stays usable
|
|
294
|
+
|
|
295
|
+
#### Don't:
|
|
296
|
+
|
|
297
|
+
* ❌ Use it for digit sequences that are never calculated with, like phone or
|
|
298
|
+
credit card numbers
|
|
299
|
+
* ❌ Disable the field to communicate an error; show an `error` message instead
|
|
300
|
+
* ❌ Repeat the unit in both the label and an affix
|
|
242
301
|
|
|
243
|
-
## Accessibility
|
|
302
|
+
## Accessibility notes
|
|
244
303
|
|
|
245
304
|
The field is a native number input, so it is reachable and operable by keyboard
|
|
246
305
|
and assistive technology.
|
|
@@ -252,13 +311,13 @@ and assistive technology.
|
|
|
252
311
|
| Enter | Commits the current value |
|
|
253
312
|
| Type | Replaces the value |
|
|
254
313
|
|
|
255
|
-
Give a clickable affix a clear `ariaLabel` describing its action
|
|
256
|
-
|
|
314
|
+
Give a clickable affix a clear `ariaLabel` describing its action, like "Clear
|
|
315
|
+
value".
|
|
257
316
|
|
|
258
317
|
## Related components
|
|
259
318
|
|
|
260
|
-
* For digit sequences that are not calculated with
|
|
261
|
-
[InputText](../InputText/InputText.md).
|
|
319
|
+
* For digit sequences that are not calculated with, like phone or credit card
|
|
320
|
+
numbers, use [InputText](../InputText/InputText.md).
|
|
262
321
|
* For dates, use [InputDate](../InputDate/InputDate.md).
|
|
263
322
|
|
|
264
323
|
|
package/dist/docs/Table/Table.md
CHANGED
|
@@ -25,9 +25,7 @@ distinctions in dollar amounts, inventory counts, and other key business data.
|
|
|
25
25
|
|
|
26
26
|
To list more complex collections of information (such as multi-line content like
|
|
27
27
|
a detailed property address), you may want to consider the
|
|
28
|
-
[List](../List/List.md) component.
|
|
29
|
-
a 1:1 label-to-data relationship (for example, the issued and due dates on an
|
|
30
|
-
invoice), consider using [DescriptionList](../DescriptionList/DescriptionList.md).
|
|
28
|
+
[List](../List/List.md) component.
|
|
31
29
|
|
|
32
30
|
|
|
33
31
|
## Configuration
|
package/dist/docs/index.md
CHANGED
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
[DataTable](./DataTable/DataTable.md)
|
|
28
28
|
[Datepicker](./Datepicker/Datepicker.md)
|
|
29
29
|
[DatePickerNotes](./DatePickerNotes/DatePickerNotes.md)
|
|
30
|
-
[DescriptionList](./DescriptionList/DescriptionList.md)
|
|
31
30
|
[Dialog](./Dialog/Dialog.md)
|
|
32
31
|
[disabled-states](./disabled-states/disabled-states.md)
|
|
33
32
|
[Disclosure](./Disclosure/Disclosure.md)
|
package/dist/index.cjs
CHANGED
|
@@ -32,7 +32,6 @@ require('@jobber/hooks');
|
|
|
32
32
|
require('./DataTableTable-cjs.js');
|
|
33
33
|
var reactTable = require('@tanstack/react-table');
|
|
34
34
|
var DatePicker = require('./DatePicker-cjs.js');
|
|
35
|
-
var DescriptionList = require('./DescriptionList-cjs.js');
|
|
36
35
|
var dialogReturnFocus = require('./dialogReturnFocus-cjs.js');
|
|
37
36
|
var Disclosure = require('./Disclosure-cjs.js');
|
|
38
37
|
var Divider = require('./Divider-cjs.js');
|
|
@@ -248,7 +247,6 @@ Object.defineProperty(exports, "createColumnHelper", {
|
|
|
248
247
|
get: function () { return reactTable.createColumnHelper; }
|
|
249
248
|
});
|
|
250
249
|
exports.DatePicker = DatePicker.DatePicker;
|
|
251
|
-
exports.DescriptionList = DescriptionList.DescriptionList;
|
|
252
250
|
exports.Dialog = dialogReturnFocus.Dialog;
|
|
253
251
|
exports.getDialogReturnFocus = dialogReturnFocus.getDialogReturnFocus;
|
|
254
252
|
exports.getFirstFocusableWithin = dialogReturnFocus.getFirstFocusableWithin;
|
package/dist/index.d.mts
CHANGED
|
@@ -23,7 +23,6 @@ export * from "./DataDump";
|
|
|
23
23
|
export * from "./DataList";
|
|
24
24
|
export { DataTable, createColumnHelper } from "./DataTable";
|
|
25
25
|
export * from "./DatePicker";
|
|
26
|
-
export * from "./DescriptionList";
|
|
27
26
|
export * from "./Dialog";
|
|
28
27
|
export * from "./Disclosure";
|
|
29
28
|
export * from "./Divider";
|
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export * from "./DataDump";
|
|
|
23
23
|
export * from "./DataList";
|
|
24
24
|
export { DataTable, createColumnHelper } from "./DataTable";
|
|
25
25
|
export * from "./DatePicker";
|
|
26
|
-
export * from "./DescriptionList";
|
|
27
26
|
export * from "./Dialog";
|
|
28
27
|
export * from "./Disclosure";
|
|
29
28
|
export * from "./Divider";
|
package/dist/index.mjs
CHANGED
|
@@ -30,7 +30,6 @@ import '@jobber/hooks';
|
|
|
30
30
|
import './DataTableTable-es.js';
|
|
31
31
|
export { createColumnHelper } from '@tanstack/react-table';
|
|
32
32
|
export { D as DatePicker } from './DatePicker-es.js';
|
|
33
|
-
export { D as DescriptionList } from './DescriptionList-es.js';
|
|
34
33
|
export { D as Dialog, g as getDialogReturnFocus, a as getFirstFocusableWithin } from './dialogReturnFocus-es.js';
|
|
35
34
|
export { D as Disclosure } from './Disclosure-es.js';
|
|
36
35
|
export { D as Divider } from './Divider-es.js';
|
package/dist/styles.css
CHANGED
|
@@ -4176,6 +4176,11 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
|
|
|
4176
4176
|
line-height: 0;
|
|
4177
4177
|
}
|
|
4178
4178
|
|
|
4179
|
+
.yL7--3ni8BM- p {
|
|
4180
|
+
margin-top: 1px;
|
|
4181
|
+
margin-top: var(--space-minuscule);
|
|
4182
|
+
}
|
|
4183
|
+
|
|
4179
4184
|
.qWsLxPjCBI8- {
|
|
4180
4185
|
display: inline-block;
|
|
4181
4186
|
margin-bottom: 4px;
|
|
@@ -10365,47 +10370,6 @@ h2.react-datepicker__current-month {
|
|
|
10365
10370
|
color: var(--color-heading);
|
|
10366
10371
|
}
|
|
10367
10372
|
|
|
10368
|
-
.BkruJ2-bRWg- {
|
|
10369
|
-
margin: 0;
|
|
10370
|
-
}
|
|
10371
|
-
|
|
10372
|
-
.tpCvfS7kyDQ- {
|
|
10373
|
-
display: -ms-flexbox;
|
|
10374
|
-
display: flex;
|
|
10375
|
-
-ms-flex-wrap: wrap;
|
|
10376
|
-
flex-wrap: wrap;
|
|
10377
|
-
padding: 8px 0;
|
|
10378
|
-
padding: var(--space-small) 0;
|
|
10379
|
-
border-bottom: 1px solid hsl(200, 13%, 87%);
|
|
10380
|
-
border-bottom: var(--border-base) solid var(--color-border);
|
|
10381
|
-
}
|
|
10382
|
-
|
|
10383
|
-
.tpCvfS7kyDQ-:first-child {
|
|
10384
|
-
padding-top: 0;
|
|
10385
|
-
}
|
|
10386
|
-
|
|
10387
|
-
.tpCvfS7kyDQ-:last-child {
|
|
10388
|
-
padding-bottom: 0;
|
|
10389
|
-
border-bottom: none;
|
|
10390
|
-
}
|
|
10391
|
-
|
|
10392
|
-
.tpCvfS7kyDQ- dd {
|
|
10393
|
-
min-width: calc(16px * 7.5);
|
|
10394
|
-
min-width: calc(var(--base-unit) * 7.5);
|
|
10395
|
-
box-sizing: border-box;
|
|
10396
|
-
padding-right: 8px;
|
|
10397
|
-
padding-right: var(--space-small);
|
|
10398
|
-
-webkit-margin-start: 0;
|
|
10399
|
-
margin-left: 0;
|
|
10400
|
-
-ms-flex: 1 1 60%;
|
|
10401
|
-
flex: 1 1 60%;
|
|
10402
|
-
}
|
|
10403
|
-
|
|
10404
|
-
.tpCvfS7kyDQ- dt {
|
|
10405
|
-
-ms-flex: 1 1 40%;
|
|
10406
|
-
flex: 1 1 40%;
|
|
10407
|
-
}
|
|
10408
|
-
|
|
10409
10373
|
/* Dialog Sizes */
|
|
10410
10374
|
.uYYyCR3l6E8- {
|
|
10411
10375
|
--dialog-popup-max-width: 440px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "8.26.
|
|
3
|
+
"version": "8.26.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -150,11 +150,6 @@
|
|
|
150
150
|
"import": "./dist/DatePicker/index.mjs",
|
|
151
151
|
"require": "./dist/DatePicker/index.cjs"
|
|
152
152
|
},
|
|
153
|
-
"./DescriptionList": {
|
|
154
|
-
"types": "./dist/DescriptionList/index.d.ts",
|
|
155
|
-
"import": "./dist/DescriptionList/index.mjs",
|
|
156
|
-
"require": "./dist/DescriptionList/index.cjs"
|
|
157
|
-
},
|
|
158
153
|
"./Dialog": {
|
|
159
154
|
"types": "./dist/Dialog/index.d.ts",
|
|
160
155
|
"import": "./dist/Dialog/index.mjs",
|
|
@@ -545,5 +540,5 @@
|
|
|
545
540
|
"> 1%",
|
|
546
541
|
"IE 10"
|
|
547
542
|
],
|
|
548
|
-
"gitHead": "
|
|
543
|
+
"gitHead": "7d6fff8d16519d467ff260b676141d4e15d865ee"
|
|
549
544
|
}
|
package/DescriptionList.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./dist/DescriptionList";
|
package/DescriptionList.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true,
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
var DescriptionList = require("./dist/DescriptionList");
|
|
8
|
-
|
|
9
|
-
Object.keys(DescriptionList).forEach(function(key) {
|
|
10
|
-
if (key === "default" || key === "__esModule") return;
|
|
11
|
-
Object.defineProperty(exports, key, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function get() {
|
|
14
|
-
return DescriptionList[key];
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
import React from "react";
|
|
3
|
-
interface DescriptionListProps {
|
|
4
|
-
/**
|
|
5
|
-
* A tuple where the first item is the string to display as the term
|
|
6
|
-
* and the second value is the string to display as the definition
|
|
7
|
-
*/
|
|
8
|
-
readonly data: [string, string | ReactNode][];
|
|
9
|
-
}
|
|
10
|
-
export declare function DescriptionList({ data }: DescriptionListProps): React.JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { DescriptionList } from "./DescriptionList";
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var Typography = require('./Typography-cjs.js');
|
|
5
|
-
|
|
6
|
-
var styles = {"descriptionList":"BkruJ2-bRWg-","termGroup":"tpCvfS7kyDQ-","spinning":"pkFPHChT5OI-"};
|
|
7
|
-
|
|
8
|
-
function DescriptionList({ data }) {
|
|
9
|
-
return (React.createElement("dl", { className: styles.descriptionList }, data.map(([term, description], i) => (React.createElement("div", { key: `${term}-${i}`, className: styles.termGroup },
|
|
10
|
-
React.createElement(Typography.Typography, { element: "dt", textColor: "heading", size: "base" }, term),
|
|
11
|
-
React.createElement(Typography.Typography, { element: "dd", textColor: "text", size: "base" }, description))))));
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.DescriptionList = DescriptionList;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { T as Typography } from './Typography-es.js';
|
|
3
|
-
|
|
4
|
-
var styles = {"descriptionList":"BkruJ2-bRWg-","termGroup":"tpCvfS7kyDQ-","spinning":"pkFPHChT5OI-"};
|
|
5
|
-
|
|
6
|
-
function DescriptionList({ data }) {
|
|
7
|
-
return (React__default.createElement("dl", { className: styles.descriptionList }, data.map(([term, description], i) => (React__default.createElement("div", { key: `${term}-${i}`, className: styles.termGroup },
|
|
8
|
-
React__default.createElement(Typography, { element: "dt", textColor: "heading", size: "base" }, term),
|
|
9
|
-
React__default.createElement(Typography, { element: "dd", textColor: "text", size: "base" }, description))))));
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { DescriptionList as D };
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Description List
|
|
2
|
-
|
|
3
|
-
Description Lists are used to display a list of terms and descriptions.
|
|
4
|
-
|
|
5
|
-
## Design & usage guidelines
|
|
6
|
-
|
|
7
|
-
The Description List is a great solution when you have a small list of
|
|
8
|
-
information with a 1:1 label-to-data relationship. For example, the issued and
|
|
9
|
-
due dates on an invoice, or the job type, billing type and duration of a job.
|
|
10
|
-
|
|
11
|
-
## Related components
|
|
12
|
-
|
|
13
|
-
* To list more complex collections of related information, consider using a
|
|
14
|
-
[List](../List/List.md).
|
|
15
|
-
* To display structured data for comparison, consider using a
|
|
16
|
-
[Table](../Table/Table.md).
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## Props
|
|
20
|
-
|
|
21
|
-
### Web
|
|
22
|
-
|
|
23
|
-
| Prop | Type | Required | Default | Description |
|
|
24
|
-
|------|------|----------|---------|-------------|
|
|
25
|
-
| `data` | `[string, ReactNode][]` | Yes | — | A tuple where the first item is the string to display as the term and the second value is the string to display as th... |
|