@dropins/mcp 0.1.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 (103) hide show
  1. package/LICENSE.md +127 -0
  2. package/README.md +314 -0
  3. package/dist/common/project-reader.d.ts +55 -0
  4. package/dist/common/project-reader.js +173 -0
  5. package/dist/common/registry-loader.d.ts +101 -0
  6. package/dist/common/registry-loader.js +386 -0
  7. package/dist/common/response-handling.d.ts +12 -0
  8. package/dist/common/response-handling.js +21 -0
  9. package/dist/common/sanitize.d.ts +8 -0
  10. package/dist/common/sanitize.js +45 -0
  11. package/dist/common/synonyms.d.ts +9 -0
  12. package/dist/common/synonyms.js +127 -0
  13. package/dist/common/telemetry.d.ts +14 -0
  14. package/dist/common/telemetry.js +54 -0
  15. package/dist/common/types.d.ts +308 -0
  16. package/dist/common/types.js +1 -0
  17. package/dist/common/version.d.ts +2 -0
  18. package/dist/common/version.js +14 -0
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.js +136 -0
  21. package/dist/operations/analyze-project.d.ts +13 -0
  22. package/dist/operations/analyze-project.js +125 -0
  23. package/dist/operations/check-block-health.d.ts +19 -0
  24. package/dist/operations/check-block-health.js +1149 -0
  25. package/dist/operations/check-config.d.ts +13 -0
  26. package/dist/operations/check-config.js +228 -0
  27. package/dist/operations/explain-event-flow.d.ts +16 -0
  28. package/dist/operations/explain-event-flow.js +218 -0
  29. package/dist/operations/get-upgrade-diff.d.ts +13 -0
  30. package/dist/operations/get-upgrade-diff.js +144 -0
  31. package/dist/operations/list-api-functions.d.ts +13 -0
  32. package/dist/operations/list-api-functions.js +53 -0
  33. package/dist/operations/list-containers.d.ts +13 -0
  34. package/dist/operations/list-containers.js +44 -0
  35. package/dist/operations/list-design-tokens.d.ts +13 -0
  36. package/dist/operations/list-design-tokens.js +47 -0
  37. package/dist/operations/list-events.d.ts +16 -0
  38. package/dist/operations/list-events.js +39 -0
  39. package/dist/operations/list-graphql-queries.d.ts +19 -0
  40. package/dist/operations/list-graphql-queries.js +84 -0
  41. package/dist/operations/list-i18n-keys.d.ts +19 -0
  42. package/dist/operations/list-i18n-keys.js +105 -0
  43. package/dist/operations/list-models.d.ts +16 -0
  44. package/dist/operations/list-models.js +80 -0
  45. package/dist/operations/list-slots.d.ts +16 -0
  46. package/dist/operations/list-slots.js +81 -0
  47. package/dist/operations/scaffold-block.d.ts +31 -0
  48. package/dist/operations/scaffold-block.js +331 -0
  49. package/dist/operations/scaffold-extension.d.ts +28 -0
  50. package/dist/operations/scaffold-extension.js +346 -0
  51. package/dist/operations/scaffold-slot.d.ts +22 -0
  52. package/dist/operations/scaffold-slot.js +189 -0
  53. package/dist/operations/search-commerce-docs.d.ts +16 -0
  54. package/dist/operations/search-commerce-docs.js +101 -0
  55. package/dist/operations/search-docs.d.ts +23 -0
  56. package/dist/operations/search-docs.js +298 -0
  57. package/dist/operations/suggest-event-handler.d.ts +16 -0
  58. package/dist/operations/suggest-event-handler.js +175 -0
  59. package/dist/operations/suggest-slot-implementation.d.ts +19 -0
  60. package/dist/operations/suggest-slot-implementation.js +183 -0
  61. package/dist/registry/api-functions.json +3045 -0
  62. package/dist/registry/block-patterns.json +78 -0
  63. package/dist/registry/containers.json +2003 -0
  64. package/dist/registry/design-tokens.json +577 -0
  65. package/dist/registry/docs/boilerplate.json +55 -0
  66. package/dist/registry/docs/dropins-all.json +97 -0
  67. package/dist/registry/docs/dropins-b2b.json +607 -0
  68. package/dist/registry/docs/dropins-cart.json +163 -0
  69. package/dist/registry/docs/dropins-checkout.json +193 -0
  70. package/dist/registry/docs/dropins-order.json +139 -0
  71. package/dist/registry/docs/dropins-payment-services.json +73 -0
  72. package/dist/registry/docs/dropins-personalization.json +67 -0
  73. package/dist/registry/docs/dropins-product-details.json +139 -0
  74. package/dist/registry/docs/dropins-product-discovery.json +85 -0
  75. package/dist/registry/docs/dropins-recommendations.json +67 -0
  76. package/dist/registry/docs/dropins-user-account.json +121 -0
  77. package/dist/registry/docs/dropins-user-auth.json +103 -0
  78. package/dist/registry/docs/dropins-wishlist.json +85 -0
  79. package/dist/registry/docs/get-started.json +85 -0
  80. package/dist/registry/docs/how-tos.json +19 -0
  81. package/dist/registry/docs/index.json +139 -0
  82. package/dist/registry/docs/licensing.json +19 -0
  83. package/dist/registry/docs/merchants.json +523 -0
  84. package/dist/registry/docs/resources.json +13 -0
  85. package/dist/registry/docs/sdk.json +139 -0
  86. package/dist/registry/docs/setup.json +145 -0
  87. package/dist/registry/docs/troubleshooting.json +19 -0
  88. package/dist/registry/events.json +2200 -0
  89. package/dist/registry/examples/index.json +19 -0
  90. package/dist/registry/examples/storefront-checkout.json +377 -0
  91. package/dist/registry/examples/storefront-quote-management.json +49 -0
  92. package/dist/registry/extensions.json +272 -0
  93. package/dist/registry/graphql.json +3469 -0
  94. package/dist/registry/i18n.json +1873 -0
  95. package/dist/registry/models.json +1001 -0
  96. package/dist/registry/sdk.json +2357 -0
  97. package/dist/registry/slots.json +2270 -0
  98. package/dist/registry/tools-components.json +595 -0
  99. package/dist/resources/guides.d.ts +7 -0
  100. package/dist/resources/guides.js +625 -0
  101. package/dist/resources/handlers.d.ts +31 -0
  102. package/dist/resources/handlers.js +322 -0
  103. package/package.json +47 -0
