@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.
Files changed (51) hide show
  1. package/README.md +110 -0
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.js +325 -0
  4. package/docs/avatar.md +481 -0
  5. package/docs/badge.md +266 -0
  6. package/docs/banner.md +350 -0
  7. package/docs/box.md +618 -0
  8. package/docs/button.md +604 -0
  9. package/docs/buttongroup.md +251 -0
  10. package/docs/checkbox.md +346 -0
  11. package/docs/chip.md +261 -0
  12. package/docs/choicelist.md +416 -0
  13. package/docs/clickable.md +703 -0
  14. package/docs/clickablechip.md +377 -0
  15. package/docs/colorfield.md +416 -0
  16. package/docs/colorpicker.md +152 -0
  17. package/docs/datefield.md +706 -0
  18. package/docs/datepicker.md +443 -0
  19. package/docs/divider.md +263 -0
  20. package/docs/dropzone.md +331 -0
  21. package/docs/emailfield.md +377 -0
  22. package/docs/grid.md +1246 -0
  23. package/docs/heading.md +201 -0
  24. package/docs/icon.md +295 -0
  25. package/docs/image.md +517 -0
  26. package/docs/link.md +456 -0
  27. package/docs/menu.md +331 -0
  28. package/docs/modal.md +640 -0
  29. package/docs/moneyfield.md +385 -0
  30. package/docs/numberfield.md +393 -0
  31. package/docs/orderedlist.md +224 -0
  32. package/docs/page.md +319 -0
  33. package/docs/paragraph.md +333 -0
  34. package/docs/passwordfield.md +381 -0
  35. package/docs/popover.md +419 -0
  36. package/docs/querycontainer.md +121 -0
  37. package/docs/searchfield.md +319 -0
  38. package/docs/section.md +267 -0
  39. package/docs/select.md +449 -0
  40. package/docs/spinner.md +121 -0
  41. package/docs/stack.md +748 -0
  42. package/docs/switch.md +365 -0
  43. package/docs/table.md +805 -0
  44. package/docs/text.md +339 -0
  45. package/docs/textarea.md +328 -0
  46. package/docs/textfield.md +425 -0
  47. package/docs/thumbnail.md +245 -0
  48. package/docs/tooltip.md +130 -0
  49. package/docs/unorderedlist.md +135 -0
  50. package/docs/urlfield.md +314 -0
  51. 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)