@abraracs/better-shopify-wc-mcp 1.0.0
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/README.md +110 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +325 -0
- package/docs/avatar.md +481 -0
- package/docs/badge.md +266 -0
- package/docs/banner.md +350 -0
- package/docs/box.md +618 -0
- package/docs/button.md +604 -0
- package/docs/buttongroup.md +251 -0
- package/docs/checkbox.md +346 -0
- package/docs/chip.md +261 -0
- package/docs/choicelist.md +416 -0
- package/docs/clickable.md +703 -0
- package/docs/clickablechip.md +377 -0
- package/docs/colorfield.md +416 -0
- package/docs/colorpicker.md +152 -0
- package/docs/datefield.md +706 -0
- package/docs/datepicker.md +443 -0
- package/docs/divider.md +263 -0
- package/docs/dropzone.md +331 -0
- package/docs/emailfield.md +377 -0
- package/docs/grid.md +1246 -0
- package/docs/heading.md +201 -0
- package/docs/icon.md +295 -0
- package/docs/image.md +517 -0
- package/docs/link.md +456 -0
- package/docs/menu.md +331 -0
- package/docs/modal.md +640 -0
- package/docs/moneyfield.md +385 -0
- package/docs/numberfield.md +393 -0
- package/docs/orderedlist.md +224 -0
- package/docs/page.md +319 -0
- package/docs/paragraph.md +333 -0
- package/docs/passwordfield.md +381 -0
- package/docs/popover.md +419 -0
- package/docs/querycontainer.md +121 -0
- package/docs/searchfield.md +319 -0
- package/docs/section.md +267 -0
- package/docs/select.md +449 -0
- package/docs/spinner.md +121 -0
- package/docs/stack.md +748 -0
- package/docs/switch.md +365 -0
- package/docs/table.md +805 -0
- package/docs/text.md +339 -0
- package/docs/textarea.md +328 -0
- package/docs/textfield.md +425 -0
- package/docs/thumbnail.md +245 -0
- package/docs/tooltip.md +130 -0
- package/docs/unorderedlist.md +135 -0
- package/docs/urlfield.md +314 -0
- package/package.json +43 -0
package/docs/table.md
ADDED
|
@@ -0,0 +1,805 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Table
|
|
3
|
+
description: >-
|
|
4
|
+
Display data clearly in rows and columns, helping users view, analyze, and
|
|
5
|
+
compare information. Automatically renders as a list on small screens and a
|
|
6
|
+
table on large ones.
|
|
7
|
+
api_name: app-home
|
|
8
|
+
source_url:
|
|
9
|
+
html: 'https://shopify.dev/docs/api/app-home/polaris-web-components/structure/table'
|
|
10
|
+
md: >-
|
|
11
|
+
https://shopify.dev/docs/api/app-home/polaris-web-components/structure/table.md
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Table
|
|
15
|
+
|
|
16
|
+
Display data clearly in rows and columns, helping users view, analyze, and compare information. Automatically renders as a list on small screens and a table on large ones.
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
* hasNextPage
|
|
21
|
+
|
|
22
|
+
boolean
|
|
23
|
+
|
|
24
|
+
Default: false
|
|
25
|
+
|
|
26
|
+
Whether there's an additional page of data.
|
|
27
|
+
|
|
28
|
+
* hasPreviousPage
|
|
29
|
+
|
|
30
|
+
boolean
|
|
31
|
+
|
|
32
|
+
Default: false
|
|
33
|
+
|
|
34
|
+
Whether there's a previous page of data.
|
|
35
|
+
|
|
36
|
+
* loading
|
|
37
|
+
|
|
38
|
+
boolean
|
|
39
|
+
|
|
40
|
+
Default: false
|
|
41
|
+
|
|
42
|
+
Whether the table is in a loading state, such as initial page load or loading the next page in a paginated table. When true, the table could be in an inert state, which prevents user interaction.
|
|
43
|
+
|
|
44
|
+
* paginate
|
|
45
|
+
|
|
46
|
+
boolean
|
|
47
|
+
|
|
48
|
+
Default: false
|
|
49
|
+
|
|
50
|
+
Whether to use pagination controls.
|
|
51
|
+
|
|
52
|
+
* variant
|
|
53
|
+
|
|
54
|
+
"auto" | "list"
|
|
55
|
+
|
|
56
|
+
Default: 'auto'
|
|
57
|
+
|
|
58
|
+
Sets the layout of the Table.
|
|
59
|
+
|
|
60
|
+
* `list`: The Table is always displayed as a list.
|
|
61
|
+
* `table`: The Table is always displayed as a table.
|
|
62
|
+
* `auto`: The Table is displayed as a table on wide devices and as a list on narrow devices.
|
|
63
|
+
|
|
64
|
+
## Slots
|
|
65
|
+
|
|
66
|
+
* children
|
|
67
|
+
|
|
68
|
+
HTMLElement
|
|
69
|
+
|
|
70
|
+
The content of the Table.
|
|
71
|
+
|
|
72
|
+
* filters
|
|
73
|
+
|
|
74
|
+
HTMLElement
|
|
75
|
+
|
|
76
|
+
Additional filters to display in the table. For example, the `s-search-field` component can be used to filter the table data.
|
|
77
|
+
|
|
78
|
+
## Events
|
|
79
|
+
|
|
80
|
+
Learn more about [registering events](https://shopify.dev/docs/api/app-home/using-polaris-components#event-handling).
|
|
81
|
+
|
|
82
|
+
* nextpage
|
|
83
|
+
|
|
84
|
+
CallbackEventListener\<typeof tagName> | null
|
|
85
|
+
|
|
86
|
+
* previouspage
|
|
87
|
+
|
|
88
|
+
CallbackEventListener\<typeof tagName> | null
|
|
89
|
+
|
|
90
|
+
### CallbackEventListener
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
(EventListener & {
|
|
94
|
+
(event: CallbackEvent<T>): void;
|
|
95
|
+
}) | null
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### CallbackEvent
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
Event & {
|
|
102
|
+
currentTarget: HTMLElementTagNameMap[T];
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## TableBody
|
|
107
|
+
|
|
108
|
+
Define the main content area of a table, containing rows and cells that display data.
|
|
109
|
+
|
|
110
|
+
## Slots
|
|
111
|
+
|
|
112
|
+
* children
|
|
113
|
+
|
|
114
|
+
HTMLElement
|
|
115
|
+
|
|
116
|
+
The body of the table. May not have any semantic meaning in the Table's `list` variant.
|
|
117
|
+
|
|
118
|
+
## TableCell
|
|
119
|
+
|
|
120
|
+
Display data within a cell in a table row.
|
|
121
|
+
|
|
122
|
+
## Slots
|
|
123
|
+
|
|
124
|
+
* children
|
|
125
|
+
|
|
126
|
+
HTMLElement
|
|
127
|
+
|
|
128
|
+
The content of the table cell.
|
|
129
|
+
|
|
130
|
+
## TableHeader
|
|
131
|
+
|
|
132
|
+
Display column names at the top of a table.
|
|
133
|
+
|
|
134
|
+
* format
|
|
135
|
+
|
|
136
|
+
HeaderFormat
|
|
137
|
+
|
|
138
|
+
The format of the column. Will automatically apply styling and alignment to cell content based on the value.
|
|
139
|
+
|
|
140
|
+
* `base`: The base format for columns.
|
|
141
|
+
* `currency`: Formats the column as currency.
|
|
142
|
+
* `numeric`: Formats the column as a number.
|
|
143
|
+
|
|
144
|
+
* listSlot
|
|
145
|
+
|
|
146
|
+
ListSlotType
|
|
147
|
+
|
|
148
|
+
Default: 'labeled'
|
|
149
|
+
|
|
150
|
+
Content designation for the table's `list` variant.
|
|
151
|
+
|
|
152
|
+
* `primary`: The most important content. Only one column can have this designation.
|
|
153
|
+
* `secondary`: The secondary content. Only one column can have this designation.
|
|
154
|
+
* `kicker`: Content that is displayed before primary and secondary content, but with less visual prominence. Only one column can have this designation.
|
|
155
|
+
* `inline`: Content that is displayed inline.
|
|
156
|
+
* `labeled`: Each column with this designation displays as a heading-content pair.
|
|
157
|
+
|
|
158
|
+
### HeaderFormat
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
'base' | 'numeric' | 'currency'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### ListSlotType
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
'primary' | 'secondary' | 'kicker' | 'inline' | 'labeled'
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Slots
|
|
171
|
+
|
|
172
|
+
* children
|
|
173
|
+
|
|
174
|
+
HTMLElement
|
|
175
|
+
|
|
176
|
+
The heading of the column in the `table` variant, and the label of its data in `list` variant.
|
|
177
|
+
|
|
178
|
+
## TableHeaderRow
|
|
179
|
+
|
|
180
|
+
Define a header row in a table, displaying column names and enabling sorting.
|
|
181
|
+
|
|
182
|
+
## Slots
|
|
183
|
+
|
|
184
|
+
* children
|
|
185
|
+
|
|
186
|
+
HTMLElement
|
|
187
|
+
|
|
188
|
+
Contents of the table heading row; children should be `TableHeading` components.
|
|
189
|
+
|
|
190
|
+
## TableRow
|
|
191
|
+
|
|
192
|
+
Display a row of data within the body of a table.
|
|
193
|
+
|
|
194
|
+
* clickDelegate
|
|
195
|
+
|
|
196
|
+
string
|
|
197
|
+
|
|
198
|
+
The ID of an interactive element (e.g. `s-link`) in the row that will be the target of the click when the row is clicked. This is the primary action for the row; it should not be used for secondary actions.
|
|
199
|
+
|
|
200
|
+
This is a click-only affordance, and does not introduce any keyboard or screen reader affordances. Which is why the target element must be in the table; so that keyboard and screen reader users can interact with it normally.
|
|
201
|
+
|
|
202
|
+
## Slots
|
|
203
|
+
|
|
204
|
+
* children
|
|
205
|
+
|
|
206
|
+
HTMLElement
|
|
207
|
+
|
|
208
|
+
The content of a TableRow, which should be `TableCell` components.
|
|
209
|
+
|
|
210
|
+
Examples
|
|
211
|
+
|
|
212
|
+
### Examples
|
|
213
|
+
|
|
214
|
+
* #### Code
|
|
215
|
+
|
|
216
|
+
##### jsx
|
|
217
|
+
|
|
218
|
+
```jsx
|
|
219
|
+
<s-section padding="none">
|
|
220
|
+
<s-table>
|
|
221
|
+
<s-table-header-row>
|
|
222
|
+
<s-table-header>Name</s-table-header>
|
|
223
|
+
<s-table-header>Email</s-table-header>
|
|
224
|
+
<s-table-header format="numeric">Orders placed</s-table-header>
|
|
225
|
+
<s-table-header>Phone</s-table-header>
|
|
226
|
+
</s-table-header-row>
|
|
227
|
+
<s-table-body>
|
|
228
|
+
<s-table-row>
|
|
229
|
+
<s-table-cell>John Smith</s-table-cell>
|
|
230
|
+
<s-table-cell>john@example.com</s-table-cell>
|
|
231
|
+
<s-table-cell>23</s-table-cell>
|
|
232
|
+
<s-table-cell>123-456-7890</s-table-cell>
|
|
233
|
+
</s-table-row>
|
|
234
|
+
<s-table-row>
|
|
235
|
+
<s-table-cell>Jane Johnson</s-table-cell>
|
|
236
|
+
<s-table-cell>jane@example.com</s-table-cell>
|
|
237
|
+
<s-table-cell>15</s-table-cell>
|
|
238
|
+
<s-table-cell>234-567-8901</s-table-cell>
|
|
239
|
+
</s-table-row>
|
|
240
|
+
<s-table-row>
|
|
241
|
+
<s-table-cell>Brandon Williams</s-table-cell>
|
|
242
|
+
<s-table-cell>brandon@example.com</s-table-cell>
|
|
243
|
+
<s-table-cell>42</s-table-cell>
|
|
244
|
+
<s-table-cell>345-678-9012</s-table-cell>
|
|
245
|
+
</s-table-row>
|
|
246
|
+
</s-table-body>
|
|
247
|
+
</s-table>
|
|
248
|
+
</s-section>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
##### html
|
|
252
|
+
|
|
253
|
+
```html
|
|
254
|
+
<s-section padding="none">
|
|
255
|
+
<s-table>
|
|
256
|
+
<s-table-header-row>
|
|
257
|
+
<s-table-header>Name</s-table-header>
|
|
258
|
+
<s-table-header>Email</s-table-header>
|
|
259
|
+
<s-table-header format="numeric">Orders placed</s-table-header>
|
|
260
|
+
<s-table-header>Phone</s-table-header>
|
|
261
|
+
</s-table-header-row>
|
|
262
|
+
<s-table-body>
|
|
263
|
+
<s-table-row>
|
|
264
|
+
<s-table-cell>John Smith</s-table-cell>
|
|
265
|
+
<s-table-cell>john@example.com</s-table-cell>
|
|
266
|
+
<s-table-cell>23</s-table-cell>
|
|
267
|
+
<s-table-cell>123-456-7890</s-table-cell>
|
|
268
|
+
</s-table-row>
|
|
269
|
+
<s-table-row>
|
|
270
|
+
<s-table-cell>Jane Johnson</s-table-cell>
|
|
271
|
+
<s-table-cell>jane@example.com</s-table-cell>
|
|
272
|
+
<s-table-cell>15</s-table-cell>
|
|
273
|
+
<s-table-cell>234-567-8901</s-table-cell>
|
|
274
|
+
</s-table-row>
|
|
275
|
+
<s-table-row>
|
|
276
|
+
<s-table-cell>Brandon Williams</s-table-cell>
|
|
277
|
+
<s-table-cell>brandon@example.com</s-table-cell>
|
|
278
|
+
<s-table-cell>42</s-table-cell>
|
|
279
|
+
<s-table-cell>345-678-9012</s-table-cell>
|
|
280
|
+
</s-table-row>
|
|
281
|
+
</s-table-body>
|
|
282
|
+
</s-table>
|
|
283
|
+
</s-section>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
* #### Basic Usage
|
|
287
|
+
|
|
288
|
+
##### Description
|
|
289
|
+
|
|
290
|
+
Tables expand to full width by default.
|
|
291
|
+
|
|
292
|
+
##### jsx
|
|
293
|
+
|
|
294
|
+
```jsx
|
|
295
|
+
<s-section padding="none">
|
|
296
|
+
<s-table>
|
|
297
|
+
<s-table-header-row>
|
|
298
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
299
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
300
|
+
<s-table-header listSlot="labeled">Inventory</s-table-header>
|
|
301
|
+
<s-table-header listSlot="labeled">Price</s-table-header>
|
|
302
|
+
</s-table-header-row>
|
|
303
|
+
|
|
304
|
+
<s-table-body>
|
|
305
|
+
<s-table-row>
|
|
306
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
307
|
+
<s-table-cell>
|
|
308
|
+
<s-badge tone="success">Active</s-badge>
|
|
309
|
+
</s-table-cell>
|
|
310
|
+
<s-table-cell>128</s-table-cell>
|
|
311
|
+
<s-table-cell>$24.99</s-table-cell>
|
|
312
|
+
</s-table-row>
|
|
313
|
+
<s-table-row>
|
|
314
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
315
|
+
<s-table-cell>
|
|
316
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
317
|
+
</s-table-cell>
|
|
318
|
+
<s-table-cell>15</s-table-cell>
|
|
319
|
+
<s-table-cell>$19.99</s-table-cell>
|
|
320
|
+
</s-table-row>
|
|
321
|
+
<s-table-row>
|
|
322
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
323
|
+
<s-table-cell>
|
|
324
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
325
|
+
</s-table-cell>
|
|
326
|
+
<s-table-cell>0</s-table-cell>
|
|
327
|
+
<s-table-cell>$34.99</s-table-cell>
|
|
328
|
+
</s-table-row>
|
|
329
|
+
</s-table-body>
|
|
330
|
+
</s-table>
|
|
331
|
+
</s-section>
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
##### html
|
|
335
|
+
|
|
336
|
+
```html
|
|
337
|
+
<s-section padding="none">
|
|
338
|
+
<s-table>
|
|
339
|
+
<s-table-header-row>
|
|
340
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
341
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
342
|
+
<s-table-header listSlot="labeled">Inventory</s-table-header>
|
|
343
|
+
<s-table-header listSlot="labeled">Price</s-table-header>
|
|
344
|
+
</s-table-header-row>
|
|
345
|
+
|
|
346
|
+
<s-table-body>
|
|
347
|
+
<s-table-row>
|
|
348
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
349
|
+
<s-table-cell>
|
|
350
|
+
<s-badge tone="success">Active</s-badge>
|
|
351
|
+
</s-table-cell>
|
|
352
|
+
<s-table-cell>128</s-table-cell>
|
|
353
|
+
<s-table-cell>$24.99</s-table-cell>
|
|
354
|
+
</s-table-row>
|
|
355
|
+
<s-table-row>
|
|
356
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
357
|
+
<s-table-cell>
|
|
358
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
359
|
+
</s-table-cell>
|
|
360
|
+
<s-table-cell>15</s-table-cell>
|
|
361
|
+
<s-table-cell>$19.99</s-table-cell>
|
|
362
|
+
</s-table-row>
|
|
363
|
+
<s-table-row>
|
|
364
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
365
|
+
<s-table-cell>
|
|
366
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
367
|
+
</s-table-cell>
|
|
368
|
+
<s-table-cell>0</s-table-cell>
|
|
369
|
+
<s-table-cell>$34.99</s-table-cell>
|
|
370
|
+
</s-table-row>
|
|
371
|
+
</s-table-body>
|
|
372
|
+
</s-table>
|
|
373
|
+
</s-section>
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
* #### With Pagination
|
|
377
|
+
|
|
378
|
+
##### Description
|
|
379
|
+
|
|
380
|
+
Add pagination controls for navigating large datasets.
|
|
381
|
+
|
|
382
|
+
##### jsx
|
|
383
|
+
|
|
384
|
+
```jsx
|
|
385
|
+
<s-section padding="none">
|
|
386
|
+
<s-table paginate hasPreviousPage hasNextPage>
|
|
387
|
+
<s-table-header-row>
|
|
388
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
389
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
390
|
+
<s-table-header listSlot="secondary" format="numeric">Sales</s-table-header>
|
|
391
|
+
</s-table-header-row>
|
|
392
|
+
|
|
393
|
+
<s-table-body>
|
|
394
|
+
<s-table-row>
|
|
395
|
+
<s-table-cell>Product 1</s-table-cell>
|
|
396
|
+
<s-table-cell>Active</s-table-cell>
|
|
397
|
+
<s-table-cell>250</s-table-cell>
|
|
398
|
+
</s-table-row>
|
|
399
|
+
<s-table-row>
|
|
400
|
+
<s-table-cell>Product 2</s-table-cell>
|
|
401
|
+
<s-table-cell>Active</s-table-cell>
|
|
402
|
+
<s-table-cell>180</s-table-cell>
|
|
403
|
+
</s-table-row>
|
|
404
|
+
<s-table-row>
|
|
405
|
+
<s-table-cell>Product 3</s-table-cell>
|
|
406
|
+
<s-table-cell>Paused</s-table-cell>
|
|
407
|
+
<s-table-cell>95</s-table-cell>
|
|
408
|
+
</s-table-row>
|
|
409
|
+
</s-table-body>
|
|
410
|
+
</s-table>
|
|
411
|
+
</s-section>
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
##### html
|
|
415
|
+
|
|
416
|
+
```html
|
|
417
|
+
<s-section padding="none">
|
|
418
|
+
<s-table paginate hasPreviousPage hasNextPage>
|
|
419
|
+
<s-table-header-row>
|
|
420
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
421
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
422
|
+
<s-table-header listSlot="secondary" format="numeric">Sales</s-table-header>
|
|
423
|
+
</s-table-header-row>
|
|
424
|
+
|
|
425
|
+
<s-table-body>
|
|
426
|
+
<s-table-row>
|
|
427
|
+
<s-table-cell>Product 1</s-table-cell>
|
|
428
|
+
<s-table-cell>Active</s-table-cell>
|
|
429
|
+
<s-table-cell>250</s-table-cell>
|
|
430
|
+
</s-table-row>
|
|
431
|
+
<s-table-row>
|
|
432
|
+
<s-table-cell>Product 2</s-table-cell>
|
|
433
|
+
<s-table-cell>Active</s-table-cell>
|
|
434
|
+
<s-table-cell>180</s-table-cell>
|
|
435
|
+
</s-table-row>
|
|
436
|
+
<s-table-row>
|
|
437
|
+
<s-table-cell>Product 3</s-table-cell>
|
|
438
|
+
<s-table-cell>Paused</s-table-cell>
|
|
439
|
+
<s-table-cell>95</s-table-cell>
|
|
440
|
+
</s-table-row>
|
|
441
|
+
</s-table-body>
|
|
442
|
+
</s-table>
|
|
443
|
+
</s-section>
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
* #### With Loading State
|
|
447
|
+
|
|
448
|
+
##### Description
|
|
449
|
+
|
|
450
|
+
Display a loading state while fetching data.
|
|
451
|
+
|
|
452
|
+
##### jsx
|
|
453
|
+
|
|
454
|
+
```jsx
|
|
455
|
+
<s-section padding="none">
|
|
456
|
+
<s-table loading>
|
|
457
|
+
<s-table-header-row>
|
|
458
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
459
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
460
|
+
<s-table-header listSlot="labeled">Inventory</s-table-header>
|
|
461
|
+
</s-table-header-row>
|
|
462
|
+
|
|
463
|
+
<s-table-body>
|
|
464
|
+
<s-table-row>
|
|
465
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
466
|
+
<s-table-cell>
|
|
467
|
+
<s-badge tone="success">Active</s-badge>
|
|
468
|
+
</s-table-cell>
|
|
469
|
+
<s-table-cell>128</s-table-cell>
|
|
470
|
+
</s-table-row>
|
|
471
|
+
<s-table-row>
|
|
472
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
473
|
+
<s-table-cell>
|
|
474
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
475
|
+
</s-table-cell>
|
|
476
|
+
<s-table-cell>15</s-table-cell>
|
|
477
|
+
</s-table-row>
|
|
478
|
+
<s-table-row>
|
|
479
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
480
|
+
<s-table-cell>
|
|
481
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
482
|
+
</s-table-cell>
|
|
483
|
+
<s-table-cell>0</s-table-cell>
|
|
484
|
+
</s-table-row>
|
|
485
|
+
<s-table-row>
|
|
486
|
+
<s-table-cell>Notebook set</s-table-cell>
|
|
487
|
+
<s-table-cell>
|
|
488
|
+
<s-badge tone="success">Active</s-badge>
|
|
489
|
+
</s-table-cell>
|
|
490
|
+
<s-table-cell>245</s-table-cell>
|
|
491
|
+
</s-table-row>
|
|
492
|
+
</s-table-body>
|
|
493
|
+
</s-table>
|
|
494
|
+
</s-section>
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
##### html
|
|
498
|
+
|
|
499
|
+
```html
|
|
500
|
+
<s-section padding="none">
|
|
501
|
+
<s-table loading>
|
|
502
|
+
<s-table-header-row>
|
|
503
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
504
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
505
|
+
<s-table-header listSlot="labeled">Inventory</s-table-header>
|
|
506
|
+
</s-table-header-row>
|
|
507
|
+
|
|
508
|
+
<s-table-body>
|
|
509
|
+
<s-table-row>
|
|
510
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
511
|
+
<s-table-cell>
|
|
512
|
+
<s-badge tone="success">Active</s-badge>
|
|
513
|
+
</s-table-cell>
|
|
514
|
+
<s-table-cell>128</s-table-cell>
|
|
515
|
+
</s-table-row>
|
|
516
|
+
<s-table-row>
|
|
517
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
518
|
+
<s-table-cell>
|
|
519
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
520
|
+
</s-table-cell>
|
|
521
|
+
<s-table-cell>15</s-table-cell>
|
|
522
|
+
</s-table-row>
|
|
523
|
+
<s-table-row>
|
|
524
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
525
|
+
<s-table-cell>
|
|
526
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
527
|
+
</s-table-cell>
|
|
528
|
+
<s-table-cell>0</s-table-cell>
|
|
529
|
+
</s-table-row>
|
|
530
|
+
<s-table-row>
|
|
531
|
+
<s-table-cell>Notebook set</s-table-cell>
|
|
532
|
+
<s-table-cell>
|
|
533
|
+
<s-badge tone="success">Active</s-badge>
|
|
534
|
+
</s-table-cell>
|
|
535
|
+
<s-table-cell>245</s-table-cell>
|
|
536
|
+
</s-table-row>
|
|
537
|
+
</s-table-body>
|
|
538
|
+
</s-table>
|
|
539
|
+
</s-section>
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
* #### Full-width table with multiple columns
|
|
543
|
+
|
|
544
|
+
##### Description
|
|
545
|
+
|
|
546
|
+
Display multiple columns in a full-width table.
|
|
547
|
+
|
|
548
|
+
##### jsx
|
|
549
|
+
|
|
550
|
+
```jsx
|
|
551
|
+
<s-section padding="none">
|
|
552
|
+
<s-table>
|
|
553
|
+
<s-table-header-row>
|
|
554
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
555
|
+
<s-table-header listSlot="kicker">SKU</s-table-header>
|
|
556
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
557
|
+
<s-table-header listSlot="labeled" format="numeric">Inventory</s-table-header>
|
|
558
|
+
<s-table-header listSlot="labeled" format="currency">Price</s-table-header>
|
|
559
|
+
<s-table-header listSlot="labeled">Last updated</s-table-header>
|
|
560
|
+
</s-table-header-row>
|
|
561
|
+
|
|
562
|
+
<s-table-body>
|
|
563
|
+
<s-table-row>
|
|
564
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
565
|
+
<s-table-cell>WB-001</s-table-cell>
|
|
566
|
+
<s-table-cell>
|
|
567
|
+
<s-badge tone="success">Active</s-badge>
|
|
568
|
+
</s-table-cell>
|
|
569
|
+
<s-table-cell>128</s-table-cell>
|
|
570
|
+
<s-table-cell>$24.99</s-table-cell>
|
|
571
|
+
<s-table-cell>2 hours ago</s-table-cell>
|
|
572
|
+
</s-table-row>
|
|
573
|
+
<s-table-row>
|
|
574
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
575
|
+
<s-table-cell>TS-002</s-table-cell>
|
|
576
|
+
<s-table-cell>
|
|
577
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
578
|
+
</s-table-cell>
|
|
579
|
+
<s-table-cell>15</s-table-cell>
|
|
580
|
+
<s-table-cell>$19.99</s-table-cell>
|
|
581
|
+
<s-table-cell>1 day ago</s-table-cell>
|
|
582
|
+
</s-table-row>
|
|
583
|
+
<s-table-row>
|
|
584
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
585
|
+
<s-table-cell>CB-003</s-table-cell>
|
|
586
|
+
<s-table-cell>
|
|
587
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
588
|
+
</s-table-cell>
|
|
589
|
+
<s-table-cell>0</s-table-cell>
|
|
590
|
+
<s-table-cell>$34.99</s-table-cell>
|
|
591
|
+
<s-table-cell>3 days ago</s-table-cell>
|
|
592
|
+
</s-table-row>
|
|
593
|
+
<s-table-row>
|
|
594
|
+
<s-table-cell>Notebook set</s-table-cell>
|
|
595
|
+
<s-table-cell>NB-004</s-table-cell>
|
|
596
|
+
<s-table-cell>
|
|
597
|
+
<s-badge tone="success">Active</s-badge>
|
|
598
|
+
</s-table-cell>
|
|
599
|
+
<s-table-cell>245</s-table-cell>
|
|
600
|
+
<s-table-cell>$12.99</s-table-cell>
|
|
601
|
+
<s-table-cell>5 hours ago</s-table-cell>
|
|
602
|
+
</s-table-row>
|
|
603
|
+
<s-table-row>
|
|
604
|
+
<s-table-cell>Stainless steel straws</s-table-cell>
|
|
605
|
+
<s-table-cell>SS-005</s-table-cell>
|
|
606
|
+
<s-table-cell>
|
|
607
|
+
<s-badge tone="success">Active</s-badge>
|
|
608
|
+
</s-table-cell>
|
|
609
|
+
<s-table-cell>89</s-table-cell>
|
|
610
|
+
<s-table-cell>$9.99</s-table-cell>
|
|
611
|
+
<s-table-cell>1 hour ago</s-table-cell>
|
|
612
|
+
</s-table-row>
|
|
613
|
+
</s-table-body>
|
|
614
|
+
</s-table>
|
|
615
|
+
</s-section>
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
##### html
|
|
619
|
+
|
|
620
|
+
```html
|
|
621
|
+
<s-section padding="none">
|
|
622
|
+
<s-table>
|
|
623
|
+
<s-table-header-row>
|
|
624
|
+
<s-table-header listSlot="primary">Product</s-table-header>
|
|
625
|
+
<s-table-header listSlot="kicker">SKU</s-table-header>
|
|
626
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
627
|
+
<s-table-header listSlot="labeled" format="numeric">Inventory</s-table-header>
|
|
628
|
+
<s-table-header listSlot="labeled" format="currency">Price</s-table-header>
|
|
629
|
+
<s-table-header listSlot="labeled">Last updated</s-table-header>
|
|
630
|
+
</s-table-header-row>
|
|
631
|
+
|
|
632
|
+
<s-table-body>
|
|
633
|
+
<s-table-row>
|
|
634
|
+
<s-table-cell>Water bottle</s-table-cell>
|
|
635
|
+
<s-table-cell>WB-001</s-table-cell>
|
|
636
|
+
<s-table-cell>
|
|
637
|
+
<s-badge tone="success">Active</s-badge>
|
|
638
|
+
</s-table-cell>
|
|
639
|
+
<s-table-cell>128</s-table-cell>
|
|
640
|
+
<s-table-cell>$24.99</s-table-cell>
|
|
641
|
+
<s-table-cell>2 hours ago</s-table-cell>
|
|
642
|
+
</s-table-row>
|
|
643
|
+
<s-table-row>
|
|
644
|
+
<s-table-cell>T-shirt</s-table-cell>
|
|
645
|
+
<s-table-cell>TS-002</s-table-cell>
|
|
646
|
+
<s-table-cell>
|
|
647
|
+
<s-badge tone="warning">Low stock</s-badge>
|
|
648
|
+
</s-table-cell>
|
|
649
|
+
<s-table-cell>15</s-table-cell>
|
|
650
|
+
<s-table-cell>$19.99</s-table-cell>
|
|
651
|
+
<s-table-cell>1 day ago</s-table-cell>
|
|
652
|
+
</s-table-row>
|
|
653
|
+
<s-table-row>
|
|
654
|
+
<s-table-cell>Cutting board</s-table-cell>
|
|
655
|
+
<s-table-cell>CB-003</s-table-cell>
|
|
656
|
+
<s-table-cell>
|
|
657
|
+
<s-badge tone="critical">Out of stock</s-badge>
|
|
658
|
+
</s-table-cell>
|
|
659
|
+
<s-table-cell>0</s-table-cell>
|
|
660
|
+
<s-table-cell>$34.99</s-table-cell>
|
|
661
|
+
<s-table-cell>3 days ago</s-table-cell>
|
|
662
|
+
</s-table-row>
|
|
663
|
+
<s-table-row>
|
|
664
|
+
<s-table-cell>Notebook set</s-table-cell>
|
|
665
|
+
<s-table-cell>NB-004</s-table-cell>
|
|
666
|
+
<s-table-cell>
|
|
667
|
+
<s-badge tone="success">Active</s-badge>
|
|
668
|
+
</s-table-cell>
|
|
669
|
+
<s-table-cell>245</s-table-cell>
|
|
670
|
+
<s-table-cell>$12.99</s-table-cell>
|
|
671
|
+
<s-table-cell>5 hours ago</s-table-cell>
|
|
672
|
+
</s-table-row>
|
|
673
|
+
<s-table-row>
|
|
674
|
+
<s-table-cell>Stainless steel straws</s-table-cell>
|
|
675
|
+
<s-table-cell>SS-005</s-table-cell>
|
|
676
|
+
<s-table-cell>
|
|
677
|
+
<s-badge tone="success">Active</s-badge>
|
|
678
|
+
</s-table-cell>
|
|
679
|
+
<s-table-cell>89</s-table-cell>
|
|
680
|
+
<s-table-cell>$9.99</s-table-cell>
|
|
681
|
+
<s-table-cell>1 hour ago</s-table-cell>
|
|
682
|
+
</s-table-row>
|
|
683
|
+
</s-table-body>
|
|
684
|
+
</s-table>
|
|
685
|
+
</s-section>
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
* #### List Variant
|
|
689
|
+
|
|
690
|
+
##### Description
|
|
691
|
+
|
|
692
|
+
Display data using the list variant with specialized slot types. List is the default variant on mobile devices.
|
|
693
|
+
|
|
694
|
+
##### jsx
|
|
695
|
+
|
|
696
|
+
```jsx
|
|
697
|
+
<s-section padding="none">
|
|
698
|
+
<s-table variant="list">
|
|
699
|
+
<s-table-header-row>
|
|
700
|
+
<s-table-header listSlot="kicker">ID</s-table-header>
|
|
701
|
+
<s-table-header listSlot="primary">Customer</s-table-header>
|
|
702
|
+
<s-table-header listSlot="secondary">Email</s-table-header>
|
|
703
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
704
|
+
<s-table-header listSlot="labeled" format="numeric">Orders</s-table-header>
|
|
705
|
+
<s-table-header listSlot="labeled" format="currency">Total spent</s-table-header>
|
|
706
|
+
</s-table-header-row>
|
|
707
|
+
<s-table-body>
|
|
708
|
+
<s-table-row>
|
|
709
|
+
<s-table-cell>#1001</s-table-cell>
|
|
710
|
+
<s-table-cell>Sarah Johnson</s-table-cell>
|
|
711
|
+
<s-table-cell>sarah@example.com</s-table-cell>
|
|
712
|
+
<s-table-cell>
|
|
713
|
+
<s-badge tone="success">Active</s-badge>
|
|
714
|
+
</s-table-cell>
|
|
715
|
+
<s-table-cell>23</s-table-cell>
|
|
716
|
+
<s-table-cell>$1,245.50</s-table-cell>
|
|
717
|
+
</s-table-row>
|
|
718
|
+
<s-table-row>
|
|
719
|
+
<s-table-cell>#1002</s-table-cell>
|
|
720
|
+
<s-table-cell>Mike Chen</s-table-cell>
|
|
721
|
+
<s-table-cell>mike@example.com</s-table-cell>
|
|
722
|
+
<s-table-cell>
|
|
723
|
+
<s-badge tone="neutral">Inactive</s-badge>
|
|
724
|
+
</s-table-cell>
|
|
725
|
+
<s-table-cell>7</s-table-cell>
|
|
726
|
+
<s-table-cell>$432.75</s-table-cell>
|
|
727
|
+
</s-table-row>
|
|
728
|
+
<s-table-row>
|
|
729
|
+
<s-table-cell>#1003</s-table-cell>
|
|
730
|
+
<s-table-cell>Emma Davis</s-table-cell>
|
|
731
|
+
<s-table-cell>emma@example.com</s-table-cell>
|
|
732
|
+
<s-table-cell>
|
|
733
|
+
<s-badge tone="success">Active</s-badge>
|
|
734
|
+
</s-table-cell>
|
|
735
|
+
<s-table-cell>15</s-table-cell>
|
|
736
|
+
<s-table-cell>$892.25</s-table-cell>
|
|
737
|
+
</s-table-row>
|
|
738
|
+
</s-table-body>
|
|
739
|
+
</s-table>
|
|
740
|
+
</s-section>
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
##### html
|
|
744
|
+
|
|
745
|
+
```html
|
|
746
|
+
<s-section padding="none">
|
|
747
|
+
<s-table variant="list">
|
|
748
|
+
<s-table-header-row>
|
|
749
|
+
<s-table-header listSlot="kicker">ID</s-table-header>
|
|
750
|
+
<s-table-header listSlot="primary">Customer</s-table-header>
|
|
751
|
+
<s-table-header listSlot="secondary">Email</s-table-header>
|
|
752
|
+
<s-table-header listSlot="inline">Status</s-table-header>
|
|
753
|
+
<s-table-header listSlot="labeled" format="numeric">
|
|
754
|
+
Orders
|
|
755
|
+
</s-table-header>
|
|
756
|
+
<s-table-header listSlot="labeled" format="currency">
|
|
757
|
+
Total spent
|
|
758
|
+
</s-table-header>
|
|
759
|
+
</s-table-header-row>
|
|
760
|
+
<s-table-body>
|
|
761
|
+
<s-table-row>
|
|
762
|
+
<s-table-cell>#1001</s-table-cell>
|
|
763
|
+
<s-table-cell>Sarah Johnson</s-table-cell>
|
|
764
|
+
<s-table-cell>sarah@example.com</s-table-cell>
|
|
765
|
+
<s-table-cell>
|
|
766
|
+
<s-badge tone="success">Active</s-badge>
|
|
767
|
+
</s-table-cell>
|
|
768
|
+
<s-table-cell>23</s-table-cell>
|
|
769
|
+
<s-table-cell>$1,245.50</s-table-cell>
|
|
770
|
+
</s-table-row>
|
|
771
|
+
<s-table-row>
|
|
772
|
+
<s-table-cell>#1002</s-table-cell>
|
|
773
|
+
<s-table-cell>Mike Chen</s-table-cell>
|
|
774
|
+
<s-table-cell>mike@example.com</s-table-cell>
|
|
775
|
+
<s-table-cell>
|
|
776
|
+
<s-badge tone="neutral">Inactive</s-badge>
|
|
777
|
+
</s-table-cell>
|
|
778
|
+
<s-table-cell>7</s-table-cell>
|
|
779
|
+
<s-table-cell>$432.75</s-table-cell>
|
|
780
|
+
</s-table-row>
|
|
781
|
+
<s-table-row>
|
|
782
|
+
<s-table-cell>#1003</s-table-cell>
|
|
783
|
+
<s-table-cell>Emma Davis</s-table-cell>
|
|
784
|
+
<s-table-cell>emma@example.com</s-table-cell>
|
|
785
|
+
<s-table-cell>
|
|
786
|
+
<s-badge tone="success">Active</s-badge>
|
|
787
|
+
</s-table-cell>
|
|
788
|
+
<s-table-cell>15</s-table-cell>
|
|
789
|
+
<s-table-cell>$892.25</s-table-cell>
|
|
790
|
+
</s-table-row>
|
|
791
|
+
</s-table-body>
|
|
792
|
+
</s-table>
|
|
793
|
+
</s-section>
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
## Best practices
|
|
797
|
+
|
|
798
|
+
* Use when displaying data with 3 or more attributes per item
|
|
799
|
+
* All items should share the same structure and attributes
|
|
800
|
+
* Don't use when data varies significantly between items (use a list instead)
|
|
801
|
+
* Tables automatically transform into lists on mobile devices
|
|
802
|
+
|
|
803
|
+
## Related
|
|
804
|
+
|
|
805
|
+
[Composition - Index table](https://shopify.dev/docs/api/app-home/patterns/compositions/index-table)
|