@@ -0,0 +1,2357 @@
1
+ {
2
+ "description": "StorefrontSDK packages — shared libraries used across all drop-ins",
3
+ "packages": {
4
+ "elsie": {
5
+ "name": "@adobe-commerce/elsie",
6
+ "description": "Domain Package SDK — UI components, utilities, and CLI for building storefront drop-ins",
7
+ "importPath": "@adobe-commerce/elsie",
8
+ "components": [
9
+ {
10
+ "name": "Accordion",
11
+ "description": "Expandable content sections",
12
+ "propsInterface": "AccordionProps",
13
+ "props": [
14
+ {
15
+ "name": "actionIconPosition",
16
+ "type": "'left' | 'right'",
17
+ "required": false
18
+ },
19
+ {
20
+ "name": "iconOpen",
21
+ "type": "IconNode",
22
+ "required": false
23
+ },
24
+ {
25
+ "name": "iconClose",
26
+ "type": "IconNode",
27
+ "required": false
28
+ },
29
+ {
30
+ "name": "iconLeft",
31
+ "type": "IconNode",
32
+ "required": false
33
+ },
34
+ {
35
+ "name": "showIconLeft",
36
+ "type": "boolean",
37
+ "required": false
38
+ },
39
+ {
40
+ "name": "secondaryText",
41
+ "type": "string | VNode<HTMLAttributes<HTMLSpanElement>>",
42
+ "required": false,
43
+ "isSlot": true
44
+ },
45
+ {
46
+ "name": "children",
47
+ "type": "VNode<AccordionSectionProps>[] | VNode<AccordionSectionProps>",
48
+ "required": true,
49
+ "isSlot": true
50
+ }
51
+ ],
52
+ "slots": [
53
+ "secondaryText",
54
+ "children"
55
+ ],
56
+ "extends": "HTMLAttributes<HTMLDivElement>",
57
+ "omits": [
58
+ "icon"
59
+ ]
60
+ },
61
+ {
62
+ "name": "ActionButton",
63
+ "description": "Action-style button",
64
+ "propsInterface": "ActionButtonProps",
65
+ "props": [
66
+ {
67
+ "name": "children",
68
+ "type": "ComponentChildren",
69
+ "required": false
70
+ },
71
+ {
72
+ "name": "icon",
73
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
74
+ "required": false,
75
+ "isSlot": true
76
+ },
77
+ {
78
+ "name": "active",
79
+ "type": "boolean",
80
+ "required": false
81
+ },
82
+ {
83
+ "name": "disabled",
84
+ "type": "boolean",
85
+ "required": false
86
+ }
87
+ ],
88
+ "slots": [
89
+ "icon"
90
+ ],
91
+ "extends": "HTMLAttributes<HTMLButtonElement>",
92
+ "omits": [
93
+ "icon"
94
+ ]
95
+ },
96
+ {
97
+ "name": "ActionButtonGroup",
98
+ "description": "Group of action buttons",
99
+ "propsInterface": "ActionButtonGroupProps",
100
+ "props": [
101
+ {
102
+ "name": "variant",
103
+ "type": "'primary' | 'secondary'",
104
+ "required": false
105
+ },
106
+ {
107
+ "name": "activeOption",
108
+ "type": "string",
109
+ "required": false
110
+ },
111
+ {
112
+ "name": "disabled",
113
+ "type": "boolean",
114
+ "required": false
115
+ },
116
+ {
117
+ "name": "dividers",
118
+ "type": "boolean",
119
+ "required": false
120
+ },
121
+ {
122
+ "name": "children",
123
+ "type": "VNode<ActionButtonProps>[] | VNode<ActionButtonProps>",
124
+ "required": true,
125
+ "isSlot": true
126
+ }
127
+ ],
128
+ "slots": [
129
+ "children"
130
+ ],
131
+ "extends": "HTMLAttributes<HTMLDivElement>"
132
+ },
133
+ {
134
+ "name": "AlertBanner",
135
+ "description": "Alert banner",
136
+ "propsInterface": "AlertBannerProps",
137
+ "props": [
138
+ {
139
+ "name": "variant",
140
+ "type": "'brand' | 'neutral' | 'success' | 'warning'",
141
+ "required": true
142
+ },
143
+ {
144
+ "name": "icon",
145
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
146
+ "required": false,
147
+ "isSlot": true
148
+ },
149
+ {
150
+ "name": "message",
151
+ "type": "VNode",
152
+ "required": true,
153
+ "isSlot": true
154
+ },
155
+ {
156
+ "name": "onDismiss",
157
+ "type": "() => void",
158
+ "required": true
159
+ },
160
+ {
161
+ "name": "action",
162
+ "type": "{ label: string; onClick: (event: Event) => void; }",
163
+ "required": false
164
+ }
165
+ ],
166
+ "slots": [
167
+ "icon",
168
+ "message"
169
+ ],
170
+ "extends": "HTMLAttributes<HTMLDivElement>",
171
+ "omits": [
172
+ "icon",
173
+ "action"
174
+ ]
175
+ },
176
+ {
177
+ "name": "Breadcrumbs",
178
+ "description": "Breadcrumb navigation",
179
+ "propsInterface": "BreadcrumbsProps",
180
+ "props": [
181
+ {
182
+ "name": "categories",
183
+ "type": "VNode[]",
184
+ "required": true,
185
+ "isSlot": true
186
+ },
187
+ {
188
+ "name": "separator",
189
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
190
+ "required": false,
191
+ "isSlot": true
192
+ }
193
+ ],
194
+ "slots": [
195
+ "categories",
196
+ "separator"
197
+ ],
198
+ "extends": "HTMLAttributes<HTMLElement>"
199
+ },
200
+ {
201
+ "name": "Button",
202
+ "description": "Primary button (variants: primary, secondary, tertiary)",
203
+ "propsInterface": "ButtonProps",
204
+ "props": [
205
+ {
206
+ "name": "variant",
207
+ "type": "'primary' | 'secondary' | 'tertiary'",
208
+ "required": false
209
+ },
210
+ {
211
+ "name": "size",
212
+ "type": "'medium' | 'large'",
213
+ "required": false
214
+ },
215
+ {
216
+ "name": "children",
217
+ "type": "ComponentChildren",
218
+ "required": false
219
+ },
220
+ {
221
+ "name": "icon",
222
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
223
+ "required": false,
224
+ "isSlot": true
225
+ },
226
+ {
227
+ "name": "disabled",
228
+ "type": "boolean",
229
+ "required": false
230
+ },
231
+ {
232
+ "name": "active",
233
+ "type": "boolean",
234
+ "required": false
235
+ },
236
+ {
237
+ "name": "activeChildren",
238
+ "type": "ComponentChildren",
239
+ "required": false
240
+ },
241
+ {
242
+ "name": "activeIcon",
243
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
244
+ "required": false,
245
+ "isSlot": true
246
+ },
247
+ {
248
+ "name": "href",
249
+ "type": "string",
250
+ "required": false
251
+ },
252
+ {
253
+ "name": "type",
254
+ "type": "'button' | 'submit' | 'reset'",
255
+ "required": false
256
+ }
257
+ ],
258
+ "slots": [
259
+ "icon",
260
+ "activeIcon"
261
+ ],
262
+ "extends": "HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>",
263
+ "omits": [
264
+ "size",
265
+ "icon"
266
+ ]
267
+ },
268
+ {
269
+ "name": "Card",
270
+ "description": "Card container",
271
+ "propsInterface": "CardProps",
272
+ "props": [
273
+ {
274
+ "name": "variant",
275
+ "type": "'primary' | 'secondary'",
276
+ "required": false
277
+ },
278
+ {
279
+ "name": "children",
280
+ "type": "ComponentChildren | ComponentChildren[]",
281
+ "required": true
282
+ }
283
+ ],
284
+ "extends": "HTMLAttributes<HTMLDivElement>"
285
+ },
286
+ {
287
+ "name": "CartItem",
288
+ "description": "Single cart item display",
289
+ "propsInterface": "CartItemProps",
290
+ "props": [
291
+ {
292
+ "name": "ariaLabel",
293
+ "type": "string",
294
+ "required": false
295
+ },
296
+ {
297
+ "name": "image",
298
+ "type": "VNode",
299
+ "required": false,
300
+ "isSlot": true
301
+ },
302
+ {
303
+ "name": "title",
304
+ "type": "VNode",
305
+ "required": false,
306
+ "isSlot": true
307
+ },
308
+ {
309
+ "name": "price",
310
+ "type": "VNode",
311
+ "required": false,
312
+ "isSlot": true
313
+ },
314
+ {
315
+ "name": "rowTotalFooter",
316
+ "type": "VNode",
317
+ "required": false,
318
+ "isSlot": true
319
+ },
320
+ {
321
+ "name": "taxIncluded",
322
+ "type": "boolean",
323
+ "required": false
324
+ },
325
+ {
326
+ "name": "taxExcluded",
327
+ "type": "boolean",
328
+ "required": false
329
+ },
330
+ {
331
+ "name": "total",
332
+ "type": "VNode",
333
+ "required": false,
334
+ "isSlot": true
335
+ },
336
+ {
337
+ "name": "totalExcludingTax",
338
+ "type": "VNode",
339
+ "required": false,
340
+ "isSlot": true
341
+ },
342
+ {
343
+ "name": "sku",
344
+ "type": "VNode",
345
+ "required": false,
346
+ "isSlot": true
347
+ },
348
+ {
349
+ "name": "quantity",
350
+ "type": "number",
351
+ "required": false
352
+ },
353
+ {
354
+ "name": "quantityContent",
355
+ "type": "VNode",
356
+ "required": false,
357
+ "isSlot": true
358
+ },
359
+ {
360
+ "name": "description",
361
+ "type": "VNode",
362
+ "required": false,
363
+ "isSlot": true
364
+ },
365
+ {
366
+ "name": "attributes",
367
+ "type": "VNode",
368
+ "required": false,
369
+ "isSlot": true
370
+ },
371
+ {
372
+ "name": "footer",
373
+ "type": "VNode",
374
+ "required": false,
375
+ "isSlot": true
376
+ },
377
+ {
378
+ "name": "configurations",
379
+ "type": "{ [key: string]: any }",
380
+ "required": false
381
+ },
382
+ {
383
+ "name": "warning",
384
+ "type": "VNode",
385
+ "required": false,
386
+ "isSlot": true
387
+ },
388
+ {
389
+ "name": "alert",
390
+ "type": "VNode",
391
+ "required": false,
392
+ "isSlot": true
393
+ },
394
+ {
395
+ "name": "discount",
396
+ "type": "VNode",
397
+ "required": false,
398
+ "isSlot": true
399
+ },
400
+ {
401
+ "name": "savings",
402
+ "type": "VNode",
403
+ "required": false,
404
+ "isSlot": true
405
+ },
406
+ {
407
+ "name": "actions",
408
+ "type": "VNode",
409
+ "required": false,
410
+ "isSlot": true
411
+ },
412
+ {
413
+ "name": "removeContent",
414
+ "type": "VNode",
415
+ "required": false,
416
+ "isSlot": true
417
+ },
418
+ {
419
+ "name": "loading",
420
+ "type": "boolean",
421
+ "required": false
422
+ },
423
+ {
424
+ "name": "updating",
425
+ "type": "boolean",
426
+ "required": false
427
+ },
428
+ {
429
+ "name": "onRemove",
430
+ "type": "() => void",
431
+ "required": false
432
+ },
433
+ {
434
+ "name": "onQuantity",
435
+ "type": "(value: number) => void",
436
+ "required": false
437
+ },
438
+ {
439
+ "name": "quantityType",
440
+ "type": "'stepper' | 'dropdown'",
441
+ "required": false
442
+ },
443
+ {
444
+ "name": "dropdownOptions",
445
+ "type": "{ value: string; text: string }[]",
446
+ "required": false
447
+ }
448
+ ],
449
+ "slots": [
450
+ "image",
451
+ "title",
452
+ "price",
453
+ "rowTotalFooter",
454
+ "total",
455
+ "totalExcludingTax",
456
+ "sku",
457
+ "quantityContent",
458
+ "description",
459
+ "attributes",
460
+ "footer",
461
+ "warning",
462
+ "alert",
463
+ "discount",
464
+ "savings",
465
+ "actions",
466
+ "removeContent"
467
+ ],
468
+ "extends": "HTMLAttributes<HTMLDivElement>",
469
+ "omits": [
470
+ "title",
471
+ "loading"
472
+ ]
473
+ },
474
+ {
475
+ "name": "CartList",
476
+ "description": "Cart item list",
477
+ "propsInterface": "CartListProps",
478
+ "props": [],
479
+ "extends": "HTMLAttributes<HTMLDivElement>"
480
+ },
481
+ {
482
+ "name": "Checkbox",
483
+ "description": "Checkbox input",
484
+ "propsInterface": "CheckboxProps",
485
+ "props": [
486
+ {
487
+ "name": "name",
488
+ "type": "string",
489
+ "required": true
490
+ },
491
+ {
492
+ "name": "size",
493
+ "type": "'medium' | 'large'",
494
+ "required": false
495
+ },
496
+ {
497
+ "name": "disabled",
498
+ "type": "boolean",
499
+ "required": false
500
+ },
501
+ {
502
+ "name": "error",
503
+ "type": "boolean",
504
+ "required": false
505
+ },
506
+ {
507
+ "name": "label",
508
+ "type": "string | VNode | VNode[]",
509
+ "required": false,
510
+ "isSlot": true
511
+ },
512
+ {
513
+ "name": "description",
514
+ "type": "string | VNode | VNode[]",
515
+ "required": false,
516
+ "isSlot": true
517
+ }
518
+ ],
519
+ "slots": [
520
+ "label",
521
+ "description"
522
+ ],
523
+ "extends": "HTMLAttributes<HTMLInputElement>",
524
+ "omits": [
525
+ "size",
526
+ "label"
527
+ ]
528
+ },
529
+ {
530
+ "name": "ColorSwatch",
531
+ "description": "Color swatch selector",
532
+ "propsInterface": "ColorSwatchProps",
533
+ "props": [
534
+ {
535
+ "name": "name",
536
+ "type": "string",
537
+ "required": false
538
+ },
539
+ {
540
+ "name": "label",
541
+ "type": "string",
542
+ "required": false
543
+ },
544
+ {
545
+ "name": "groupAriaLabel",
546
+ "type": "string",
547
+ "required": false
548
+ },
549
+ {
550
+ "name": "id",
551
+ "type": "string",
552
+ "required": false
553
+ },
554
+ {
555
+ "name": "size",
556
+ "type": "'medium' | 'large'",
557
+ "required": false
558
+ },
559
+ {
560
+ "name": "color",
561
+ "type": "string",
562
+ "required": false
563
+ },
564
+ {
565
+ "name": "value",
566
+ "type": "string",
567
+ "required": false
568
+ },
569
+ {
570
+ "name": "disabled",
571
+ "type": "boolean",
572
+ "required": false
573
+ },
574
+ {
575
+ "name": "selected",
576
+ "type": "boolean",
577
+ "required": false
578
+ },
579
+ {
580
+ "name": "outOfStock",
581
+ "type": "boolean",
582
+ "required": false
583
+ },
584
+ {
585
+ "name": "multi",
586
+ "type": "boolean",
587
+ "required": false
588
+ },
589
+ {
590
+ "name": "onValue",
591
+ "type": "(value: any) => void",
592
+ "required": false
593
+ },
594
+ {
595
+ "name": "onUpdateError",
596
+ "type": "(error: Error) => void",
597
+ "required": false
598
+ }
599
+ ],
600
+ "extends": "HTMLAttributes<HTMLInputElement>",
601
+ "omits": [
602
+ "label",
603
+ "size"
604
+ ]
605
+ },
606
+ {
607
+ "name": "ContentGrid",
608
+ "description": "Content grid layout",
609
+ "propsInterface": "ContentGridProps",
610
+ "props": [
611
+ {
612
+ "name": "emptyGridContent",
613
+ "type": "VNode",
614
+ "required": true,
615
+ "isSlot": true
616
+ },
617
+ {
618
+ "name": "maxColumns",
619
+ "type": "number",
620
+ "required": false
621
+ },
622
+ {
623
+ "name": "columnWidth",
624
+ "type": "string",
625
+ "required": false
626
+ }
627
+ ],
628
+ "slots": [
629
+ "emptyGridContent"
630
+ ],
631
+ "extends": "HTMLAttributes<HTMLDivElement>"
632
+ },
633
+ {
634
+ "name": "Divider",
635
+ "description": "Visual divider",
636
+ "propsInterface": "DividerProps",
637
+ "props": [
638
+ {
639
+ "name": "variant",
640
+ "type": "'primary' | 'secondary'",
641
+ "required": false
642
+ }
643
+ ],
644
+ "extends": "HTMLAttributes<HTMLHRElement>"
645
+ },
646
+ {
647
+ "name": "Field",
648
+ "description": "Form field wrapper with label and validation",
649
+ "propsInterface": "FieldProps",
650
+ "props": [
651
+ {
652
+ "name": "label",
653
+ "type": "string",
654
+ "required": false
655
+ },
656
+ {
657
+ "name": "error",
658
+ "type": "string",
659
+ "required": false
660
+ },
661
+ {
662
+ "name": "hint",
663
+ "type": "string",
664
+ "required": false
665
+ },
666
+ {
667
+ "name": "success",
668
+ "type": "string",
669
+ "required": false
670
+ },
671
+ {
672
+ "name": "disabled",
673
+ "type": "boolean",
674
+ "required": false
675
+ },
676
+ {
677
+ "name": "children",
678
+ "type": "VNode",
679
+ "required": false,
680
+ "isSlot": true
681
+ },
682
+ {
683
+ "name": "size",
684
+ "type": "'medium' | 'large'",
685
+ "required": false
686
+ }
687
+ ],
688
+ "slots": [
689
+ "children"
690
+ ],
691
+ "extends": "HTMLAttributes<HTMLDivElement>",
692
+ "omits": [
693
+ "size"
694
+ ]
695
+ },
696
+ {
697
+ "name": "Header",
698
+ "description": "Header component",
699
+ "propsInterface": "HeaderProps",
700
+ "props": [
701
+ {
702
+ "name": "title",
703
+ "type": "string",
704
+ "required": true
705
+ },
706
+ {
707
+ "name": "size",
708
+ "type": "'medium' | 'large'",
709
+ "required": false
710
+ },
711
+ {
712
+ "name": "divider",
713
+ "type": "boolean",
714
+ "required": false
715
+ },
716
+ {
717
+ "name": "cta",
718
+ "type": "VNode",
719
+ "required": false,
720
+ "isSlot": true
721
+ },
722
+ {
723
+ "name": "level",
724
+ "type": "1 | 2 | 3 | 4 | 5 | 6",
725
+ "required": false
726
+ }
727
+ ],
728
+ "slots": [
729
+ "cta"
730
+ ],
731
+ "extends": "HTMLAttributes<HTMLDivElement>",
732
+ "omits": [
733
+ "size"
734
+ ]
735
+ },
736
+ {
737
+ "name": "Icon",
738
+ "description": "Icon display",
739
+ "propsInterface": "IconProps",
740
+ "props": [
741
+ {
742
+ "name": "source",
743
+ "type": "| FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }> | IconType | string",
744
+ "required": false
745
+ },
746
+ {
747
+ "name": "size",
748
+ "type": "'12' | '16' | '24' | '32' | '64' | '80'",
749
+ "required": false
750
+ },
751
+ {
752
+ "name": "stroke",
753
+ "type": "'1' | '2' | '3' | '4'",
754
+ "required": false
755
+ },
756
+ {
757
+ "name": "className",
758
+ "type": "string",
759
+ "required": false
760
+ },
761
+ {
762
+ "name": "title",
763
+ "type": "string",
764
+ "required": false
765
+ }
766
+ ],
767
+ "extends": "SVGProps<SVGSVGElement>",
768
+ "omits": [
769
+ "size"
770
+ ]
771
+ },
772
+ {
773
+ "name": "IllustratedMessage",
774
+ "description": "Illustrated message / empty state",
775
+ "propsInterface": "IllustratedMessageProps",
776
+ "props": [
777
+ {
778
+ "name": "icon",
779
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
780
+ "required": false,
781
+ "isSlot": true
782
+ },
783
+ {
784
+ "name": "heading",
785
+ "type": "string",
786
+ "required": false
787
+ },
788
+ {
789
+ "name": "headingLevel",
790
+ "type": "1 | 2 | 3 | 4 | 5 | 6",
791
+ "required": false
792
+ },
793
+ {
794
+ "name": "message",
795
+ "type": "VNode<HTMLAttributes<HTMLElement>>",
796
+ "required": false,
797
+ "isSlot": true
798
+ },
799
+ {
800
+ "name": "action",
801
+ "type": "VNode",
802
+ "required": false,
803
+ "isSlot": true
804
+ },
805
+ {
806
+ "name": "variant",
807
+ "type": "'primary' | 'secondary'",
808
+ "required": false
809
+ }
810
+ ],
811
+ "slots": [
812
+ "icon",
813
+ "message",
814
+ "action"
815
+ ],
816
+ "extends": "HTMLAttributes<HTMLDivElement>",
817
+ "omits": [
818
+ "icon",
819
+ "action"
820
+ ]
821
+ },
822
+ {
823
+ "name": "Image",
824
+ "description": "Image component with responsive srcset",
825
+ "propsInterface": "ImageProps",
826
+ "props": [
827
+ {
828
+ "name": "params",
829
+ "type": "ResolveImageUrlOptions",
830
+ "required": false
831
+ },
832
+ {
833
+ "name": "src",
834
+ "type": "string",
835
+ "required": true
836
+ },
837
+ {
838
+ "name": "sizes",
839
+ "type": "string",
840
+ "required": false
841
+ },
842
+ {
843
+ "name": "onLoad",
844
+ "type": "(e: any) => void",
845
+ "required": false
846
+ }
847
+ ],
848
+ "extends": "HTMLAttributes<HTMLDivElement>"
849
+ },
850
+ {
851
+ "name": "ImageSwatch",
852
+ "description": "Image swatch selector",
853
+ "propsInterface": "ImageSwatchProps",
854
+ "props": [
855
+ {
856
+ "name": "name",
857
+ "type": "string",
858
+ "required": false
859
+ },
860
+ {
861
+ "name": "label",
862
+ "type": "string",
863
+ "required": false
864
+ },
865
+ {
866
+ "name": "groupAriaLabel",
867
+ "type": "string",
868
+ "required": false
869
+ },
870
+ {
871
+ "name": "id",
872
+ "type": "string",
873
+ "required": false
874
+ },
875
+ {
876
+ "name": "src",
877
+ "type": "string",
878
+ "required": true
879
+ },
880
+ {
881
+ "name": "alt",
882
+ "type": "string",
883
+ "required": false
884
+ },
885
+ {
886
+ "name": "value",
887
+ "type": "string",
888
+ "required": false
889
+ },
890
+ {
891
+ "name": "disabled",
892
+ "type": "boolean",
893
+ "required": false
894
+ },
895
+ {
896
+ "name": "selected",
897
+ "type": "boolean",
898
+ "required": false
899
+ },
900
+ {
901
+ "name": "outOfStock",
902
+ "type": "boolean",
903
+ "required": false
904
+ },
905
+ {
906
+ "name": "multi",
907
+ "type": "boolean",
908
+ "required": false
909
+ },
910
+ {
911
+ "name": "imageNode",
912
+ "type": "VNode | ((props: ImageNodeRenderProps) => JSX.Element)",
913
+ "required": false,
914
+ "isSlot": true
915
+ },
916
+ {
917
+ "name": "onValue",
918
+ "type": "(value: any) => void",
919
+ "required": false
920
+ },
921
+ {
922
+ "name": "onUpdateError",
923
+ "type": "(error: Error) => void",
924
+ "required": false
925
+ }
926
+ ],
927
+ "slots": [
928
+ "imageNode"
929
+ ],
930
+ "extends": "HTMLAttributes<HTMLInputElement>",
931
+ "omits": [
932
+ "label"
933
+ ]
934
+ },
935
+ {
936
+ "name": "InLineAlert",
937
+ "description": "Inline alert message",
938
+ "propsInterface": "InLineAlertProps",
939
+ "props": [
940
+ {
941
+ "name": "variant",
942
+ "type": "'primary' | 'secondary'",
943
+ "required": false
944
+ },
945
+ {
946
+ "name": "heading",
947
+ "type": "string",
948
+ "required": true
949
+ },
950
+ {
951
+ "name": "description",
952
+ "type": "string",
953
+ "required": false
954
+ },
955
+ {
956
+ "name": "type",
957
+ "type": "'error' | 'warning' | 'success'",
958
+ "required": false
959
+ },
960
+ {
961
+ "name": "icon",
962
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
963
+ "required": false,
964
+ "isSlot": true
965
+ },
966
+ {
967
+ "name": "additionalActions",
968
+ "type": "Array<{ label: string; onClick: (event: Event) => void; }>",
969
+ "required": false
970
+ },
971
+ {
972
+ "name": "onDismiss",
973
+ "type": "(event: Event) => void",
974
+ "required": false
975
+ },
976
+ {
977
+ "name": "itemList",
978
+ "type": "VNode",
979
+ "required": false,
980
+ "isSlot": true
981
+ },
982
+ {
983
+ "name": "actionButtonPosition",
984
+ "type": "'top' | 'bottom'",
985
+ "required": false
986
+ }
987
+ ],
988
+ "slots": [
989
+ "icon",
990
+ "itemList"
991
+ ],
992
+ "extends": "HTMLAttributes<HTMLDivElement>",
993
+ "omits": [
994
+ "icon"
995
+ ]
996
+ },
997
+ {
998
+ "name": "Incrementer",
999
+ "description": "Numeric increment/decrement control",
1000
+ "propsInterface": "IncrementerProps",
1001
+ "props": [
1002
+ {
1003
+ "name": "name",
1004
+ "type": "string",
1005
+ "required": false
1006
+ },
1007
+ {
1008
+ "name": "size",
1009
+ "type": "'medium' | 'large'",
1010
+ "required": false
1011
+ },
1012
+ {
1013
+ "name": "onValue",
1014
+ "type": "(value: any) => void",
1015
+ "required": false
1016
+ },
1017
+ {
1018
+ "name": "onUpdateError",
1019
+ "type": "(error: Error) => void",
1020
+ "required": false
1021
+ },
1022
+ {
1023
+ "name": "error",
1024
+ "type": "boolean",
1025
+ "required": false
1026
+ },
1027
+ {
1028
+ "name": "success",
1029
+ "type": "boolean",
1030
+ "required": false
1031
+ },
1032
+ {
1033
+ "name": "min",
1034
+ "type": "number",
1035
+ "required": false
1036
+ },
1037
+ {
1038
+ "name": "max",
1039
+ "type": "number",
1040
+ "required": false
1041
+ },
1042
+ {
1043
+ "name": "disabled",
1044
+ "type": "boolean",
1045
+ "required": false
1046
+ },
1047
+ {
1048
+ "name": "maxLength",
1049
+ "type": "number",
1050
+ "required": false
1051
+ },
1052
+ {
1053
+ "name": "showButtons",
1054
+ "type": "boolean",
1055
+ "required": false
1056
+ }
1057
+ ],
1058
+ "extends": "HTMLAttributes<HTMLInputElement>",
1059
+ "omits": [
1060
+ "size"
1061
+ ]
1062
+ },
1063
+ {
1064
+ "name": "Input",
1065
+ "description": "Text input",
1066
+ "propsInterface": "InputProps",
1067
+ "props": [
1068
+ {
1069
+ "name": "id",
1070
+ "type": "string",
1071
+ "required": false
1072
+ },
1073
+ {
1074
+ "name": "name",
1075
+ "type": "string",
1076
+ "required": false
1077
+ },
1078
+ {
1079
+ "name": "variant",
1080
+ "type": "'primary' | 'secondary'",
1081
+ "required": false
1082
+ },
1083
+ {
1084
+ "name": "disabled",
1085
+ "type": "boolean",
1086
+ "required": false
1087
+ },
1088
+ {
1089
+ "name": "error",
1090
+ "type": "boolean",
1091
+ "required": false
1092
+ },
1093
+ {
1094
+ "name": "floatingLabel",
1095
+ "type": "string",
1096
+ "required": false
1097
+ },
1098
+ {
1099
+ "name": "onUpdateError",
1100
+ "type": "(error: Error) => void",
1101
+ "required": false
1102
+ },
1103
+ {
1104
+ "name": "onValue",
1105
+ "type": "(value: any) => void",
1106
+ "required": false
1107
+ },
1108
+ {
1109
+ "name": "size",
1110
+ "type": "'medium' | 'large'",
1111
+ "required": false
1112
+ },
1113
+ {
1114
+ "name": "success",
1115
+ "type": "boolean",
1116
+ "required": false
1117
+ },
1118
+ {
1119
+ "name": "icon",
1120
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
1121
+ "required": false,
1122
+ "isSlot": true
1123
+ },
1124
+ {
1125
+ "name": "maxLength",
1126
+ "type": "number",
1127
+ "required": false
1128
+ }
1129
+ ],
1130
+ "slots": [
1131
+ "icon"
1132
+ ],
1133
+ "extends": "HTMLAttributes<HTMLInputElement>",
1134
+ "omits": [
1135
+ "size",
1136
+ "icon"
1137
+ ]
1138
+ },
1139
+ {
1140
+ "name": "InputDate",
1141
+ "description": "Date input",
1142
+ "propsInterface": "InputDateProps",
1143
+ "props": [
1144
+ {
1145
+ "name": "label",
1146
+ "type": "string",
1147
+ "required": false
1148
+ },
1149
+ {
1150
+ "name": "name",
1151
+ "type": "string",
1152
+ "required": false
1153
+ },
1154
+ {
1155
+ "name": "error",
1156
+ "type": "string",
1157
+ "required": false
1158
+ },
1159
+ {
1160
+ "name": "value",
1161
+ "type": "Date",
1162
+ "required": false
1163
+ }
1164
+ ],
1165
+ "extends": "InputProps",
1166
+ "omits": [
1167
+ "error",
1168
+ "value"
1169
+ ]
1170
+ },
1171
+ {
1172
+ "name": "InputFile",
1173
+ "description": "File upload input",
1174
+ "propsInterface": "InputFileProps",
1175
+ "props": [
1176
+ {
1177
+ "name": "accept",
1178
+ "type": "string",
1179
+ "required": false
1180
+ },
1181
+ {
1182
+ "name": "onChange",
1183
+ "type": "(event: Event) => void",
1184
+ "required": false
1185
+ },
1186
+ {
1187
+ "name": "label",
1188
+ "type": "string",
1189
+ "required": false
1190
+ },
1191
+ {
1192
+ "name": "multiple",
1193
+ "type": "boolean",
1194
+ "required": false
1195
+ },
1196
+ {
1197
+ "name": "icon",
1198
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
1199
+ "required": false,
1200
+ "isSlot": true
1201
+ }
1202
+ ],
1203
+ "slots": [
1204
+ "icon"
1205
+ ],
1206
+ "extends": "HTMLAttributes<HTMLInputElement>",
1207
+ "omits": [
1208
+ "type",
1209
+ "icon"
1210
+ ]
1211
+ },
1212
+ {
1213
+ "name": "InputPassword",
1214
+ "description": "Password input with toggle visibility",
1215
+ "propsInterface": "InputPasswordProps",
1216
+ "props": [
1217
+ {
1218
+ "name": "placeholder",
1219
+ "type": "string",
1220
+ "required": false
1221
+ },
1222
+ {
1223
+ "name": "floatingLabel",
1224
+ "type": "string",
1225
+ "required": false
1226
+ },
1227
+ {
1228
+ "name": "defaultValue",
1229
+ "type": "string",
1230
+ "required": false
1231
+ },
1232
+ {
1233
+ "name": "className",
1234
+ "type": "string",
1235
+ "required": false
1236
+ },
1237
+ {
1238
+ "name": "name",
1239
+ "type": "string",
1240
+ "required": false
1241
+ },
1242
+ {
1243
+ "name": "autoComplete",
1244
+ "type": "string",
1245
+ "required": false
1246
+ },
1247
+ {
1248
+ "name": "errorMessage",
1249
+ "type": "string | undefined",
1250
+ "required": false
1251
+ },
1252
+ {
1253
+ "name": "required",
1254
+ "type": "boolean",
1255
+ "required": false
1256
+ },
1257
+ {
1258
+ "name": "hideStatusIndicator",
1259
+ "type": "boolean",
1260
+ "required": false
1261
+ },
1262
+ {
1263
+ "name": "onValue",
1264
+ "type": "(value: any) => void",
1265
+ "required": false
1266
+ },
1267
+ {
1268
+ "name": "onBlur",
1269
+ "type": "(event: Event) => void",
1270
+ "required": false
1271
+ }
1272
+ ],
1273
+ "extends": "PasswordStatusIndicatorProps"
1274
+ },
1275
+ {
1276
+ "name": "Modal",
1277
+ "description": "Modal dialog",
1278
+ "propsInterface": "ModalProps",
1279
+ "props": [
1280
+ {
1281
+ "name": "size",
1282
+ "type": "'small' | 'medium' | 'full'",
1283
+ "required": false
1284
+ },
1285
+ {
1286
+ "name": "title",
1287
+ "type": "VNode",
1288
+ "required": false,
1289
+ "isSlot": true
1290
+ },
1291
+ {
1292
+ "name": "centered",
1293
+ "type": "boolean",
1294
+ "required": false
1295
+ },
1296
+ {
1297
+ "name": "onClose",
1298
+ "type": "() => void",
1299
+ "required": false
1300
+ },
1301
+ {
1302
+ "name": "backgroundDim",
1303
+ "type": "boolean",
1304
+ "required": false
1305
+ },
1306
+ {
1307
+ "name": "clickToDismiss",
1308
+ "type": "boolean",
1309
+ "required": false
1310
+ },
1311
+ {
1312
+ "name": "escapeToDismiss",
1313
+ "type": "boolean",
1314
+ "required": false
1315
+ },
1316
+ {
1317
+ "name": "showCloseButton",
1318
+ "type": "boolean",
1319
+ "required": false
1320
+ }
1321
+ ],
1322
+ "slots": [
1323
+ "title"
1324
+ ],
1325
+ "extends": "HTMLAttributes<HTMLDivElement>",
1326
+ "omits": [
1327
+ "size",
1328
+ "title"
1329
+ ]
1330
+ },
1331
+ {
1332
+ "name": "MultiSelect",
1333
+ "description": "Multi-select dropdown",
1334
+ "propsInterface": "MultiSelectProps",
1335
+ "props": [
1336
+ {
1337
+ "name": "options",
1338
+ "type": "Option[]",
1339
+ "required": true
1340
+ },
1341
+ {
1342
+ "name": "value",
1343
+ "type": "SelectedValues",
1344
+ "required": true
1345
+ },
1346
+ {
1347
+ "name": "onChange",
1348
+ "type": "(value: SelectedValues) => void",
1349
+ "required": true
1350
+ },
1351
+ {
1352
+ "name": "placeholder",
1353
+ "type": "string",
1354
+ "required": false
1355
+ },
1356
+ {
1357
+ "name": "selectAllText",
1358
+ "type": "string",
1359
+ "required": false
1360
+ },
1361
+ {
1362
+ "name": "deselectAllText",
1363
+ "type": "string",
1364
+ "required": false
1365
+ },
1366
+ {
1367
+ "name": "noResultsText",
1368
+ "type": "string",
1369
+ "required": false
1370
+ },
1371
+ {
1372
+ "name": "name",
1373
+ "type": "string",
1374
+ "required": false
1375
+ },
1376
+ {
1377
+ "name": "disabled",
1378
+ "type": "boolean",
1379
+ "required": false
1380
+ },
1381
+ {
1382
+ "name": "className",
1383
+ "type": "string",
1384
+ "required": false
1385
+ },
1386
+ {
1387
+ "name": "maxHeight",
1388
+ "type": "number",
1389
+ "required": false
1390
+ },
1391
+ {
1392
+ "name": "floatingLabel",
1393
+ "type": "string",
1394
+ "required": false
1395
+ },
1396
+ {
1397
+ "name": "error",
1398
+ "type": "boolean",
1399
+ "required": false
1400
+ },
1401
+ {
1402
+ "name": "success",
1403
+ "type": "boolean",
1404
+ "required": false
1405
+ },
1406
+ {
1407
+ "name": "id",
1408
+ "type": "string",
1409
+ "required": false
1410
+ }
1411
+ ]
1412
+ },
1413
+ {
1414
+ "name": "Pagination",
1415
+ "description": "Pagination controls",
1416
+ "propsInterface": "PaginationProps",
1417
+ "props": [
1418
+ {
1419
+ "name": "className",
1420
+ "type": "string",
1421
+ "required": false
1422
+ },
1423
+ {
1424
+ "name": "currentPage",
1425
+ "type": "number",
1426
+ "required": false
1427
+ },
1428
+ {
1429
+ "name": "totalPages",
1430
+ "type": "number",
1431
+ "required": false
1432
+ },
1433
+ {
1434
+ "name": "onChange",
1435
+ "type": "(currentPage: number, e?: Event) => void",
1436
+ "required": false
1437
+ },
1438
+ {
1439
+ "name": "routePage",
1440
+ "type": "(page: number) => string",
1441
+ "required": false
1442
+ }
1443
+ ]
1444
+ },
1445
+ {
1446
+ "name": "Picker",
1447
+ "description": "Single-select picker / dropdown",
1448
+ "propsInterface": "PickerProps",
1449
+ "props": [
1450
+ {
1451
+ "name": "id",
1452
+ "type": "string",
1453
+ "required": false
1454
+ },
1455
+ {
1456
+ "name": "name",
1457
+ "type": "string",
1458
+ "required": false
1459
+ },
1460
+ {
1461
+ "name": "value",
1462
+ "type": "PickerValue",
1463
+ "required": false
1464
+ },
1465
+ {
1466
+ "name": "placeholder",
1467
+ "type": "string",
1468
+ "required": false
1469
+ },
1470
+ {
1471
+ "name": "variant",
1472
+ "type": "'primary' | 'secondary'",
1473
+ "required": false
1474
+ },
1475
+ {
1476
+ "name": "size",
1477
+ "type": "'medium' | 'large'",
1478
+ "required": false
1479
+ },
1480
+ {
1481
+ "name": "floatingLabel",
1482
+ "type": "string",
1483
+ "required": false
1484
+ },
1485
+ {
1486
+ "name": "icon",
1487
+ "type": "VNode<HTMLAttributes<SVGSVGElement>>",
1488
+ "required": false,
1489
+ "isSlot": true
1490
+ },
1491
+ {
1492
+ "name": "options",
1493
+ "type": "PickerOption[]",
1494
+ "required": false
1495
+ },
1496
+ {
1497
+ "name": "defaultOption",
1498
+ "type": "PickerOption",
1499
+ "required": false
1500
+ },
1501
+ {
1502
+ "name": "disabled",
1503
+ "type": "boolean",
1504
+ "required": false
1505
+ },
1506
+ {
1507
+ "name": "error",
1508
+ "type": "boolean",
1509
+ "required": false
1510
+ },
1511
+ {
1512
+ "name": "handleSelect",
1513
+ "type": "(event: Event) => void",
1514
+ "required": false
1515
+ }
1516
+ ],
1517
+ "slots": [
1518
+ "icon"
1519
+ ],
1520
+ "extends": "HTMLAttributes<HTMLSelectElement>",
1521
+ "omits": [
1522
+ "value",
1523
+ "size",
1524
+ "icon"
1525
+ ]
1526
+ },
1527
+ {
1528
+ "name": "Price",
1529
+ "description": "Price display with currency formatting",
1530
+ "propsInterface": "PriceProps",
1531
+ "props": [
1532
+ {
1533
+ "name": "amount",
1534
+ "type": "number",
1535
+ "required": false
1536
+ },
1537
+ {
1538
+ "name": "currency",
1539
+ "type": "string | null",
1540
+ "required": false
1541
+ },
1542
+ {
1543
+ "name": "locale",
1544
+ "type": "string",
1545
+ "required": false
1546
+ },
1547
+ {
1548
+ "name": "formatOptions",
1549
+ "type": "{ [key: string]: any; }",
1550
+ "required": false
1551
+ },
1552
+ {
1553
+ "name": "variant",
1554
+ "type": "'default' | 'strikethrough'",
1555
+ "required": false
1556
+ },
1557
+ {
1558
+ "name": "weight",
1559
+ "type": "'bold' | 'normal'",
1560
+ "required": false
1561
+ },
1562
+ {
1563
+ "name": "sale",
1564
+ "type": "boolean",
1565
+ "required": false
1566
+ },
1567
+ {
1568
+ "name": "size",
1569
+ "type": "'small' | 'medium' | 'large'",
1570
+ "required": false
1571
+ }
1572
+ ],
1573
+ "extends": "HTMLAttributes<HTMLSpanElement>",
1574
+ "omits": [
1575
+ "size"
1576
+ ]
1577
+ },
1578
+ {
1579
+ "name": "PriceRange",
1580
+ "description": "Price range display",
1581
+ "propsInterface": "PriceRangeProps",
1582
+ "props": [
1583
+ {
1584
+ "name": "locale",
1585
+ "type": "string",
1586
+ "required": false
1587
+ },
1588
+ {
1589
+ "name": "currency",
1590
+ "type": "string",
1591
+ "required": false
1592
+ },
1593
+ {
1594
+ "name": "amount",
1595
+ "type": "number",
1596
+ "required": false
1597
+ },
1598
+ {
1599
+ "name": "variant",
1600
+ "type": "'default' | 'strikethrough'",
1601
+ "required": false
1602
+ },
1603
+ {
1604
+ "name": "minimumAmount",
1605
+ "type": "number",
1606
+ "required": false
1607
+ },
1608
+ {
1609
+ "name": "maximumAmount",
1610
+ "type": "number",
1611
+ "required": false
1612
+ },
1613
+ {
1614
+ "name": "display",
1615
+ "type": "'dash' | 'from to' | 'as low as'",
1616
+ "required": false
1617
+ },
1618
+ {
1619
+ "name": "size",
1620
+ "type": "'small' | 'medium' | 'large'",
1621
+ "required": false
1622
+ },
1623
+ {
1624
+ "name": "specialPrice",
1625
+ "type": "number",
1626
+ "required": false
1627
+ },
1628
+ {
1629
+ "name": "sale",
1630
+ "type": "boolean",
1631
+ "required": false
1632
+ }
1633
+ ],
1634
+ "extends": "HTMLAttributes<HTMLDivElement>",
1635
+ "omits": [
1636
+ "size"
1637
+ ]
1638
+ },
1639
+ {
1640
+ "name": "ProductItemCard",
1641
+ "description": "Product card for listings",
1642
+ "propsInterface": "ProductItemCardProps",
1643
+ "props": [
1644
+ {
1645
+ "name": "image",
1646
+ "type": "VNode",
1647
+ "required": false,
1648
+ "isSlot": true
1649
+ },
1650
+ {
1651
+ "name": "titleNode",
1652
+ "type": "VNode",
1653
+ "required": false,
1654
+ "isSlot": true
1655
+ },
1656
+ {
1657
+ "name": "price",
1658
+ "type": "VNode",
1659
+ "required": false,
1660
+ "isSlot": true
1661
+ },
1662
+ {
1663
+ "name": "sku",
1664
+ "type": "VNode",
1665
+ "required": false,
1666
+ "isSlot": true
1667
+ },
1668
+ {
1669
+ "name": "actionButton",
1670
+ "type": "VNode",
1671
+ "required": false,
1672
+ "isSlot": true
1673
+ },
1674
+ {
1675
+ "name": "swatches",
1676
+ "type": "VNode",
1677
+ "required": false,
1678
+ "isSlot": true
1679
+ },
1680
+ {
1681
+ "name": "initialized",
1682
+ "type": "boolean",
1683
+ "required": false
1684
+ }
1685
+ ],
1686
+ "slots": [
1687
+ "image",
1688
+ "titleNode",
1689
+ "price",
1690
+ "sku",
1691
+ "actionButton",
1692
+ "swatches"
1693
+ ],
1694
+ "extends": "HTMLAttributes<HTMLDivElement>",
1695
+ "omits": [
1696
+ "loading"
1697
+ ]
1698
+ },
1699
+ {
1700
+ "name": "ProgressSpinner",
1701
+ "description": "Loading spinner",
1702
+ "propsInterface": "ProgressSpinnerProps",
1703
+ "props": [
1704
+ {
1705
+ "name": "ariaLabel",
1706
+ "type": "string",
1707
+ "required": false
1708
+ },
1709
+ {
1710
+ "name": "size",
1711
+ "type": "'small' | 'medium' | 'big' | 'large'",
1712
+ "required": false
1713
+ },
1714
+ {
1715
+ "name": "stroke",
1716
+ "type": "'1' | '2' | '3' | '4'",
1717
+ "required": false
1718
+ }
1719
+ ],
1720
+ "extends": "HTMLAttributes<HTMLDivElement>",
1721
+ "omits": [
1722
+ "size"
1723
+ ]
1724
+ },
1725
+ {
1726
+ "name": "RadioButton",
1727
+ "description": "Radio button input",
1728
+ "propsInterface": "RadioButtonProps",
1729
+ "props": [
1730
+ {
1731
+ "name": "label",
1732
+ "type": "string | VNode<HTMLAttributes<HTMLElement>>",
1733
+ "required": true,
1734
+ "isSlot": true
1735
+ },
1736
+ {
1737
+ "name": "name",
1738
+ "type": "string",
1739
+ "required": true
1740
+ },
1741
+ {
1742
+ "name": "value",
1743
+ "type": "string",
1744
+ "required": true
1745
+ },
1746
+ {
1747
+ "name": "size",
1748
+ "type": "'medium' | 'large'",
1749
+ "required": false
1750
+ },
1751
+ {
1752
+ "name": "checked",
1753
+ "type": "boolean",
1754
+ "required": false
1755
+ },
1756
+ {
1757
+ "name": "disabled",
1758
+ "type": "boolean",
1759
+ "required": false
1760
+ },
1761
+ {
1762
+ "name": "error",
1763
+ "type": "boolean",
1764
+ "required": false
1765
+ },
1766
+ {
1767
+ "name": "description",
1768
+ "type": "string",
1769
+ "required": false
1770
+ },
1771
+ {
1772
+ "name": "busy",
1773
+ "type": "boolean",
1774
+ "required": false
1775
+ },
1776
+ {
1777
+ "name": "icon",
1778
+ "type": "| VNode<HTMLAttributes<SVGSVGElement>> | VNode<HTMLAttributes<HTMLImageElement>>",
1779
+ "required": false,
1780
+ "isSlot": true
1781
+ }
1782
+ ],
1783
+ "slots": [
1784
+ "label",
1785
+ "icon"
1786
+ ],
1787
+ "extends": "HTMLAttributes<HTMLInputElement>",
1788
+ "omits": [
1789
+ "size",
1790
+ "label",
1791
+ "icon"
1792
+ ]
1793
+ },
1794
+ {
1795
+ "name": "Skeleton",
1796
+ "description": "Skeleton loading placeholder",
1797
+ "propsInterface": "SkeletonProps",
1798
+ "props": [
1799
+ {
1800
+ "name": "rowGap",
1801
+ "type": "'xsmall' | 'small' | 'medium' | 'big' | 'xbig'",
1802
+ "required": false
1803
+ }
1804
+ ],
1805
+ "extends": "HTMLAttributes<HTMLDivElement>",
1806
+ "omits": [
1807
+ "size"
1808
+ ]
1809
+ },
1810
+ {
1811
+ "name": "Table",
1812
+ "description": "Table component",
1813
+ "propsInterface": "TableProps",
1814
+ "props": [
1815
+ {
1816
+ "name": "columns",
1817
+ "type": "Column[]",
1818
+ "required": true
1819
+ },
1820
+ {
1821
+ "name": "rowData",
1822
+ "type": "RowData[]",
1823
+ "required": true
1824
+ },
1825
+ {
1826
+ "name": "mobileLayout",
1827
+ "type": "'stacked' | 'none'",
1828
+ "required": false
1829
+ },
1830
+ {
1831
+ "name": "caption",
1832
+ "type": "string",
1833
+ "required": false
1834
+ },
1835
+ {
1836
+ "name": "expandedRows",
1837
+ "type": "Set<number>",
1838
+ "required": false
1839
+ },
1840
+ {
1841
+ "name": "loading",
1842
+ "type": "boolean",
1843
+ "required": false
1844
+ },
1845
+ {
1846
+ "name": "skeletonRowCount",
1847
+ "type": "number",
1848
+ "required": false
1849
+ },
1850
+ {
1851
+ "name": "onSortChange",
1852
+ "type": "(columnKey: string, direction: Sortable) => void",
1853
+ "required": false
1854
+ }
1855
+ ],
1856
+ "extends": "HTMLAttributes<HTMLTableElement>",
1857
+ "omits": [
1858
+ "loading"
1859
+ ]
1860
+ },
1861
+ {
1862
+ "name": "Tag",
1863
+ "description": "Tag / badge label",
1864
+ "propsInterface": "TagProps",
1865
+ "props": [
1866
+ {
1867
+ "name": "label",
1868
+ "type": "string",
1869
+ "required": false
1870
+ },
1871
+ {
1872
+ "name": "children",
1873
+ "type": "VNode | VNode[]",
1874
+ "required": false,
1875
+ "isSlot": true
1876
+ }
1877
+ ],
1878
+ "slots": [
1879
+ "children"
1880
+ ],
1881
+ "extends": "HTMLAttributes<HTMLDivElement>",
1882
+ "omits": [
1883
+ "onChange",
1884
+ "icon"
1885
+ ]
1886
+ },
1887
+ {
1888
+ "name": "TextArea",
1889
+ "description": "Multi-line text input",
1890
+ "propsInterface": "TextAreaProps",
1891
+ "props": [
1892
+ {
1893
+ "name": "id",
1894
+ "type": "string",
1895
+ "required": false
1896
+ },
1897
+ {
1898
+ "name": "name",
1899
+ "type": "string",
1900
+ "required": false
1901
+ },
1902
+ {
1903
+ "name": "disabled",
1904
+ "type": "boolean",
1905
+ "required": false
1906
+ },
1907
+ {
1908
+ "name": "errorMessage",
1909
+ "type": "string",
1910
+ "required": false
1911
+ }
1912
+ ],
1913
+ "extends": "HTMLAttributes<HTMLTextAreaElement>"
1914
+ },
1915
+ {
1916
+ "name": "TextSwatch",
1917
+ "description": "Text swatch selector",
1918
+ "propsInterface": "TextSwatchProps",
1919
+ "props": [
1920
+ {
1921
+ "name": "name",
1922
+ "type": "string",
1923
+ "required": false
1924
+ },
1925
+ {
1926
+ "name": "label",
1927
+ "type": "string",
1928
+ "required": true
1929
+ },
1930
+ {
1931
+ "name": "groupAriaLabel",
1932
+ "type": "string",
1933
+ "required": false
1934
+ },
1935
+ {
1936
+ "name": "value",
1937
+ "type": "string",
1938
+ "required": false
1939
+ },
1940
+ {
1941
+ "name": "id",
1942
+ "type": "string",
1943
+ "required": true
1944
+ },
1945
+ {
1946
+ "name": "disabled",
1947
+ "type": "boolean",
1948
+ "required": false
1949
+ },
1950
+ {
1951
+ "name": "selected",
1952
+ "type": "boolean",
1953
+ "required": false
1954
+ },
1955
+ {
1956
+ "name": "outOfStock",
1957
+ "type": "boolean",
1958
+ "required": false
1959
+ },
1960
+ {
1961
+ "name": "multi",
1962
+ "type": "boolean",
1963
+ "required": false
1964
+ },
1965
+ {
1966
+ "name": "onValue",
1967
+ "type": "(value: any) => void",
1968
+ "required": false
1969
+ },
1970
+ {
1971
+ "name": "onUpdateError",
1972
+ "type": "(error: Error) => void",
1973
+ "required": false
1974
+ }
1975
+ ],
1976
+ "extends": "HTMLAttributes<HTMLInputElement>",
1977
+ "omits": [
1978
+ "label"
1979
+ ]
1980
+ },
1981
+ {
1982
+ "name": "ToggleButton",
1983
+ "description": "Toggle button",
1984
+ "propsInterface": "ToggleButtonProps",
1985
+ "props": [
1986
+ {
1987
+ "name": "label",
1988
+ "type": "string | VNode<HTMLAttributes<HTMLElement>>",
1989
+ "required": true,
1990
+ "isSlot": true
1991
+ },
1992
+ {
1993
+ "name": "name",
1994
+ "type": "string",
1995
+ "required": true
1996
+ },
1997
+ {
1998
+ "name": "value",
1999
+ "type": "string",
2000
+ "required": true
2001
+ },
2002
+ {
2003
+ "name": "busy",
2004
+ "type": "boolean",
2005
+ "required": false
2006
+ },
2007
+ {
2008
+ "name": "disabled",
2009
+ "type": "boolean",
2010
+ "required": false
2011
+ },
2012
+ {
2013
+ "name": "icon",
2014
+ "type": "| VNode<HTMLAttributes<SVGSVGElement>> | VNode<HTMLAttributes<HTMLImageElement>>",
2015
+ "required": false,
2016
+ "isSlot": true
2017
+ },
2018
+ {
2019
+ "name": "onChange",
2020
+ "type": "(value: string) => void",
2021
+ "required": false
2022
+ },
2023
+ {
2024
+ "name": "selected",
2025
+ "type": "boolean",
2026
+ "required": false
2027
+ }
2028
+ ],
2029
+ "slots": [
2030
+ "label",
2031
+ "icon"
2032
+ ],
2033
+ "extends": "HTMLAttributes<HTMLDivElement>",
2034
+ "omits": [
2035
+ "onChange",
2036
+ "icon",
2037
+ "label"
2038
+ ]
2039
+ },
2040
+ {
2041
+ "name": "UIProvider",
2042
+ "description": "UI context provider (wraps drop-in root)",
2043
+ "propsInterface": "UIProviderProps",
2044
+ "props": [
2045
+ {
2046
+ "name": "lang",
2047
+ "type": "Lang",
2048
+ "required": false
2049
+ },
2050
+ {
2051
+ "name": "langDefinitions",
2052
+ "type": "LangDefinitions",
2053
+ "required": false
2054
+ }
2055
+ ],
2056
+ "extends": "HTMLAttributes<HTMLDivElement>"
2057
+ }
2058
+ ],
2059
+ "utilities": [
2060
+ {
2061
+ "name": "getFormValues",
2062
+ "signature": "(form: HTMLFormElement) => Record<string, string>",
2063
+ "description": "Reads all form field values into a plain object",
2064
+ "importPath": "@adobe-commerce/elsie/lib"
2065
+ },
2066
+ {
2067
+ "name": "getFormErrors",
2068
+ "signature": "(form: HTMLFormElement) => Record<string, string>",
2069
+ "description": "Reads validation error messages per form field",
2070
+ "importPath": "@adobe-commerce/elsie/lib"
2071
+ },
2072
+ {
2073
+ "name": "classes",
2074
+ "signature": "(classes: Array<ClassName | [ClassName, boolean] | undefined>) => string",
2075
+ "description": "Builds a CSS class string from conditional class entries",
2076
+ "importPath": "@adobe-commerce/elsie/lib"
2077
+ },
2078
+ {
2079
+ "name": "debounce",
2080
+ "signature": "(fn: Function, ms: number) => DebouncedFn",
2081
+ "description": "Debounces a function; returned function has a .cancel() method",
2082
+ "importPath": "@adobe-commerce/elsie/lib"
2083
+ },
2084
+ {
2085
+ "name": "generateSrcset",
2086
+ "signature": "(imageURL: string, options: ResolveImageUrlOptions) => string | undefined",
2087
+ "description": "Builds responsive srcset string for images",
2088
+ "importPath": "@adobe-commerce/elsie/lib"
2089
+ },
2090
+ {
2091
+ "name": "getPriceFormatter",
2092
+ "signature": "(options?: { currency?: string; locale?: string; formatOptions?: Intl.NumberFormatOptions }) => Intl.NumberFormat",
2093
+ "description": "Creates a locale-aware price formatter using Intl.NumberFormat",
2094
+ "importPath": "@adobe-commerce/elsie/lib"
2095
+ },
2096
+ {
2097
+ "name": "getPathValue",
2098
+ "signature": "(obj: Record<string, any>, key: string) => any",
2099
+ "description": "Gets a nested value from an object using dot notation",
2100
+ "importPath": "@adobe-commerce/elsie/lib"
2101
+ },
2102
+ {
2103
+ "name": "getCookie",
2104
+ "signature": "(cookieName: string) => string | undefined",
2105
+ "description": "Reads a cookie value by name",
2106
+ "importPath": "@adobe-commerce/elsie/lib"
2107
+ },
2108
+ {
2109
+ "name": "toLanguageTag",
2110
+ "signature": "(locale: string) => string",
2111
+ "description": "Converts Magento locale (e.g. fr_FR) to BCP 47 tag (e.g. fr-FR)",
2112
+ "importPath": "@adobe-commerce/elsie/lib"
2113
+ },
2114
+ {
2115
+ "name": "merge",
2116
+ "signature": "<T>(prev: T, next?: { [key: string]: any }) => T",
2117
+ "description": "Deep merges objects with custom array handling",
2118
+ "importPath": "@adobe-commerce/elsie/lib"
2119
+ },
2120
+ {
2121
+ "name": "Slot",
2122
+ "signature": "<T>(props: SlotPropsComponent<T>) => VNode",
2123
+ "description": "Slot component for customizing drop-in UI sections",
2124
+ "importPath": "@adobe-commerce/elsie/lib"
2125
+ },
2126
+ {
2127
+ "name": "useSlot",
2128
+ "signature": "<K, V>(name: string, context?: V, callback?: Function, children?: VNode, render?: Function, contentTag?: string) => [ref, SlotContext]",
2129
+ "description": "Hook for implementing slot behavior in custom components",
2130
+ "importPath": "@adobe-commerce/elsie/lib"
2131
+ },
2132
+ {
2133
+ "name": "Render",
2134
+ "signature": "class Render { render(container, props?): void; toString(): string; unmount(): void }",
2135
+ "description": "Renders drop-in containers to DOM elements",
2136
+ "importPath": "@adobe-commerce/elsie/lib"
2137
+ },
2138
+ {
2139
+ "name": "Initializer",
2140
+ "signature": "class Initializer<T>",
2141
+ "description": "Sets up listeners and initialization for a drop-in module",
2142
+ "importPath": "@adobe-commerce/elsie/lib"
2143
+ },
2144
+ {
2145
+ "name": "initializers",
2146
+ "signature": "class { static register(config): void; static mount(): void; static mountImmediately(): void; static setImageParamKeys(keys): void; static setGlobalLocale(locale): void }",
2147
+ "description": "Global registry for drop-in initializers — register, mount, and configure",
2148
+ "importPath": "@adobe-commerce/elsie/lib"
2149
+ },
2150
+ {
2151
+ "name": "Config",
2152
+ "signature": "class Config<T> { getConfig(): T; setConfig(config: Partial<T>): void }",
2153
+ "description": "Simple typed config store for drop-in settings",
2154
+ "importPath": "@adobe-commerce/elsie/lib"
2155
+ }
2156
+ ],
2157
+ "exportedTypes": [
2158
+ {
2159
+ "name": "AccordionSectionProps",
2160
+ "source": "Accordion",
2161
+ "definition": "export interface AccordionSectionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'icon'> { defaultOpen?: boolean; actionIconPosition?: 'left' | 'right'; ariaLabelTitle: string; iconOpen?: IconNode; iconClose?: IconNode; iconLeft?: IconNode; showIconLeft?: boolean; secondaryText?: string | VNode<HTMLAttributes<HTMLSpanElement>>; renderContentWhenClosed?: boolean; onStateChange?: (open: boolean) => void; }"
2162
+ },
2163
+ {
2164
+ "name": "ActionButtonGroupOption",
2165
+ "source": "ActionButtonGroup",
2166
+ "definition": "export interface ActionButtonGroupOption { value: string | null; text: string; icon?: VNode<SVGElement>; disabled?: boolean; }"
2167
+ },
2168
+ {
2169
+ "name": "IconNode",
2170
+ "source": "Icon",
2171
+ "definition": "export type IconNode = FunctionComponent< SVGProps<SVGSVGElement> & { title?: string } >;"
2172
+ },
2173
+ {
2174
+ "name": "IconType",
2175
+ "source": "Icon",
2176
+ "definition": "export type IconType = keyof typeof import('@adobe-commerce/elsie/icons');"
2177
+ },
2178
+ {
2179
+ "name": "ImageNodeRenderProps",
2180
+ "source": "ImageSwatch",
2181
+ "definition": "export interface ImageNodeRenderProps extends ImageProps { imageSwatchContext: { disabled?: boolean; outOfStock?: boolean; multi?: boolean; selected?: boolean; value?: string; label?: string; groupAriaLabel?: string; name?: string; id?: string; }; }"
2182
+ },
2183
+ {
2184
+ "name": "PaginationList",
2185
+ "source": "Pagination",
2186
+ "definition": "export type PaginationList = { page: number | string; isActive: boolean; label: number | string; };"
2187
+ },
2188
+ {
2189
+ "name": "PickerOption",
2190
+ "source": "Picker",
2191
+ "definition": "export interface PickerOption { value: PickerValue; text?: string; icon?: VNode<HTMLAttributes<SVGSVGElement>>; disabled?: boolean; }"
2192
+ },
2193
+ {
2194
+ "name": "SkeletonRowProps",
2195
+ "source": "Skeleton",
2196
+ "definition": "export interface SkeletonRowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> { fullWidth?: boolean; lines?: number; size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'; variant?: 'heading' | 'row' | 'empty'; multilineGap?: 'xsmall' | 'small' | 'medium' | 'big' | 'xbig'; children?: string; }"
2197
+ }
2198
+ ]
2199
+ },
2200
+ "event-bus": {
2201
+ "name": "@adobe-commerce/event-bus",
2202
+ "description": "Event bus for cross-dropin communication using BroadcastChannel",
2203
+ "importPath": "@adobe-commerce/event-bus",
2204
+ "functions": [
2205
+ {
2206
+ "name": "events.on",
2207
+ "signature": "<K extends keyof Events>(event: K, handler: (payload: Events[K]) => void, options?: { eager?: boolean; scope?: string }) => { off(): void }",
2208
+ "description": "Subscribe to an event. Set eager: true to replay the last payload. Use scope to namespace events. Returns an object with off() to unsubscribe."
2209
+ },
2210
+ {
2211
+ "name": "events.emit",
2212
+ "signature": "<K extends keyof Events>(event: K, payload: Events[K], options?: { scope?: string }) => void",
2213
+ "description": "Emit an event with a typed payload. Use scope to namespace."
2214
+ },
2215
+ {
2216
+ "name": "events.lastPayload",
2217
+ "signature": "<K extends keyof Events>(event: K, options?: { scope?: string }) => Events[K] | undefined",
2218
+ "description": "Return the last emitted payload for an event, or undefined if never emitted."
2219
+ },
2220
+ {
2221
+ "name": "events.enableLogger",
2222
+ "signature": "(enabled: boolean) => void",
2223
+ "description": "Enable or disable console logging of all events for debugging."
2224
+ }
2225
+ ],
2226
+ "builtInEvents": [
2227
+ {
2228
+ "name": "authenticated",
2229
+ "payload": "boolean",
2230
+ "description": "Fired when user authentication state changes"
2231
+ },
2232
+ {
2233
+ "name": "locale",
2234
+ "payload": "string",
2235
+ "description": "Fired when locale changes"
2236
+ },
2237
+ {
2238
+ "name": "cart/data",
2239
+ "payload": "Cart | null",
2240
+ "description": "Fired when cart data updates"
2241
+ }
2242
+ ],
2243
+ "notes": "Uses BroadcastChannel for cross-tab communication. No-op in SSR. Drop-ins emit many additional events beyond the built-in catalog — see the events registry for the full list."
2244
+ },
2245
+ "fetch-graphql": {
2246
+ "name": "@adobe-commerce/fetch-graphql",
2247
+ "description": "GraphQL client for queries and mutations against Adobe Commerce",
2248
+ "importPath": "@adobe-commerce/fetch-graphql",
2249
+ "functions": [
2250
+ {
2251
+ "name": "fetchGraphQl",
2252
+ "signature": "<T>(query: string, options?: { method?: 'GET' | 'POST'; variables?: object; signal?: AbortSignal; cache?: RequestCache }) => Promise<{ errors?: FetchQueryError; data: T }>",
2253
+ "description": "Execute a GraphQL query or mutation. Defaults to POST."
2254
+ },
2255
+ {
2256
+ "name": "setEndpoint",
2257
+ "signature": "(endpoint: string) => void",
2258
+ "description": "Set the GraphQL endpoint URL."
2259
+ },
2260
+ {
2261
+ "name": "setFetchGraphQlHeader",
2262
+ "signature": "(key: string, value: string | null) => void",
2263
+ "description": "Set a single HTTP header for all GraphQL requests."
2264
+ },
2265
+ {
2266
+ "name": "setFetchGraphQlHeaders",
2267
+ "signature": "(header: Header | ((prev: Header) => Header)) => void",
2268
+ "description": "Set multiple headers at once, or use an updater function."
2269
+ },
2270
+ {
2271
+ "name": "getFetchGraphQlHeader",
2272
+ "signature": "(key: string) => string | null | undefined",
2273
+ "description": "Get the current value of a specific header."
2274
+ },
2275
+ {
2276
+ "name": "removeFetchGraphQlHeader",
2277
+ "signature": "(key: string) => void",
2278
+ "description": "Remove a specific header from GraphQL requests."
2279
+ },
2280
+ {
2281
+ "name": "getConfig",
2282
+ "signature": "() => { endpoint: string; fetchGraphQlHeaders: Header }",
2283
+ "description": "Return the current endpoint and headers configuration."
2284
+ },
2285
+ {
2286
+ "name": "addBeforeHook",
2287
+ "signature": "(hook: (requestInit: RequestInit) => RequestInit) => void",
2288
+ "description": "Add a hook that runs before each GraphQL request. Can modify the RequestInit."
2289
+ },
2290
+ {
2291
+ "name": "addAfterHook",
2292
+ "signature": "<T>(hook: (requestInit: RequestInit, response: { errors?; data: T }) => { errors?; data: T }) => void",
2293
+ "description": "Add a hook that runs after each GraphQL response. Can modify the response."
2294
+ }
2295
+ ],
2296
+ "classes": [
2297
+ {
2298
+ "name": "FetchGraphQL",
2299
+ "description": "Standalone GraphQL client class. Can link to another instance to share endpoint, headers, and hooks. Use setEndpoint(string) to set URL or setEndpoint(FetchGraphQL) to link."
2300
+ }
2301
+ ]
2302
+ },
2303
+ "build-tools": {
2304
+ "name": "@dropins/build-tools",
2305
+ "description": "Build-time tools for extending drop-in GraphQL operations",
2306
+ "importPath": "@dropins/build-tools/gql-extend.js",
2307
+ "functions": [
2308
+ {
2309
+ "name": "overrideGQLOperations",
2310
+ "signature": "(overrides?: GQLOverride[]) => Promise<void>",
2311
+ "description": "Override or extend GraphQL operations in drop-in fragments.js files. Call during build (e.g. in Vite config). Restores originals before applying."
2312
+ }
2313
+ ],
2314
+ "types": [
2315
+ {
2316
+ "name": "GQLOverride",
2317
+ "definition": "{ npm: string; operations?: string[]; skipFragments?: string[] }",
2318
+ "description": "Configuration for a single drop-in override. npm: package name (e.g. @dropins/storefront-cart). operations: GraphQL operations to merge. skipFragments: fragment names to remove."
2319
+ }
2320
+ ],
2321
+ "usageExample": "import { overrideGQLOperations } from '@dropins/build-tools/gql-extend.js';\n\nawait overrideGQLOperations([\n {\n npm: '@dropins/storefront-cart',\n operations: [`\n fragment CUSTOM_CART_FRAGMENT on Cart {\n custom_attribute\n }\n `],\n },\n]);"
2322
+ },
2323
+ "recaptcha": {
2324
+ "name": "@adobe-commerce/recaptcha",
2325
+ "description": "reCAPTCHA v3 integration for bot protection on storefront forms",
2326
+ "importPath": "@adobe-commerce/recaptcha",
2327
+ "functions": [
2328
+ {
2329
+ "name": "setEndpoint",
2330
+ "signature": "(url: string) => void",
2331
+ "description": "Set the backend GraphQL endpoint for reCAPTCHA config queries."
2332
+ },
2333
+ {
2334
+ "name": "setConfig",
2335
+ "signature": "(configList: Array<{ badgeId: string; enabledBadgePlace?: boolean }>) => Promise<void>",
2336
+ "description": "Fetch store reCAPTCHA config via GraphQL and merge with form config. Stores result in sessionStorage."
2337
+ },
2338
+ {
2339
+ "name": "initReCaptcha",
2340
+ "signature": "(lazyLoadTimeout?: number) => Promise<void>",
2341
+ "description": "Initialize reCAPTCHA by loading the Google script and setting badge position. Default lazy load delay is 3000ms."
2342
+ },
2343
+ {
2344
+ "name": "verifyReCaptcha",
2345
+ "signature": "() => Promise<string | undefined>",
2346
+ "description": "Get a reCAPTCHA v3 token for form submission. Returns undefined if disabled or config is missing."
2347
+ },
2348
+ {
2349
+ "name": "enableLogger",
2350
+ "signature": "(logger: boolean) => void",
2351
+ "description": "Enable or disable debug logging for reCAPTCHA operations."
2352
+ }
2353
+ ],
2354
+ "usageNotes": "Call setEndpoint() before setConfig(). Call initReCaptcha() once during page load. Call verifyReCaptcha() before protected actions like place order or login."
2355
+ }
2356
+ }
2357
+ }