@vtex/faststore 0.0.2 → 0.0.3

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 (91) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +4 -2
  3. package/dist/catalog.json +286 -265
  4. package/dist/components.d.ts +2 -1
  5. package/dist/components.js +2 -1
  6. package/dist/content-types.json +16 -0
  7. package/dist/core/dist/actions/registry.d.ts +1 -1
  8. package/dist/core/dist/actions/registry.js +1 -1
  9. package/dist/core/dist/actions/registry.js.map +1 -1
  10. package/dist/docs/cart.md +2 -2
  11. package/dist/docs/session.md +12 -6
  12. package/dist/docs/sign-in-redirect.md +137 -0
  13. package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +2 -2
  14. package/dist/matter/access-code-sign-in/access-code-sign-in.js +5 -2
  15. package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -1
  16. package/dist/matter/buy-button/buy-button.d.ts +1 -1
  17. package/dist/matter/buy-button/buy-button.js +3 -1
  18. package/dist/matter/buy-button/buy-button.js.map +1 -1
  19. package/dist/matter/cart/cart.d.ts +6 -6
  20. package/dist/matter/cart/cart.js +13 -6
  21. package/dist/matter/cart/cart.js.map +1 -1
  22. package/dist/matter/cart-item/cart-item.d.ts +2 -2
  23. package/dist/matter/cart-item/cart-item.js +5 -2
  24. package/dist/matter/cart-item/cart-item.js.map +1 -1
  25. package/dist/matter/client-preferences/client-preferences.js +3 -1
  26. package/dist/matter/client-preferences/client-preferences.js.map +1 -1
  27. package/dist/matter/client-profile/client-profile.d.ts +1 -1
  28. package/dist/matter/client-profile/client-profile.js +3 -1
  29. package/dist/matter/client-profile/client-profile.js.map +1 -1
  30. package/dist/matter/client-profile-form/client-profile-form.d.ts +1 -1
  31. package/dist/matter/client-profile-form/client-profile-form.js +3 -1
  32. package/dist/matter/client-profile-form/client-profile-form.js.map +1 -1
  33. package/dist/matter/delivery-options/delivery-options-accordion.d.ts +1 -1
  34. package/dist/matter/delivery-options/delivery-options-accordion.js +3 -1
  35. package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -1
  36. package/dist/matter/delivery-options/delivery-options-controller.d.ts +1 -1
  37. package/dist/matter/delivery-options/delivery-options-controller.js +3 -1
  38. package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -1
  39. package/dist/matter/delivery-options/delivery-options.d.ts +1 -1
  40. package/dist/matter/delivery-options/delivery-options.js +3 -1
  41. package/dist/matter/delivery-options/delivery-options.js.map +1 -1
  42. package/dist/matter/email-identification/email-identification.d.ts +1 -1
  43. package/dist/matter/email-identification/email-identification.js +3 -1
  44. package/dist/matter/email-identification/email-identification.js.map +1 -1
  45. package/dist/matter/identity-summary/identity-summary.d.ts +1 -1
  46. package/dist/matter/identity-summary/identity-summary.js +3 -1
  47. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  48. package/dist/matter/product-list/product-list.d.ts +1 -1
  49. package/dist/matter/product-list/product-list.js +3 -1
  50. package/dist/matter/product-list/product-list.js.map +1 -1
  51. package/dist/matter/region/region.d.ts +1 -1
  52. package/dist/matter/region/region.js +5 -2
  53. package/dist/matter/region/region.js.map +1 -1
  54. package/dist/matter/session/session.js +1 -1
  55. package/dist/matter/session/session.js.map +1 -1
  56. package/dist/matter/shipping-address/shipping-address.d.ts +1 -1
  57. package/dist/matter/shipping-address/shipping-address.js +3 -1
  58. package/dist/matter/shipping-address/shipping-address.js.map +1 -1
  59. package/dist/matter/sign-in-form/sign-in-form.d.ts +1 -1
  60. package/dist/matter/sign-in-form/sign-in-form.js +3 -1
  61. package/dist/matter/sign-in-form/sign-in-form.js.map +1 -1
  62. package/dist/matter/sign-in-redirect/sign-in-redirect.d.ts +45 -0
  63. package/dist/matter/sign-in-redirect/sign-in-redirect.js +127 -0
  64. package/dist/matter/sign-in-redirect/sign-in-redirect.js.map +1 -0
  65. package/dist/sdk/actions/actions-override-context.js +37 -0
  66. package/dist/sdk/actions/actions-override-context.js.map +1 -0
  67. package/dist/sdk/actions/cart-action-provider.d.ts +8 -6
  68. package/dist/sdk/actions/cart-action-provider.js +10 -8
  69. package/dist/sdk/actions/cart-action-provider.js.map +1 -1
  70. package/dist/sdk/actions/identity-action-provider.d.ts +2 -2
  71. package/dist/sdk/actions/identity-action-provider.js +4 -4
  72. package/dist/sdk/actions/identity-action-provider.js.map +1 -1
  73. package/dist/sdk/actions/inject-actions.d.ts +1 -5
  74. package/dist/sdk/actions/inject-actions.js +23 -21
  75. package/dist/sdk/actions/inject-actions.js.map +1 -1
  76. package/dist/sdk/actions/region-action-provider.d.ts +4 -3
  77. package/dist/sdk/actions/region-action-provider.js +6 -5
  78. package/dist/sdk/actions/region-action-provider.js.map +1 -1
  79. package/dist/sdk/actions/session-action-provider.d.ts +4 -3
  80. package/dist/sdk/actions/session-action-provider.js +6 -5
  81. package/dist/sdk/actions/session-action-provider.js.map +1 -1
  82. package/dist/sdk/actions/shipping-action-provider.d.ts +4 -3
  83. package/dist/sdk/actions/shipping-action-provider.js +6 -5
  84. package/dist/sdk/actions/shipping-action-provider.js.map +1 -1
  85. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  86. package/dist/sdk/client/create-client.js +24 -2
  87. package/dist/sdk/client/create-client.js.map +1 -1
  88. package/dist/sdk/content/create-content-runtime.js +1 -1
  89. package/dist/utils/safe-href.js +74 -4
  90. package/dist/utils/safe-href.js.map +1 -1
  91. package/package.json +1 -1
package/dist/catalog.json CHANGED
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "guideline": "Presentational one-time-code input with no client-side format check — invalid/errorMessage are host-driven. For the checkout access-code sign-in flow, use it inside AccessCodeSignIn.Validate. See access-code-field.md.",
34
- "docPath": "packages/faststore/src/particles/access-code-field/access-code-field.md"
34
+ "docPath": "src/particles/access-code-field/access-code-field.md"
35
35
  },
36
36
  "AccordionRoot": {
37
37
  "name": "AccordionRoot",
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "schema": {},
135
135
  "guideline": "Provides a postal address to descendant presentational components via context (no business coupling). Compose a matter component that owns address data as the source of the address prop, and AddressSummary (or a future alternative presentation reading the same context) as the child that renders it.",
136
- "docPath": "packages/faststore/src/particles/address-summary/address-summary.md"
136
+ "docPath": "src/particles/address-summary/address-summary.md"
137
137
  },
138
138
  "AddressSummary": {
139
139
  "name": "AddressSummary",
@@ -145,7 +145,7 @@
145
145
  },
146
146
  "schema": {},
147
147
  "guideline": "The address block: recipient, street line, locality line, in that order by default. Compose AddressSummaryRecipient / Street / Locality as children to choose the order or drop a line; the wrapper, and any styling on it, is the same either way. Must be a descendant of AddressSummaryRoot.",
148
- "docPath": "packages/faststore/src/particles/address-summary/address-summary.md"
148
+ "docPath": "src/particles/address-summary/address-summary.md"
149
149
  },
150
150
  "AddressSummaryRecipient": {
151
151
  "name": "AddressSummaryRecipient",
@@ -157,7 +157,7 @@
157
157
  },
158
158
  "schema": {},
159
159
  "guideline": "Who the delivery is addressed to, or nothing when the address carries no recipient. Place it in whatever order the summary should read. Must be a descendant of AddressSummaryRoot.",
160
- "docPath": "packages/faststore/src/particles/address-summary/address-summary.md"
160
+ "docPath": "src/particles/address-summary/address-summary.md"
161
161
  },
162
162
  "AddressSummaryStreet": {
163
163
  "name": "AddressSummaryStreet",
@@ -169,7 +169,7 @@
169
169
  },
170
170
  "schema": {},
171
171
  "guideline": "Street, number and complement on one line, or nothing when all three are absent. Must be a descendant of AddressSummaryRoot.",
172
- "docPath": "packages/faststore/src/particles/address-summary/address-summary.md"
172
+ "docPath": "src/particles/address-summary/address-summary.md"
173
173
  },
174
174
  "AddressSummaryLocality": {
175
175
  "name": "AddressSummaryLocality",
@@ -181,7 +181,7 @@
181
181
  },
182
182
  "schema": {},
183
183
  "guideline": "Neighborhood, city, state and postal code on one line, or nothing when all are absent. Must be a descendant of AddressSummaryRoot.",
184
- "docPath": "packages/faststore/src/particles/address-summary/address-summary.md"
184
+ "docPath": "src/particles/address-summary/address-summary.md"
185
185
  },
186
186
  "Badge": {
187
187
  "name": "Badge",
@@ -241,7 +241,7 @@
241
241
  }
242
242
  },
243
243
  "guideline": "Root of the carousel. Provides paging state to all parts. Compose as: CarouselRoot > (CarouselTrack > [item children] + CarouselPrevious + CarouselNext + CarouselBullets). Set infiniteMode=true to loop seamlessly (arrows never disable); variant=\"scroll\" for native overflow, \"slide\" for transform transitions. itemsPerPage sets how many children are visible per page. Holds no product or media data — nest any children in CarouselTrack.",
244
- "docPath": "packages/faststore/src/particles/carousel/carousel.md"
244
+ "docPath": "src/particles/carousel/carousel.md"
245
245
  },
246
246
  "CarouselTrack": {
247
247
  "name": "CarouselTrack",
@@ -252,7 +252,7 @@
252
252
  },
253
253
  "schema": {},
254
254
  "guideline": "Lays out the carousel items as a single track and reports the child count to CarouselRoot. Wraps each child in an item slot sized to 100/itemsPerPage percent. In slide variant it translates by page; in scroll variant it is the native scroll-snap container. Place the iterated children (e.g. product cards) directly inside. Must be inside CarouselRoot.",
255
- "docPath": "packages/faststore/src/particles/carousel/carousel.md"
255
+ "docPath": "src/particles/carousel/carousel.md"
256
256
  },
257
257
  "CarouselPrevious": {
258
258
  "name": "CarouselPrevious",
@@ -263,7 +263,7 @@
263
263
  },
264
264
  "schema": {},
265
265
  "guideline": "Moves the track one page backward. Disabled on the first page when infiniteMode is off; never disabled when infiniteMode is on (wraps to the last page). Accepts any children (Icon, text). Must be inside CarouselRoot.",
266
- "docPath": "packages/faststore/src/particles/carousel/carousel.md"
266
+ "docPath": "src/particles/carousel/carousel.md"
267
267
  },
268
268
  "CarouselNext": {
269
269
  "name": "CarouselNext",
@@ -274,7 +274,7 @@
274
274
  },
275
275
  "schema": {},
276
276
  "guideline": "Moves the track one page forward. Disabled on the last page when infiniteMode is off; never disabled when infiniteMode is on (wraps to the first page). Accepts any children (Icon, text). Must be inside CarouselRoot.",
277
- "docPath": "packages/faststore/src/particles/carousel/carousel.md"
277
+ "docPath": "src/particles/carousel/carousel.md"
278
278
  },
279
279
  "CarouselBullets": {
280
280
  "name": "CarouselBullets",
@@ -301,7 +301,7 @@
301
301
  }
302
302
  },
303
303
  "guideline": "Renders one bullet button per page and marks the active page. Supports ArrowLeft/ArrowRight/Home/End keyboard navigation. Returns null when there is a single page unless hideWhenSingle={false}. Use {page} in bulletLabel for the 1-based page number. Must be inside CarouselRoot.",
304
- "docPath": "packages/faststore/src/particles/carousel/carousel.md"
304
+ "docPath": "src/particles/carousel/carousel.md"
305
305
  },
306
306
  "CheckboxRoot": {
307
307
  "name": "CheckboxRoot",
@@ -341,7 +341,7 @@
341
341
  "category": "layout"
342
342
  },
343
343
  "schema": {},
344
- "docPath": "packages/faststore/src/particles/container/container.md"
344
+ "docPath": "src/particles/container/container.md"
345
345
  },
346
346
  "DialogRoot": {
347
347
  "name": "DialogRoot",
@@ -476,7 +476,7 @@
476
476
  }
477
477
  },
478
478
  "guideline": "Presentational tax-document input composing the Field particle; applies the locale mask on change and runs check-digit validation on blur/submit. Data-agnostic (value/defaultValue/onValueChange); a host wires it to the shopper profile. CPF is optional by default.",
479
- "docPath": "packages/faststore/src/particles/document-field/document-field.md"
479
+ "docPath": "src/particles/document-field/document-field.md"
480
480
  },
481
481
  "DrawerRoot": {
482
482
  "name": "DrawerRoot",
@@ -606,7 +606,7 @@
606
606
  }
607
607
  },
608
608
  "guideline": "Presentational, data-agnostic email input with blur/submit format validation; for a checkout-bound field use EmailIdentificationControl instead. See email-field.md.",
609
- "docPath": "packages/faststore/src/particles/email-field/email-field.md"
609
+ "docPath": "src/particles/email-field/email-field.md"
610
610
  },
611
611
  "FieldRoot": {
612
612
  "name": "FieldRoot",
@@ -709,7 +709,7 @@
709
709
  }
710
710
  },
711
711
  "guideline": "The store's legal notice, rendered as plain text at the bottom of the footer. CMS content wins over the text prop, and nothing renders when neither supplies a notice. See footer-copyright.md.",
712
- "docPath": "packages/faststore/src/particles/footer-copyright/footer-copyright.md"
712
+ "docPath": "src/particles/footer-copyright/footer-copyright.md"
713
713
  },
714
714
  "FooterLinkGroup": {
715
715
  "name": "FooterLinkGroup",
@@ -730,7 +730,7 @@
730
730
  }
731
731
  },
732
732
  "guideline": "One heading and its institutional links, both CMS-editable. Renders as a desktop column and a mobile accordion at the same time; the store's swatch pair decides which one a breakpoint shows. See footer-link-group.md.",
733
- "docPath": "packages/faststore/src/particles/footer-link-group/footer-link-group.md"
733
+ "docPath": "src/particles/footer-link-group/footer-link-group.md"
734
734
  },
735
735
  "FooterRoot": {
736
736
  "name": "FooterRoot",
@@ -741,7 +741,7 @@
741
741
  },
742
742
  "schema": {},
743
743
  "guideline": "Page-bottom footer landmark wrapping the footer sections. Place it at the top level of a layout schema: nested inside a section or nav, the browser exposes no contentinfo landmark.",
744
- "docPath": "packages/faststore/src/particles/footer-root/footer-root.md"
744
+ "docPath": "src/particles/footer-root/footer-root.md"
745
745
  },
746
746
  "FooterSocial": {
747
747
  "name": "FooterSocial",
@@ -762,7 +762,7 @@
762
762
  }
763
763
  },
764
764
  "guideline": "The store's official social profiles as a row of icon links, both the heading and the list CMS-editable. Every link opens in a new tab. Every predefined platform name must be listed in the store's icons.include. See footer-social.md.",
765
- "docPath": "packages/faststore/src/particles/footer-social/footer-social.md"
765
+ "docPath": "src/particles/footer-social/footer-social.md"
766
766
  },
767
767
  "GalleryRoot": {
768
768
  "name": "GalleryRoot",
@@ -789,7 +789,7 @@
789
789
  }
790
790
  },
791
791
  "guideline": "Root of the gallery. Manages selected media index, fullscreen state, and zoom state. Compose as: GalleryRoot > (GalleryMainMedia (or GalleryZoom > (GalleryMainMedia + GalleryZoomLens + GalleryZoomResult)) + GalleryThumbnails > [GalleryThumbnail + GalleryOverflowCount] + GalleryFullscreen > [GalleryFullscreenClose + GalleryPrevious + GalleryMainMedia + GalleryNext + GalleryThumbnails]). Set selectOnHover=true for hover-to-preview; thumbnailOpensFullscreen=true to open fullscreen on thumbnail click.",
792
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
792
+ "docPath": "src/particles/gallery/gallery.md"
793
793
  },
794
794
  "GalleryMainMedia": {
795
795
  "name": "GalleryMainMedia",
@@ -831,7 +831,7 @@
831
831
  }
832
832
  },
833
833
  "guideline": "Renders the currently selected media item from GalleryRoot context: <img> for images, <video> for videos. Supports swipe gestures (50px threshold) to navigate. Set clickOpensFullscreen=true to open the fullscreen overlay on click. Must be inside GalleryRoot or GalleryZoom.",
834
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
834
+ "docPath": "src/particles/gallery/gallery.md"
835
835
  },
836
836
  "GalleryThumbnails": {
837
837
  "name": "GalleryThumbnails",
@@ -870,7 +870,7 @@
870
870
  }
871
871
  },
872
872
  "guideline": "Iterates media items and renders its children once per item. Returns null when there are 0 or 1 media items unless hideWhenSingle={false}. Set maxVisible to cap visible thumbnails. Without slider: last slot gets isOverflow=true for GalleryOverflowCount. With slider=true: window driven by GalleryThumbnailsPrevious/Next. Add animated=true for smooth scroll — also set direction to match the flex axis of the container.",
873
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
873
+ "docPath": "src/particles/gallery/gallery.md"
874
874
  },
875
875
  "GalleryThumbnailsPrevious": {
876
876
  "name": "GalleryThumbnailsPrevious",
@@ -887,7 +887,7 @@
887
887
  }
888
888
  },
889
889
  "guideline": "Scrolls the thumbnail strip backward. Only active when GalleryThumbnails slider=true. Disabled at the first thumbnail. step=1 (default) moves one at a time; pass step equal to maxVisible to jump a full window. Place as sibling of GalleryThumbnails.",
890
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
890
+ "docPath": "src/particles/gallery/gallery.md"
891
891
  },
892
892
  "GalleryThumbnailsNext": {
893
893
  "name": "GalleryThumbnailsNext",
@@ -904,7 +904,7 @@
904
904
  }
905
905
  },
906
906
  "guideline": "Scrolls the thumbnail strip forward. Only active when GalleryThumbnails slider=true. Disabled at the last visible thumbnail. step=1 (default) moves one at a time; pass step equal to maxVisible to jump a full window. Place as sibling of GalleryThumbnails.",
907
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
907
+ "docPath": "src/particles/gallery/gallery.md"
908
908
  },
909
909
  "GalleryThumbnail": {
910
910
  "name": "GalleryThumbnail",
@@ -931,7 +931,7 @@
931
931
  }
932
932
  },
933
933
  "guideline": "Thumbnail button for a single media item. Reads from GalleryItemContext — must be inside GalleryThumbnails. Adds data-fs-gallery-thumbnail-selected=\"true\" when active. For videos, renders previewImageUrl as the thumbnail src.",
934
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
934
+ "docPath": "src/particles/gallery/gallery.md"
935
935
  },
936
936
  "GalleryOverflowCount": {
937
937
  "name": "GalleryOverflowCount",
@@ -953,7 +953,7 @@
953
953
  }
954
954
  },
955
955
  "guideline": "Overflow indicator. Only renders when isOverflow=true in GalleryItemContext — place alongside GalleryThumbnail inside GalleryThumbnails. Clicking opens fullscreen. Use template=\"+{count}\" to customize the visible label. The rendered button carries an aria-label (default \"View all {total} images\") so screen readers announce the full action, not just the count.",
956
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
956
+ "docPath": "src/particles/gallery/gallery.md"
957
957
  },
958
958
  "GalleryMedia": {
959
959
  "name": "GalleryMedia",
@@ -995,7 +995,7 @@
995
995
  }
996
996
  },
997
997
  "guideline": "Full-size media display for items inside GalleryThumbnails. Unlike GalleryThumbnail, renders as a div (not a button) — use for grid layouts and vertical fullscreen stacks. Set clickOpensFullscreen=true to select the item and open fullscreen on click. Must be inside GalleryThumbnails.",
998
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
998
+ "docPath": "src/particles/gallery/gallery.md"
999
999
  },
1000
1000
  "GalleryZoom": {
1001
1001
  "name": "GalleryZoom",
@@ -1017,7 +1017,7 @@
1017
1017
  }
1018
1018
  },
1019
1019
  "guideline": "Zoom container. Wrap GalleryMainMedia inside it to activate zoom on pointer enter (images only, not videos). Place GalleryZoomLens as a sibling of GalleryMainMedia inside GalleryZoom for the cursor indicator. Place GalleryZoomResult anywhere in GalleryRoot — as a sibling of GalleryZoom (side-panel) or absolute inside GalleryZoom (on-image overlay). Set magnification to control zoom level (default 2).",
1020
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1020
+ "docPath": "src/particles/gallery/gallery.md"
1021
1021
  },
1022
1022
  "GalleryZoomLens": {
1023
1023
  "name": "GalleryZoomLens",
@@ -1028,7 +1028,7 @@
1028
1028
  },
1029
1029
  "schema": {},
1030
1030
  "guideline": "Cursor focus indicator inside GalleryZoom. Only renders when zoom is active. Must be inside GalleryZoom. Style as absolute-positioned square — uses CSS custom properties --zoom-x, --zoom-y, --lens-size for positioning.",
1031
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1031
+ "docPath": "src/particles/gallery/gallery.md"
1032
1032
  },
1033
1033
  "GalleryZoomResult": {
1034
1034
  "name": "GalleryZoomResult",
@@ -1039,7 +1039,7 @@
1039
1039
  },
1040
1040
  "schema": {},
1041
1041
  "guideline": "Magnified view driven by cursor position from GalleryZoom context. Only renders when zoom is active on an image. Place as sibling of GalleryZoom for side-panel zoom, or absolute inside GalleryZoom for on-image zoom.",
1042
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1042
+ "docPath": "src/particles/gallery/gallery.md"
1043
1043
  },
1044
1044
  "GalleryFullscreen": {
1045
1045
  "name": "GalleryFullscreen",
@@ -1050,7 +1050,7 @@
1050
1050
  },
1051
1051
  "schema": {},
1052
1052
  "guideline": "Fullscreen overlay controlled by GalleryRoot state. Opens via GalleryOverflowCount, GalleryFullscreenTrigger, or thumbnailOpensFullscreen=true. Wraps a Dialog internally — place GalleryFullscreenClose, GalleryPrevious, GalleryMainMedia, GalleryNext, and optionally GalleryThumbnails as children. If no GalleryFullscreenTitle is composed, a default sr-only \"Gallery\" title is rendered automatically so the dialog always has an accessible name. Must be inside GalleryRoot.",
1053
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1053
+ "docPath": "src/particles/gallery/gallery.md"
1054
1054
  },
1055
1055
  "GalleryFullscreenTitle": {
1056
1056
  "name": "GalleryFullscreenTitle",
@@ -1061,7 +1061,7 @@
1061
1061
  },
1062
1062
  "schema": {},
1063
1063
  "guideline": "Accessible title for the fullscreen dialog. Required for screen readers. Use sr-only to hide it visually or omit the class to display it. Must be inside GalleryFullscreen.",
1064
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1064
+ "docPath": "src/particles/gallery/gallery.md"
1065
1065
  },
1066
1066
  "GalleryFullscreenClose": {
1067
1067
  "name": "GalleryFullscreenClose",
@@ -1072,7 +1072,7 @@
1072
1072
  },
1073
1073
  "schema": {},
1074
1074
  "guideline": "Closes the fullscreen overlay. Must be inside GalleryFullscreen. Place at the top-right corner. Accepts any children (Icon, text).",
1075
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1075
+ "docPath": "src/particles/gallery/gallery.md"
1076
1076
  },
1077
1077
  "GalleryPrevious": {
1078
1078
  "name": "GalleryPrevious",
@@ -1089,7 +1089,7 @@
1089
1089
  }
1090
1090
  },
1091
1091
  "guideline": "Navigates to the previous media item; wraps to the last by default, or stops at the first with wrap={false}. Use inside GalleryFullscreen or inline for carousel controls. Accepts any children (Icon, text).",
1092
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1092
+ "docPath": "src/particles/gallery/gallery.md"
1093
1093
  },
1094
1094
  "GalleryNext": {
1095
1095
  "name": "GalleryNext",
@@ -1106,7 +1106,7 @@
1106
1106
  }
1107
1107
  },
1108
1108
  "guideline": "Navigates to the next media item; wraps to the first by default, or stops at the last with wrap={false}. Use inside GalleryFullscreen or inline for carousel controls. Accepts any children (Icon, text).",
1109
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1109
+ "docPath": "src/particles/gallery/gallery.md"
1110
1110
  },
1111
1111
  "GalleryMediaCount": {
1112
1112
  "name": "GalleryMediaCount",
@@ -1123,7 +1123,7 @@
1123
1123
  }
1124
1124
  },
1125
1125
  "guideline": "Displays the current media position and total count (e.g. \"2 / 10\"). Use {current} and {total} placeholders in template. Place anywhere inside GalleryRoot — typically in GalleryFullscreen or above GalleryMainMedia.",
1126
- "docPath": "packages/faststore/src/particles/gallery/gallery.md"
1126
+ "docPath": "src/particles/gallery/gallery.md"
1127
1127
  },
1128
1128
  "HeaderRoot": {
1129
1129
  "name": "HeaderRoot",
@@ -1134,7 +1134,7 @@
1134
1134
  },
1135
1135
  "schema": {},
1136
1136
  "guideline": "Page-top header landmark wrapping the logo, navigation, region control and account entry point. Place it at the top level of a layout schema: nested inside a section or nav, the browser exposes no banner landmark.",
1137
- "docPath": "packages/faststore/src/particles/header-root/header-root.md"
1137
+ "docPath": "src/particles/header-root/header-root.md"
1138
1138
  },
1139
1139
  "Icon": {
1140
1140
  "name": "Icon",
@@ -1210,7 +1210,7 @@
1210
1210
  }
1211
1211
  },
1212
1212
  "guideline": "The store's value propositions as a strip of icon-and-copy items, the whole list CMS-editable: each item carries a title, up to two description lines, either a predefined icon or an uploaded one, and an optional href that turns the whole block into a link. Every predefined icon name must be listed in the store's icons.include. Renders nothing when unconfigured. See incentives.md.",
1213
- "docPath": "packages/faststore/src/particles/incentives/incentives.md"
1213
+ "docPath": "src/particles/incentives/incentives.md"
1214
1214
  },
1215
1215
  "Input": {
1216
1216
  "name": "Input",
@@ -1254,7 +1254,7 @@
1254
1254
  }
1255
1255
  },
1256
1256
  "guideline": "Brand logo linking to the configured home; a CMS entry overrides its src, alt, and href at runtime. Every prop is optional: an element bound to a CMS entry should author none of them, so an unconfigured store renders no logo instead of a placeholder. Author src and alt only where no entry supplies them, never as a fallback beside one. Size it responsively with a swatch on data-fs-logo, and reach the mark itself through data-fs-logo-image. A destination that is not an http, https, mailto, tel, or site-relative URL is dropped and the image renders unlinked. Loads eagerly for the above-the-fold header; set loading to lazy below the fold. Composes the Image and NavigationLink particles.",
1257
- "docPath": "packages/faststore/src/particles/logo/logo.md"
1257
+ "docPath": "src/particles/logo/logo.md"
1258
1258
  },
1259
1259
  "MenuRoot": {
1260
1260
  "name": "MenuRoot",
@@ -1538,7 +1538,7 @@
1538
1538
  }
1539
1539
  },
1540
1540
  "guideline": "Determinate meter bar showing a value along a known range (ARIA role=\"meter\"). Wrap a MeterTrack + MeterIndicator; optionally a MeterLabel and MeterValue. See meter.md.",
1541
- "docPath": "packages/faststore/src/particles/meter/meter.md"
1541
+ "docPath": "src/particles/meter/meter.md"
1542
1542
  },
1543
1543
  "MeterTrack": {
1544
1544
  "name": "MeterTrack",
@@ -1549,7 +1549,7 @@
1549
1549
  },
1550
1550
  "schema": {},
1551
1551
  "guideline": "The full-range groove of the meter. Direct child of MeterRoot; wraps MeterIndicator. See meter.md.",
1552
- "docPath": "packages/faststore/src/particles/meter/meter.md"
1552
+ "docPath": "src/particles/meter/meter.md"
1553
1553
  },
1554
1554
  "MeterIndicator": {
1555
1555
  "name": "MeterIndicator",
@@ -1560,7 +1560,7 @@
1560
1560
  },
1561
1561
  "schema": {},
1562
1562
  "guideline": "The filled portion of the meter; Base UI sizes it to the value. Direct child of MeterTrack. See meter.md.",
1563
- "docPath": "packages/faststore/src/particles/meter/meter.md"
1563
+ "docPath": "src/particles/meter/meter.md"
1564
1564
  },
1565
1565
  "MeterLabel": {
1566
1566
  "name": "MeterLabel",
@@ -1571,7 +1571,7 @@
1571
1571
  },
1572
1572
  "schema": {},
1573
1573
  "guideline": "Accessible text label for the meter. Child of MeterRoot. See meter.md.",
1574
- "docPath": "packages/faststore/src/particles/meter/meter.md"
1574
+ "docPath": "src/particles/meter/meter.md"
1575
1575
  },
1576
1576
  "MeterValue": {
1577
1577
  "name": "MeterValue",
@@ -1582,7 +1582,7 @@
1582
1582
  },
1583
1583
  "schema": {},
1584
1584
  "guideline": "Renders the current value as text. Child of MeterRoot. See meter.md.",
1585
- "docPath": "packages/faststore/src/particles/meter/meter.md"
1585
+ "docPath": "src/particles/meter/meter.md"
1586
1586
  },
1587
1587
  "NavigationLink": {
1588
1588
  "name": "NavigationLink",
@@ -1607,7 +1607,7 @@
1607
1607
  }
1608
1608
  },
1609
1609
  "guideline": "Client-side navigation link built on Next.js Link. Use for all internal navigation to avoid full-page reloads. Set target to _blank to open the destination in a new tab; when you do, write an \"(opens in new tab)\" cue into the link text, because the component adds no announcement of its own. A CMS entry overrides the link text, href, and target at runtime; a destination it supplies that is not an http, https, mailto, tel, or site-relative URL is refused and the authored href stands.",
1610
- "docPath": "packages/faststore/src/particles/navigation-link/navigation-link.md"
1610
+ "docPath": "src/particles/navigation-link/navigation-link.md"
1611
1611
  },
1612
1612
  "NavigationLinkList": {
1613
1613
  "name": "NavigationLinkList",
@@ -1624,7 +1624,7 @@
1624
1624
  }
1625
1625
  },
1626
1626
  "guideline": "The list of navigation links as one CMS-editable collection, so a merchant adds, removes and reorders them without a deployment. Owns its own <ul>, so compose it directly under NavigationMenuRoot for the desktop bar and inside DrawerPopup for the mobile panel — reference the same element id from both and one entry feeds both surfaces. See navigation-link-list.md.",
1627
- "docPath": "packages/faststore/src/particles/navigation-link-list/navigation-link-list.md"
1627
+ "docPath": "src/particles/navigation-link-list/navigation-link-list.md"
1628
1628
  },
1629
1629
  "NavigationMenuRoot": {
1630
1630
  "name": "NavigationMenuRoot",
@@ -1654,7 +1654,7 @@
1654
1654
  }
1655
1655
  },
1656
1656
  "guideline": "Root of the site navigation with animated flyout panels. Manages hover/focus open state across menu items. Compose as: NavigationMenuRoot > (NavigationMenuList > [NavigationMenuItem > (NavigationMenuTrigger > NavigationMenuIcon + NavigationMenuContent > [NavigationMenuLink])] + NavigationMenuPortal > NavigationMenuPositioner > NavigationMenuPopup > (NavigationMenuArrow + NavigationMenuViewport)). Content goes inside NavigationMenuItem (not Portal); the Portal renders the animated Popup that frames it. Set delay/closeDelay to control hover timing.",
1657
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1657
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1658
1658
  },
1659
1659
  "NavigationMenuList": {
1660
1660
  "name": "NavigationMenuList",
@@ -1665,7 +1665,7 @@
1665
1665
  },
1666
1666
  "schema": {},
1667
1667
  "guideline": "The <ul> container holding all NavigationMenu.Item elements.",
1668
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1668
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1669
1669
  },
1670
1670
  "NavigationMenuItem": {
1671
1671
  "name": "NavigationMenuItem",
@@ -1681,7 +1681,7 @@
1681
1681
  }
1682
1682
  },
1683
1683
  "guideline": "One nav entry. Requires a unique value prop. Combine with NavigationMenu.Trigger + NavigationMenu.Content.",
1684
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1684
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1685
1685
  },
1686
1686
  "NavigationMenuTrigger": {
1687
1687
  "name": "NavigationMenuTrigger",
@@ -1692,7 +1692,7 @@
1692
1692
  },
1693
1693
  "schema": {},
1694
1694
  "guideline": "Button that activates the flyout panel for a NavigationMenu.Item.",
1695
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1695
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1696
1696
  },
1697
1697
  "NavigationMenuIcon": {
1698
1698
  "name": "NavigationMenuIcon",
@@ -1703,7 +1703,7 @@
1703
1703
  },
1704
1704
  "schema": {},
1705
1705
  "guideline": "Decorative icon (e.g. chevron) inside NavigationMenu.Trigger. Rotates via data-open.",
1706
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1706
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1707
1707
  },
1708
1708
  "NavigationMenuContent": {
1709
1709
  "name": "NavigationMenuContent",
@@ -1714,7 +1714,7 @@
1714
1714
  },
1715
1715
  "schema": {},
1716
1716
  "guideline": "The actual content of the flyout panel, placed inside NavigationMenu.Item alongside Trigger. Rendered inside the Viewport via the Portal.",
1717
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1717
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1718
1718
  },
1719
1719
  "NavigationMenuLink": {
1720
1720
  "name": "NavigationMenuLink",
@@ -1725,7 +1725,7 @@
1725
1725
  },
1726
1726
  "schema": {},
1727
1727
  "guideline": "Accessible anchor link inside NavigationMenu.Content. Closes the menu on navigation.",
1728
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1728
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1729
1729
  },
1730
1730
  "NavigationMenuPortal": {
1731
1731
  "name": "NavigationMenuPortal",
@@ -1736,7 +1736,7 @@
1736
1736
  },
1737
1737
  "schema": {},
1738
1738
  "guideline": "Teleports the Positioner to <body>. Wraps NavigationMenu.Positioner.",
1739
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1739
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1740
1740
  },
1741
1741
  "NavigationMenuPositioner": {
1742
1742
  "name": "NavigationMenuPositioner",
@@ -1772,7 +1772,7 @@
1772
1772
  }
1773
1773
  },
1774
1774
  "guideline": "Controls popup placement relative to the active nav item.",
1775
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1775
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1776
1776
  },
1777
1777
  "NavigationMenuPopup": {
1778
1778
  "name": "NavigationMenuPopup",
@@ -1783,7 +1783,7 @@
1783
1783
  },
1784
1784
  "schema": {},
1785
1785
  "guideline": "Animated popup container wrapping NavigationMenu.Viewport.",
1786
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1786
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1787
1787
  },
1788
1788
  "NavigationMenuArrow": {
1789
1789
  "name": "NavigationMenuArrow",
@@ -1794,7 +1794,7 @@
1794
1794
  },
1795
1795
  "schema": {},
1796
1796
  "guideline": "Optional pointing arrow inside NavigationMenu.Popup.",
1797
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1797
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1798
1798
  },
1799
1799
  "NavigationMenuViewport": {
1800
1800
  "name": "NavigationMenuViewport",
@@ -1805,7 +1805,7 @@
1805
1805
  },
1806
1806
  "schema": {},
1807
1807
  "guideline": "Shared animation container inside the Popup. All Content panels share this viewport for smooth transitions between nav items.",
1808
- "docPath": "packages/faststore/src/particles/navigation-menu/navigation-menu.md"
1808
+ "docPath": "src/particles/navigation-menu/navigation-menu.md"
1809
1809
  },
1810
1810
  "NumberFieldRoot": {
1811
1811
  "name": "NumberFieldRoot",
@@ -1959,7 +1959,7 @@
1959
1959
  }
1960
1960
  },
1961
1961
  "guideline": "The store's accepted payment methods as a strip of flags, both the heading and the list CMS-editable. Not PricingPaymentMethodsList, which renders a product's installment plans from commerce data. Every predefined method name must be listed in the store's icons.include. See payment-methods.md.",
1962
- "docPath": "packages/faststore/src/particles/payment-methods/payment-methods.md"
1962
+ "docPath": "src/particles/payment-methods/payment-methods.md"
1963
1963
  },
1964
1964
  "PhoneField": {
1965
1965
  "name": "PhoneField",
@@ -1996,7 +1996,7 @@
1996
1996
  }
1997
1997
  },
1998
1998
  "guideline": "Locale-aware, business-agnostic phone number input composed from the field + input particles. Applies country masking, validates on blur, and exposes its value via onValueChange. Bind it to a data source (e.g. ClientProfilePhoneControl for checkout) to persist the value.",
1999
- "docPath": "packages/faststore/src/particles/phone-field/phone-field.md"
1999
+ "docPath": "src/particles/phone-field/phone-field.md"
2000
2000
  },
2001
2001
  "PopoverRoot": {
2002
2002
  "name": "PopoverRoot",
@@ -2197,7 +2197,7 @@
2197
2197
  }
2198
2198
  },
2199
2199
  "guideline": "Presentational postal-code input composing the Field and Input particles; formats the value against the configured mask template as the shopper types and flags an incomplete value on blur. Data-agnostic (value/defaultValue/onValueChange) — a host such as the region modal owns submission and surfaces server errors through invalid/errorMessage. Set mask to the country format at build time (default 99999-999, BR CEP); the CMS edits only label, placeholder, and error copy.",
2200
- "docPath": "packages/faststore/src/particles/postal-code-field/postal-code-field.md"
2200
+ "docPath": "src/particles/postal-code-field/postal-code-field.md"
2201
2201
  },
2202
2202
  "Promotion": {
2203
2203
  "name": "Promotion",
@@ -2209,7 +2209,7 @@
2209
2209
  },
2210
2210
  "schema": {},
2211
2211
  "guideline": "Editorial promotional callout driven entirely by CMS content. See promotion.md.",
2212
- "docPath": "packages/faststore/src/particles/promotion/promotion.md"
2212
+ "docPath": "src/particles/promotion/promotion.md"
2213
2213
  },
2214
2214
  "QuantitySelectorRoot": {
2215
2215
  "name": "QuantitySelectorRoot",
@@ -2712,7 +2712,7 @@
2712
2712
  }
2713
2713
  },
2714
2714
  "guideline": "Root of the tabs. Groups tabs and the corresponding panels. Compose as: TabsRoot > TabsList > TabsTab[] + TabsPanel[]. Set defaultValue to the value of the tab that should be active on first render; otherwise the first tab is selected. Orientation controls arrow-key navigation axis.",
2715
- "docPath": "packages/faststore/src/particles/tabs/tabs.md"
2715
+ "docPath": "src/particles/tabs/tabs.md"
2716
2716
  },
2717
2717
  "TabsList": {
2718
2718
  "name": "TabsList",
@@ -2734,7 +2734,7 @@
2734
2734
  }
2735
2735
  },
2736
2736
  "guideline": "Groups the individual tab buttons inside TabsRoot. Owns roving tabindex and arrow-key navigation. Set activateOnFocus=true to switch the active panel as soon as a tab gets keyboard focus.",
2737
- "docPath": "packages/faststore/src/particles/tabs/tabs.md"
2737
+ "docPath": "src/particles/tabs/tabs.md"
2738
2738
  },
2739
2739
  "TabsTab": {
2740
2740
  "name": "TabsTab",
@@ -2755,7 +2755,7 @@
2755
2755
  }
2756
2756
  },
2757
2757
  "guideline": "Individual tab button inside TabsList. Requires a unique `value` within the enclosing TabsRoot. Base UI sets data-active='' on the active tab and manages ARIA attributes automatically.",
2758
- "docPath": "packages/faststore/src/particles/tabs/tabs.md"
2758
+ "docPath": "src/particles/tabs/tabs.md"
2759
2759
  },
2760
2760
  "TabsPanel": {
2761
2761
  "name": "TabsPanel",
@@ -2776,7 +2776,7 @@
2776
2776
  }
2777
2777
  },
2778
2778
  "guideline": "Content panel rendered when its `value` matches the active TabsRoot value. Place inside TabsRoot (anywhere — not necessarily inside TabsList). Set keepMounted=true to keep hidden panels in the DOM (useful for forms or expensive trees that need to preserve state).",
2779
- "docPath": "packages/faststore/src/particles/tabs/tabs.md"
2779
+ "docPath": "src/particles/tabs/tabs.md"
2780
2780
  },
2781
2781
  "TabsIndicator": {
2782
2782
  "name": "TabsIndicator",
@@ -2787,7 +2787,7 @@
2787
2787
  },
2788
2788
  "schema": {},
2789
2789
  "guideline": "Optional visual indicator that animates between active tabs. Place inside TabsList. Base UI sets CSS custom properties for the active tab position and size — style with width/height and translate based on those vars.",
2790
- "docPath": "packages/faststore/src/particles/tabs/tabs.md"
2790
+ "docPath": "src/particles/tabs/tabs.md"
2791
2791
  },
2792
2792
  "Text": {
2793
2793
  "name": "Text",
@@ -2824,7 +2824,7 @@
2824
2824
  }
2825
2825
  },
2826
2826
  "guideline": "Mount once at the layout root to enable toasts anywhere in the tree. Compose as: ToastProvider > ToastPortal > ToastViewport > (ToastRoot per active toast). Components trigger toasts via the useToast() hook, not through page-schema composition.",
2827
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2827
+ "docPath": "src/particles/toast/toast.md"
2828
2828
  },
2829
2829
  "ToastPortal": {
2830
2830
  "name": "ToastPortal",
@@ -2835,7 +2835,7 @@
2835
2835
  },
2836
2836
  "schema": {},
2837
2837
  "guideline": "Renders its children (ToastViewport) outside the DOM tree, into document.body. Direct child of ToastProvider.",
2838
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2838
+ "docPath": "src/particles/toast/toast.md"
2839
2839
  },
2840
2840
  "ToastViewport": {
2841
2841
  "name": "ToastViewport",
@@ -2846,7 +2846,7 @@
2846
2846
  },
2847
2847
  "schema": {},
2848
2848
  "guideline": "The fixed-position stack container for all active toasts. Position it with a swatch on data-fs-toast-viewport (e.g. bottom-right vs. top-center). Direct child of ToastPortal.",
2849
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2849
+ "docPath": "src/particles/toast/toast.md"
2850
2850
  },
2851
2851
  "ToastRoot": {
2852
2852
  "name": "ToastRoot",
@@ -2857,7 +2857,7 @@
2857
2857
  },
2858
2858
  "schema": {},
2859
2859
  "guideline": "One instance per active toast, rendered by mapping over useToast().toasts. Compose as: ToastRoot > (Icon + ToastTitle + ToastDescription + ToastAction + ToastClose), all optional except at least one of Title/Description.",
2860
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2860
+ "docPath": "src/particles/toast/toast.md"
2861
2861
  },
2862
2862
  "ToastTitle": {
2863
2863
  "name": "ToastTitle",
@@ -2868,7 +2868,7 @@
2868
2868
  },
2869
2869
  "schema": {},
2870
2870
  "guideline": "Renders the toast.title automatically when composed with no children. Direct child of ToastRoot.",
2871
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2871
+ "docPath": "src/particles/toast/toast.md"
2872
2872
  },
2873
2873
  "ToastDescription": {
2874
2874
  "name": "ToastDescription",
@@ -2879,7 +2879,7 @@
2879
2879
  },
2880
2880
  "schema": {},
2881
2881
  "guideline": "Renders the toast.description automatically when composed with no children. Direct child of ToastRoot, after ToastTitle.",
2882
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2882
+ "docPath": "src/particles/toast/toast.md"
2883
2883
  },
2884
2884
  "ToastAction": {
2885
2885
  "name": "ToastAction",
@@ -2890,7 +2890,7 @@
2890
2890
  },
2891
2891
  "schema": {},
2892
2892
  "guideline": "Reversible-action button (e.g. Undo) forwarding the toast's actionProps. Omit for toasts with no action.",
2893
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2893
+ "docPath": "src/particles/toast/toast.md"
2894
2894
  },
2895
2895
  "ToastClose": {
2896
2896
  "name": "ToastClose",
@@ -2901,7 +2901,7 @@
2901
2901
  },
2902
2902
  "schema": {},
2903
2903
  "guideline": "Dismisses the nearest ancestor ToastRoot when clicked. Can appear alongside or instead of ToastAction.",
2904
- "docPath": "packages/faststore/src/particles/toast/toast.md"
2904
+ "docPath": "src/particles/toast/toast.md"
2905
2905
  },
2906
2906
  "Toggle": {
2907
2907
  "name": "Toggle",
@@ -3097,7 +3097,7 @@
3097
3097
  },
3098
3098
  "schema": {},
3099
3099
  "guideline": "Self-gating root of the anonymous-or-identified, email + access-code sign-in: renders nothing once loggedIn or when the account disables accessKeyAuthentication, but is available from the anonymous state onward. Owns a locally-typed draft email (never written to the cart) and the request/validate stepper. Must be inside SessionRoot. See access-code-sign-in.md.",
3100
- "docPath": "packages/faststore/src/matter/access-code-sign-in/access-code-sign-in.md"
3100
+ "docPath": "src/matter/access-code-sign-in/access-code-sign-in.md"
3101
3101
  },
3102
3102
  "AccessCodeEmailControl": {
3103
3103
  "name": "AccessCodeEmailControl",
@@ -3121,7 +3121,7 @@
3121
3121
  }
3122
3122
  },
3123
3123
  "guideline": "The draft email input for the access-code flow: visible only at the request step, pre-fills from clientProfile.email when known but never persists an edit anywhere — it is purely the argument requestAccessCode/validateAccessCode dispatch with. Must be inside AccessCodeSignInRoot. See access-code-sign-in.md.",
3124
- "docPath": "packages/faststore/src/matter/access-code-sign-in/access-code-sign-in.md"
3124
+ "docPath": "src/matter/access-code-sign-in/access-code-sign-in.md"
3125
3125
  },
3126
3126
  "AccessCodeRequestControl": {
3127
3127
  "name": "AccessCodeRequestControl",
@@ -3154,7 +3154,7 @@
3154
3154
  }
3155
3155
  },
3156
3156
  "guideline": "Send-code step: disabled until the Root-owned draft email is a valid, non-empty address; dispatches $actions.session.requestAccessCode with it and advances the stepper on success. Failures render inline, never as a blocking error. Must be inside AccessCodeSignInRoot. See access-code-sign-in.md.",
3157
- "docPath": "packages/faststore/src/matter/access-code-sign-in/access-code-sign-in.md"
3157
+ "docPath": "src/matter/access-code-sign-in/access-code-sign-in.md"
3158
3158
  },
3159
3159
  "AccessCodeValidateControl": {
3160
3160
  "name": "AccessCodeValidateControl",
@@ -3200,7 +3200,7 @@
3200
3200
  }
3201
3201
  },
3202
3202
  "guideline": "Code-entry step: composes AccessCodeField and dispatches $actions.session.validateAccessCode with the Root-owned email and authenticationToken; a successful validate flips the session reactively and hides the Root. Must be inside AccessCodeSignInRoot. See access-code-sign-in.md.",
3203
- "docPath": "packages/faststore/src/matter/access-code-sign-in/access-code-sign-in.md"
3203
+ "docPath": "src/matter/access-code-sign-in/access-code-sign-in.md"
3204
3204
  },
3205
3205
  "AccountEntryPoint": {
3206
3206
  "name": "AccountEntryPoint",
@@ -3230,7 +3230,7 @@
3230
3230
  }
3231
3231
  },
3232
3232
  "guideline": "Session-aware header control rendering one link: the signed-out label toward /login for anonymous and identified shoppers, the signed-in label toward the account route for logged-in ones, and a politely announced placeholder while the session resolves. Both destinations are fixed conventions, not props, so no authored value can misroute the auth flow. Must be inside a SessionRoot, normally the one hosted by the shared layout — a page-hosted provider resolves the session server-side without the shopper cookie and sticks on the signed-out label. Author the label for a state or that state renders nothing; the labels are optional in the type only because a CMS entry may supply them, and an entry overrides all four fields at runtime. Style it through data-fs-account-entry-point and switch on data-fs-account-entry-point-state.",
3233
- "docPath": "packages/faststore/src/matter/account-entry-point/account-entry-point.md"
3233
+ "docPath": "src/matter/account-entry-point/account-entry-point.md"
3234
3234
  },
3235
3235
  "BreadcrumbRoot": {
3236
3236
  "name": "BreadcrumbRoot",
@@ -3295,7 +3295,7 @@
3295
3295
  }
3296
3296
  },
3297
3297
  "guideline": "Data provider for the buy button; place it on PDPs with BuyButtonButton as a child. Adds the variant the shopper picks (it reads the published VariantSelector selection), sending that SKU and its seller to the cart; the selectedVariantId prop is an optional pre-selection fallback, and it falls back to the product first variant on a variant fetch error. Cart writes flow through $actions.cart, so no CartRoot ancestor is required. See buy-button.md.",
3298
- "docPath": "packages/faststore/src/matter/buy-button/buy-button.md"
3298
+ "docPath": "src/matter/buy-button/buy-button.md"
3299
3299
  },
3300
3300
  "BuyButtonButton": {
3301
3301
  "name": "BuyButtonButton",
@@ -3323,7 +3323,7 @@
3323
3323
  ]
3324
3324
  },
3325
3325
  "guideline": "The add-to-cart button; must be a descendant of BuyButtonRoot. Cart writes flow through $actions.cart, so no CartRoot ancestor is required.",
3326
- "docPath": "packages/faststore/src/matter/buy-button/buy-button.md"
3326
+ "docPath": "src/matter/buy-button/buy-button.md"
3327
3327
  },
3328
3328
  "CartRoot": {
3329
3329
  "name": "CartRoot",
@@ -3336,7 +3336,7 @@
3336
3336
  },
3337
3337
  "schema": {},
3338
3338
  "guideline": "Cart data provider hosted by the layout (shared shell), wrapping the slot so every page consumes its context; exactly one per tree — do not place it as a page root. To build a mini-cart, wrap this CartRoot subtree in a modal DrawerRoot: the header carries a DrawerTrigger with a CartCount badge, the DrawerPopup body is a CartList line-item template, and its footer is CartTotal plus CartGoCheckout. The mini-cart is this layout composition, not a dedicated component. See cart.md.",
3339
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3339
+ "docPath": "src/matter/cart/cart.md"
3340
3340
  },
3341
3341
  "CartList": {
3342
3342
  "name": "CartList",
@@ -3354,7 +3354,7 @@
3354
3354
  },
3355
3355
  "providesContext": "cart-item",
3356
3356
  "guideline": "Renders its children once per cart item; wrap the line-item template in a CartItemRoot and place CartItem* components inside it to define the template (e.g. CartItemImage, CartItemName, CartItemPrice, a CartItemQuantity stepper, CartItemRemove). While the cart is loading it renders skeletonCount CartItemSkeleton placeholders instead. In a mini-cart it is the scrollable body of the DrawerPopup. Must be inside CartRoot.",
3357
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3357
+ "docPath": "src/matter/cart/cart.md"
3358
3358
  },
3359
3359
  "CartTotal": {
3360
3360
  "name": "CartTotal",
@@ -3370,7 +3370,7 @@
3370
3370
  }
3371
3371
  },
3372
3372
  "guideline": "The single root-agnostic grand-total component: renders the cart grand total, formatted from the active storefront context, reading the value from the nearest CartRoot or CartTotalizerRoot. Set the optional label prop to render a label alongside the value (e.g. \"Total\"); omit it to render the value alone. In a mini-cart it sits in the DrawerPopup footer alongside CartGoCheckout, inside a CartCheckoutGuard, so the total is visible at the checkout button.",
3373
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3373
+ "docPath": "src/matter/cart/cart.md"
3374
3374
  },
3375
3375
  "CartCount": {
3376
3376
  "name": "CartCount",
@@ -3387,7 +3387,7 @@
3387
3387
  }
3388
3388
  },
3389
3389
  "guideline": "Renders the total item count in the cart; use the template prop to customize the format (e.g. '{count} produtos'). Gift lines are excluded from the count — a promotional gift is not something the shopper added — so a cart holding only gifts shows 0. In a mini-cart, place it as the badge on the header DrawerTrigger and again in the DrawerPopup header. Must be inside CartRoot.",
3390
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3390
+ "docPath": "src/matter/cart/cart.md"
3391
3391
  },
3392
3392
  "CartError": {
3393
3393
  "name": "CartError",
@@ -3398,7 +3398,7 @@
3398
3398
  },
3399
3399
  "schema": {},
3400
3400
  "guideline": "Inline error banner that surfaces cart mutation errors. Must be inside CartRoot.",
3401
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3401
+ "docPath": "src/matter/cart/cart.md"
3402
3402
  },
3403
3403
  "CartGoCheckout": {
3404
3404
  "name": "CartGoCheckout",
@@ -3426,7 +3426,7 @@
3426
3426
  ]
3427
3427
  },
3428
3428
  "guideline": "Navigation link to the checkout page (default href /checkout); use as the checkout CTA inside the cart summary. In a mini-cart it is the DrawerPopup footer CTA, next to CartTotal. The button wording is merchant-editable content: a CMS entry wins, then the label prop (default \"Checkout\"), then children — so a store that labels the button through children keeps working and a CMS save overrides it without a deploy. The destination is not content-editable: href stays an authored prop, because re-pointing checkout is not a copy decision. Before routing it runs a stock validation and only navigates when the re-checked cart has no unavailable line; a validation that cannot run falls open and navigates anyway. During a client-side route transition to checkout it surfaces a loading state on its content wrapper as aria-busy plus data-fs-cart-go-checkout-pending, and while the pre-checkout validation runs it exposes data-fs-cart-go-checkout-validating — there is no built-in spinner, so opt into one by styling those attributes (e.g. composing a Spinner). For an external or hard checkout navigation there is no client-side transition, so the loading state simply does not show (a graceful no-op). The enriched footer checkout CTA is CartCheckoutGuard wrapping CartTotal and this CartGoCheckout: the guard makes the CTA inert (data-fs-cart-checkout-blocked) while any item is unavailable, and CartTotal shows the grand total at the button. Must be inside CartRoot.",
3429
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3429
+ "docPath": "src/matter/cart/cart.md"
3430
3430
  },
3431
3431
  "CartCouponForm": {
3432
3432
  "name": "CartCouponForm",
@@ -3451,7 +3451,7 @@
3451
3451
  ]
3452
3452
  },
3453
3453
  "guideline": "Coupon code input plus an apply button; root-agnostic (dispatches $actions.cart.applyCoupon). While an apply is in flight it disables the input and button and exposes data-fs-cart-coupon-pending. In a mini-cart it sits in the DrawerPopup footer above the totals; pair it with CartAppliedCoupons (the applied list) and CartCouponError (the error banner). Must be inside CartRoot.",
3454
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3454
+ "docPath": "src/matter/cart/cart.md"
3455
3455
  },
3456
3456
  "CartAppliedCoupons": {
3457
3457
  "name": "CartAppliedCoupons",
@@ -3467,7 +3467,7 @@
3467
3467
  ]
3468
3468
  },
3469
3469
  "guideline": "Renders one chip per applied coupon (cart.appliedCoupons), each showing its code and a CartCouponRemove control; renders nothing when no coupons are applied. A coupon whose conditions did not match is marked with data-fs-cart-coupon-unmatched. Place it next to CartCouponForm in the mini-cart footer. Must be inside CartRoot.",
3470
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3470
+ "docPath": "src/matter/cart/cart.md"
3471
3471
  },
3472
3472
  "CartCouponRemove": {
3473
3473
  "name": "CartCouponRemove",
@@ -3488,7 +3488,7 @@
3488
3488
  ]
3489
3489
  },
3490
3490
  "guideline": "The per-chip remove control (the X); dispatches $actions.cart.removeCoupon for that chip's code. Use inside a CartAppliedCoupons chip, which supplies the code via context. If used standalone (no CartAppliedCoupons ancestor), pass the code prop explicitly — without a code the remove action has no target and the button is a no-op.",
3491
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3491
+ "docPath": "src/matter/cart/cart.md"
3492
3492
  },
3493
3493
  "CartCouponError": {
3494
3494
  "name": "CartCouponError",
@@ -3499,7 +3499,7 @@
3499
3499
  },
3500
3500
  "schema": {},
3501
3501
  "guideline": "Inline error banner that surfaces coupon apply/remove errors next to the CartCouponForm; renders nothing when there are none. Reads a dedicated coupon error channel, separate from CartError. Must be inside CartRoot.",
3502
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3502
+ "docPath": "src/matter/cart/cart.md"
3503
3503
  },
3504
3504
  "CartCheckoutGuard": {
3505
3505
  "name": "CartCheckoutGuard",
@@ -3510,7 +3510,7 @@
3510
3510
  },
3511
3511
  "schema": {},
3512
3512
  "guideline": "Wraps the checkout CTA and blocks progression while any cart item is unavailable: the subtree is made non-interactive (inert) and data-fs-cart-checkout-blocked is exposed for styling the disabled state. In the mini-cart DrawerPopup footer it is the enriched checkout CTA wrapper: place CartTotal and CartGoCheckout inside it so the grand total sits at the button and the whole CTA goes inert when an item cannot be delivered. Must be inside CartRoot.",
3513
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3513
+ "docPath": "src/matter/cart/cart.md"
3514
3514
  },
3515
3515
  "CartLoading": {
3516
3516
  "name": "CartLoading",
@@ -3521,7 +3521,7 @@
3521
3521
  },
3522
3522
  "schema": {},
3523
3523
  "guideline": "The loading branch of the three-state mini-cart (loading / empty / filled): renders its children only while the cart is still loading. Supply a skeleton placeholder as its child. Pair with CartEmpty and CartFilled. Must be inside CartRoot. See cart.md.",
3524
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3524
+ "docPath": "src/matter/cart/cart.md"
3525
3525
  },
3526
3526
  "CartEmpty": {
3527
3527
  "name": "CartEmpty",
@@ -3532,7 +3532,7 @@
3532
3532
  },
3533
3533
  "schema": {},
3534
3534
  "guideline": "The empty branch of the three-state mini-cart (loading / empty / filled): renders its children only when the cart has resolved with zero items. It carries no copy of its own — compose CartEmptyMessage for the message and CartContinueShopping for the continue-shopping control, in whatever order and grouping the panel needs. Pair with CartLoading and CartFilled. Must be inside CartRoot. See cart.md.",
3535
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3535
+ "docPath": "src/matter/cart/cart.md"
3536
3536
  },
3537
3537
  "CartFilled": {
3538
3538
  "name": "CartFilled",
@@ -3543,7 +3543,7 @@
3543
3543
  },
3544
3544
  "schema": {},
3545
3545
  "guideline": "The filled branch of the three-state mini-cart (loading / empty / filled): renders its children only when the cart has one or more items. Wrap the CartList, the order summary, and the checkout CTA in it so they hide when the cart is empty. Pair with CartLoading and CartEmpty. Must be inside CartRoot. See cart.md.",
3546
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3546
+ "docPath": "src/matter/cart/cart.md"
3547
3547
  },
3548
3548
  "CartUnavailableCount": {
3549
3549
  "name": "CartUnavailableCount",
@@ -3560,7 +3560,7 @@
3560
3560
  }
3561
3561
  },
3562
3562
  "guideline": "Cart-level summary of how many lines are unavailable; self-hides when none. See cart.md.",
3563
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3563
+ "docPath": "src/matter/cart/cart.md"
3564
3564
  },
3565
3565
  "CartRemoveUnavailable": {
3566
3566
  "name": "CartRemoveUnavailable",
@@ -3576,7 +3576,7 @@
3576
3576
  ]
3577
3577
  },
3578
3578
  "guideline": "Button that removes every unavailable line in one batch call; self-hides when none. See cart.md.",
3579
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3579
+ "docPath": "src/matter/cart/cart.md"
3580
3580
  },
3581
3581
  "CartOpenOnAdd": {
3582
3582
  "name": "CartOpenOnAdd",
@@ -3592,7 +3592,7 @@
3592
3592
  ]
3593
3593
  },
3594
3594
  "guideline": "Mini-cart post-add behavior: wraps the mini-cart DrawerRoot subtree and opens the drawer automatically on each successful add to cart. Compose it as the parent of the DrawerRoot (its single child) — the header DrawerTrigger, the popup, and the cart leaves stay inside that DrawerRoot. It makes the drawer controlled internally, so do not set raw open/onOpenChange on DrawerRoot; the header trigger and manual close (Escape / backdrop / close button) keep working. It also runs a stock validation when the overlay opens, behind a short staleness window and skipped while a cart write is in flight, so opening a cart that went stale corrects it before the shopper acts. Use only in a store that has a mini-cart drawer. Mutually exclusive with CartRedirectOnAdd — compose exactly one. See cart.md.",
3595
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3595
+ "docPath": "src/matter/cart/cart.md"
3596
3596
  },
3597
3597
  "CartRedirectOnAdd": {
3598
3598
  "name": "CartRedirectOnAdd",
@@ -3609,7 +3609,7 @@
3609
3609
  }
3610
3610
  },
3611
3611
  "guideline": "No-mini-cart post-add behavior: navigates the shopper to checkout (href, default /checkout) after each successful add to cart. Compose it once in the layout for a store that has no mini-cart drawer; it renders no UI of its own. Use this instead of a mini-cart when adding a product should go straight to checkout. Mutually exclusive with CartOpenOnAdd — compose exactly one, and omit the drawer when using this. See cart.md.",
3612
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3612
+ "docPath": "src/matter/cart/cart.md"
3613
3613
  },
3614
3614
  "CartDisclaimer": {
3615
3615
  "name": "CartDisclaimer",
@@ -3626,7 +3626,7 @@
3626
3626
  }
3627
3627
  },
3628
3628
  "guideline": "Plain-text merchant notice — conditions, purchase limits, or legal wording — shown in the cart before the shopper commits. CMS content wins over the text prop, and nothing renders when neither supplies a notice. It renders only when the cart has items, so it stays out of the empty state and out of the window before the cart resolves on its own. Place it inside CartFilled, below the order summary or immediately above the checkout CTA (CartCheckoutGuard): placement is composition order, and there is no position prop. Plain text only — no rich text and no inline links. Must be inside CartRoot. See cart.md.",
3629
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3629
+ "docPath": "src/matter/cart/cart.md"
3630
3630
  },
3631
3631
  "CartAlertRoot": {
3632
3632
  "name": "CartAlertRoot",
@@ -3656,7 +3656,7 @@
3656
3656
  },
3657
3657
  "providesContext": "cart-alert",
3658
3658
  "guideline": "Merchant-authored notice near the top of the mini-cart overlay (a minimum order, a running promotion): wraps CartAlertIcon and CartAlertText in any subset, any order — the arrangement is the composition, not a prop — and renders the glyph then the copy when composed with no children. Its copy and glyph are CMS-editable through the cart-alert content model, with the text, icon, iconUrl and iconAlt props as the non-CMS fallback; it renders nothing when no message is configured, so an unconfigured banner leaves no empty box. Reads no cart data, so it needs no CartRoot ancestor and no cart-state gate — place it inside CartFilled to hide it on an empty cart. A store whose merchants choose the icon must list CART_ALERT_ICON_NAMES under icons.include in global.json, or a chosen glyph renders empty. Distinct from CartError (cart mutation errors) and CartUnavailableCount (data-driven). See cart.md.",
3659
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3659
+ "docPath": "src/matter/cart/cart.md"
3660
3660
  },
3661
3661
  "CartAlertIcon": {
3662
3662
  "name": "CartAlertIcon",
@@ -3668,7 +3668,7 @@
3668
3668
  "schema": {},
3669
3669
  "requiresContext": "cart-alert",
3670
3670
  "guideline": "The alert glyph, inside a CartAlertRoot (or any ancestor providing `cart-alert` context). Prefers the merchant-uploaded icon and falls back to the predefined sprite name, and renders nothing when neither is configured. Decorative — the message carries the meaning. Place it before or after CartAlertText to set the order.",
3671
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3671
+ "docPath": "src/matter/cart/cart.md"
3672
3672
  },
3673
3673
  "CartAlertText": {
3674
3674
  "name": "CartAlertText",
@@ -3680,7 +3680,7 @@
3680
3680
  "schema": {},
3681
3681
  "requiresContext": "cart-alert",
3682
3682
  "guideline": "The alert message, inside a CartAlertRoot (or any ancestor providing `cart-alert` context). The copy comes from the root (its CMS entry or its text prop), so children are a display override rather than an authoring channel. Place it before or after CartAlertIcon to set the order.",
3683
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3683
+ "docPath": "src/matter/cart/cart.md"
3684
3684
  },
3685
3685
  "CartEmptyMessage": {
3686
3686
  "name": "CartEmptyMessage",
@@ -3698,7 +3698,7 @@
3698
3698
  }
3699
3699
  },
3700
3700
  "guideline": "The empty-cart message, rendered as plain text inside CartEmpty. CMS content wins over the text prop, which defaults to \"Your cart is empty\"; blank resolved copy renders nothing. It carries no layout — group and space it with Container, and pair it with CartContinueShopping for the way back to browsing. See cart.md.",
3701
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3701
+ "docPath": "src/matter/cart/cart.md"
3702
3702
  },
3703
3703
  "CartContinueShopping": {
3704
3704
  "name": "CartContinueShopping",
@@ -3716,7 +3716,7 @@
3716
3716
  }
3717
3717
  },
3718
3718
  "guideline": "Dismisses the cart overlay so the shopper can keep browsing; dispatches no cart write. Place it in the empty panel inside CartEmpty, commonly in a footer Container. It closes the drawer, so it requires a DrawerRoot ancestor — on a cart page with no drawer, compose a NavigationLink back to browsing instead of this control. CMS content wins over the label prop, and composed children win over both (compose an icon that way). See cart.md.",
3719
- "docPath": "packages/faststore/src/matter/cart/cart.md"
3719
+ "docPath": "src/matter/cart/cart.md"
3720
3720
  },
3721
3721
  "CartItemRoot": {
3722
3722
  "name": "CartItemRoot",
@@ -3731,7 +3731,7 @@
3731
3731
  },
3732
3732
  "schema": {},
3733
3733
  "guideline": "Per-line data provider for the cart line-item template: place it directly inside CartList, wrapping the CartItem* particles (CartItemImage, CartItemName, CartItemPrice, the CartItemQuantity stepper, CartItemRemove, …). It owns the core per-item fields and delivers each line its own slice, so the core particles must sit inside it. Must be inside CartList. See cart-item.md.",
3734
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3734
+ "docPath": "src/matter/cart-item/cart-item.md"
3735
3735
  },
3736
3736
  "CartItemImage": {
3737
3737
  "name": "CartItemImage",
@@ -3754,7 +3754,7 @@
3754
3754
  }
3755
3755
  },
3756
3756
  "guideline": "Renders the product image from the cart item. Must be inside CartItemRoot.",
3757
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3757
+ "docPath": "src/matter/cart-item/cart-item.md"
3758
3758
  },
3759
3759
  "CartItemProductLink": {
3760
3760
  "name": "CartItemProductLink",
@@ -3766,7 +3766,7 @@
3766
3766
  },
3767
3767
  "schema": {},
3768
3768
  "guideline": "Links the cart line image to its product page, using the product URL the line already carries: place it inside CartItemRoot wrapping CartItemImage. Whether a line links is decided by placing this element, so there is no prop to toggle it — a checkout line simply omits it. Renders its children unwrapped when the line has no image or no usable product URL, so it never leaves an empty or unsafe link. Navigation is same-tab, and the leaf adds no fields to the page query. Must be inside CartItemRoot. See cart-item.md.",
3769
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3769
+ "docPath": "src/matter/cart-item/cart-item.md"
3770
3770
  },
3771
3771
  "CartItemName": {
3772
3772
  "name": "CartItemName",
@@ -3778,7 +3778,7 @@
3778
3778
  },
3779
3779
  "schema": {},
3780
3780
  "guideline": "Renders the product name from the cart item. Must be inside CartItemRoot.",
3781
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3781
+ "docPath": "src/matter/cart-item/cart-item.md"
3782
3782
  },
3783
3783
  "CartItemVariant": {
3784
3784
  "name": "CartItemVariant",
@@ -3790,7 +3790,7 @@
3790
3790
  },
3791
3791
  "schema": {},
3792
3792
  "guideline": "Renders the selected variant name of the cart item (e.g. \"Midnight Black\"); renders null when the variant has no name. Use as a subtitle under CartItemName, typically alongside CartItemSku. Must be inside CartItemRoot.",
3793
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3793
+ "docPath": "src/matter/cart-item/cart-item.md"
3794
3794
  },
3795
3795
  "CartItemSku": {
3796
3796
  "name": "CartItemSku",
@@ -3802,7 +3802,7 @@
3802
3802
  },
3803
3803
  "schema": {},
3804
3804
  "guideline": "Renders the SKU code of the cart item variant (e.g. \"WNC-400X\"); renders null when the variant has no SKU. Use as a subtitle under CartItemName, typically alongside CartItemVariant. Must be inside CartItemRoot.",
3805
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3805
+ "docPath": "src/matter/cart-item/cart-item.md"
3806
3806
  },
3807
3807
  "CartItemPrice": {
3808
3808
  "name": "CartItemPrice",
@@ -3814,7 +3814,7 @@
3814
3814
  },
3815
3815
  "schema": {},
3816
3816
  "guideline": "Renders the selling price of the cart item, formatted from the active storefront context. Must be inside CartItemRoot.",
3817
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3817
+ "docPath": "src/matter/cart-item/cart-item.md"
3818
3818
  },
3819
3819
  "CartItemListPrice": {
3820
3820
  "name": "CartItemListPrice",
@@ -3826,7 +3826,7 @@
3826
3826
  },
3827
3827
  "schema": {},
3828
3828
  "guideline": "Renders the original list price of the cart item (strikethrough); renders null when no discount is active. Use alongside CartItemPrice to show promotional pricing. Must be inside CartItemRoot.",
3829
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3829
+ "docPath": "src/matter/cart-item/cart-item.md"
3830
3830
  },
3831
3831
  "CartItemDiscountPercentage": {
3832
3832
  "name": "CartItemDiscountPercentage",
@@ -3844,7 +3844,7 @@
3844
3844
  }
3845
3845
  },
3846
3846
  "guideline": "Per-line discount badge showing the integer listPrice-vs-sellingPrice percentage (e.g. \"-20%\"); use the template prop to customize the format ({percentage} is the integer percent). Renders null when the line has no discount (sellingPrice >= listPrice), so it only appears on promotional lines. Place alongside CartItemPrice/CartItemListPrice. Must be inside CartItemRoot.",
3847
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3847
+ "docPath": "src/matter/cart-item/cart-item.md"
3848
3848
  },
3849
3849
  "CartItemLineTotal": {
3850
3850
  "name": "CartItemLineTotal",
@@ -3856,7 +3856,7 @@
3856
3856
  },
3857
3857
  "schema": {},
3858
3858
  "guideline": "Renders the per-line total (selling price × quantity) formatted from the active storefront context. Must be inside CartItemRoot.",
3859
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3859
+ "docPath": "src/matter/cart-item/cart-item.md"
3860
3860
  },
3861
3861
  "CartItemOwnTotal": {
3862
3862
  "name": "CartItemOwnTotal",
@@ -3868,7 +3868,7 @@
3868
3868
  },
3869
3869
  "schema": {},
3870
3870
  "guideline": "Renders the line's own total (excludes bundle/composition children), formatted from the active storefront context. Equals CartItemAggregateTotal on lines with no compositions. Must be inside CartItemRoot. See cart-item.md.",
3871
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3871
+ "docPath": "src/matter/cart-item/cart-item.md"
3872
3872
  },
3873
3873
  "CartItemAggregateTotal": {
3874
3874
  "name": "CartItemAggregateTotal",
@@ -3880,7 +3880,7 @@
3880
3880
  },
3881
3881
  "schema": {},
3882
3882
  "guideline": "Renders the line's aggregate total including all nested composition children, formatted from the active storefront context — the price the shopper actually pays for a bundled line. Equals CartItemOwnTotal on lines with no compositions. Must be inside CartItemRoot. See cart-item.md.",
3883
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3883
+ "docPath": "src/matter/cart-item/cart-item.md"
3884
3884
  },
3885
3885
  "CartItemQuantity": {
3886
3886
  "name": "CartItemQuantity",
@@ -3926,7 +3926,7 @@
3926
3926
  ]
3927
3927
  },
3928
3928
  "guideline": "Quantity stepper for a cart item, shown in the unit the merchant sells in: the displayed amount is the line's quantity times its unit multiplier, so a SKU sold in 500 g portions reads 1.5 rather than 3. min, max, and step are configured in purchasable units and converted for display, so one template serves SKUs with different multipliers. A typed amount that is out of bounds or off the multiplier grid snaps to the nearest valid value on commit and renders validationMessage. Set removeOnDecrement=true to remove the item when quantity reaches the minimum. Renders nothing on a gift line — a gift's quantity is promotion-controlled and cannot be stepped or removed, so use CartItemQuantityValue to show a gift's fixed quantity. Must be inside CartItemRoot. See cart-item.md.",
3929
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3929
+ "docPath": "src/matter/cart-item/cart-item.md"
3930
3930
  },
3931
3931
  "CartItemQuantityValue": {
3932
3932
  "name": "CartItemQuantityValue",
@@ -3938,7 +3938,7 @@
3938
3938
  },
3939
3939
  "schema": {},
3940
3940
  "guideline": "Renders the read-only quantity count of the cart item as text (e.g. a \"Qty\" badge). Distinct from the editable CartItemQuantity stepper. Must be inside CartItemRoot.",
3941
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3941
+ "docPath": "src/matter/cart-item/cart-item.md"
3942
3942
  },
3943
3943
  "CartItemRemove": {
3944
3944
  "name": "CartItemRemove",
@@ -3955,7 +3955,7 @@
3955
3955
  ]
3956
3956
  },
3957
3957
  "guideline": "Button that removes the current line item from the cart. Must be inside CartItemRoot. Also composes inside CartItemUnavailable as a remove-on-alert control. See cart-item.md.",
3958
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3958
+ "docPath": "src/matter/cart-item/cart-item.md"
3959
3959
  },
3960
3960
  "CartItemAvailable": {
3961
3961
  "name": "CartItemAvailable",
@@ -3967,7 +3967,7 @@
3967
3967
  },
3968
3968
  "schema": {},
3969
3969
  "guideline": "Renders its children only when the current cart item is in stock (availability AVAILABLE). Wrap price, quantity stepper, and line total so they hide for unavailable items. Must be inside CartItemRoot.",
3970
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3970
+ "docPath": "src/matter/cart-item/cart-item.md"
3971
3971
  },
3972
3972
  "CartItemUnavailable": {
3973
3973
  "name": "CartItemUnavailable",
@@ -3979,7 +3979,7 @@
3979
3979
  },
3980
3980
  "schema": {},
3981
3981
  "guideline": "Status badge shown only when the current cart item is NOT available. Renders a built-in English label per state (OUT_OF_STOCK → \"Out of stock\", UNAVAILABLE → \"Cannot be delivered\", otherwise \"Unavailable\"); pass children to override the text — children REPLACE the label, so a remove-on-alert composition nests an explicit label plus a CartItemRemove. Emits data-fs-cart-item-unavailable-state for per-state styling. Must be inside CartItemRoot. See cart-item.md.",
3982
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3982
+ "docPath": "src/matter/cart-item/cart-item.md"
3983
3983
  },
3984
3984
  "CartItemGift": {
3985
3985
  "name": "CartItemGift",
@@ -3991,7 +3991,7 @@
3991
3991
  },
3992
3992
  "schema": {},
3993
3993
  "guideline": "Free marker for a promotional gift line: renders only when the current cart item is a gift, showing a built-in \"Free\" label; pass children to override the text — children REPLACE the label. Place it beside CartItemPrice/CartItemListPrice, whose struck-through list price it complements. It is an inline marker, not a wrapper for a gift-only subtree. On a gift line CartItemRemove suppresses itself and CartItemRoot marks the row with data-fs-cart-item-gift-line, so neither needs composing differently. Must be inside CartItemRoot. See cart-item.md.",
3994
- "docPath": "packages/faststore/src/matter/cart-item/cart-item.md"
3994
+ "docPath": "src/matter/cart-item/cart-item.md"
3995
3995
  },
3996
3996
  "CartItemCompositions": {
3997
3997
  "name": "CartItemCompositions",
@@ -4069,7 +4069,7 @@
4069
4069
  },
4070
4070
  "schema": {},
4071
4071
  "guideline": "Focused reactive provider for cart totalizers + total (narrower than CartRoot); merges with CartRoot into one cart query when both are present on the page (e.g. CartRoot wrapping the mini-cart drawer, CartTotalizerRoot composing its footer). Use it to compose an order summary — in a mini-cart drawer footer or a checkout summary panel: wrap a CartTotalizerLine totalizerId=\"Items\" (subtotal), a CartTotalizerLine totalizerId=\"Discounts\" variant=\"discount\" (auto-hides at zero), a CartTotalizerLine totalizerId=\"Shipping\" zeroLabel=\"Grátis\", and a CartTotal for the grand total (set CartTotal label for a labeled total row). CartTotal is root-agnostic and reads the total from this root — there is no CartTotalizerTotal.",
4072
- "docPath": "packages/faststore/src/matter/cart-totalizer/cart-totalizer.md"
4072
+ "docPath": "src/matter/cart-totalizer/cart-totalizer.md"
4073
4073
  },
4074
4074
  "CartTotalizerLine": {
4075
4075
  "name": "CartTotalizerLine",
@@ -4101,7 +4101,7 @@
4101
4101
  }
4102
4102
  },
4103
4103
  "guideline": "Renders one cart totalizer row (label + value) selected by totalizerId. The canonical order-summary lines are totalizerId=\"Items\" (the subtotal), totalizerId=\"Discounts\" (the discount), and totalizerId=\"Shipping\" (the shipping cost). For the discounts line set variant=\"discount\" — it hides itself when the value is zero (no active discount). The Core API returns a negative amount for discounts; the formatted value displays as-is (e.g. \"-R$ 40,00\"). Set zeroLabel=\"Grátis\" for the shipping line so a zero amount renders the label instead of R$ 0,00. A line whose totalizerId is absent from the cart renders nothing (no empty row). Must be inside CartTotalizerRoot.",
4104
- "docPath": "packages/faststore/src/matter/cart-totalizer/cart-totalizer.md"
4104
+ "docPath": "src/matter/cart-totalizer/cart-totalizer.md"
4105
4105
  },
4106
4106
  "CartDiscountLine": {
4107
4107
  "name": "CartDiscountLine",
@@ -4119,7 +4119,7 @@
4119
4119
  "label": "Unnamed discount label"
4120
4120
  }
4121
4121
  },
4122
- "docPath": "packages/faststore/src/matter/cart-totalizer/cart-totalizer.md"
4122
+ "docPath": "src/matter/cart-totalizer/cart-totalizer.md"
4123
4123
  },
4124
4124
  "CartMarkdownLine": {
4125
4125
  "name": "CartMarkdownLine",
@@ -4137,7 +4137,7 @@
4137
4137
  "label": "Markdown label"
4138
4138
  }
4139
4139
  },
4140
- "docPath": "packages/faststore/src/matter/cart-totalizer/cart-totalizer.md"
4140
+ "docPath": "src/matter/cart-totalizer/cart-totalizer.md"
4141
4141
  },
4142
4142
  "ClientPreferencesRoot": {
4143
4143
  "name": "ClientPreferencesRoot",
@@ -4152,7 +4152,7 @@
4152
4152
  },
4153
4153
  "schema": {},
4154
4154
  "guideline": "Binding provider for the consent opt-in section; reads both opt-in values (optinNewsLetter, savePersonalData) from the ClientPreferences identity entity (a sibling of Cart, via Query.clientPreferences) and exposes them to its Controls. Reads session state from useSession(); must be inside SessionRoot. Writes flow through $actions.identity.clientPreferencesUpdate. Wrap a NewsletterOptInControl and/or a SavePersonalDataOptInControl.",
4155
- "docPath": "packages/faststore/src/matter/client-preferences/client-preferences.md"
4155
+ "docPath": "src/matter/client-preferences/client-preferences.md"
4156
4156
  },
4157
4157
  "NewsletterOptInControl": {
4158
4158
  "name": "NewsletterOptInControl",
@@ -4174,7 +4174,7 @@
4174
4174
  }
4175
4175
  },
4176
4176
  "guideline": "The bound newsletter opt-in checkbox; must be a descendant of ClientPreferencesRoot. Toggling writes the optinNewsLetter preference via $actions.identity.clientPreferencesUpdate. Defaults to unchecked.",
4177
- "docPath": "packages/faststore/src/matter/client-preferences/client-preferences.md"
4177
+ "docPath": "src/matter/client-preferences/client-preferences.md"
4178
4178
  },
4179
4179
  "SavePersonalDataOptInControl": {
4180
4180
  "name": "SavePersonalDataOptInControl",
@@ -4196,7 +4196,7 @@
4196
4196
  }
4197
4197
  },
4198
4198
  "guideline": "The bound save-personal-data opt-in checkbox; must be a descendant of ClientPreferencesRoot. Toggling writes the savePersonalData preference via $actions.identity.clientPreferencesUpdate. Defaults to unchecked.",
4199
- "docPath": "packages/faststore/src/matter/client-preferences/client-preferences.md"
4199
+ "docPath": "src/matter/client-preferences/client-preferences.md"
4200
4200
  },
4201
4201
  "ClientProfileRoot": {
4202
4202
  "name": "ClientProfileRoot",
@@ -4211,7 +4211,7 @@
4211
4211
  },
4212
4212
  "schema": {},
4213
4213
  "guideline": "Binding provider for the shopper-profile section; reads the profile fields (today: phone) from the ClientProfile entity (Query.clientProfile) and exposes them to its Controls. Writes flow through $actions.identity.clientProfileUpdate. Must be inside SessionRoot. Wrap a ClientProfilePhoneControl.",
4214
- "docPath": "packages/faststore/src/matter/client-profile/client-profile.md"
4214
+ "docPath": "src/matter/client-profile/client-profile.md"
4215
4215
  },
4216
4216
  "ClientProfilePhoneControl": {
4217
4217
  "name": "ClientProfilePhoneControl",
@@ -4254,7 +4254,7 @@
4254
4254
  }
4255
4255
  },
4256
4256
  "guideline": "The bound phone field; must be a descendant of ClientProfileRoot. Reads the saved phone from the ClientProfile entity and persists it on blur via $actions.identity.clientProfileUpdate({ phone }). Composes the reusable PhoneField particle.",
4257
- "docPath": "packages/faststore/src/matter/client-profile/client-profile.md"
4257
+ "docPath": "src/matter/client-profile/client-profile.md"
4258
4258
  },
4259
4259
  "ClientProfileFormRoot": {
4260
4260
  "name": "ClientProfileFormRoot",
@@ -4285,7 +4285,7 @@
4285
4285
  }
4286
4286
  },
4287
4287
  "guideline": "Data root + form mechanics for the batched customer-information form: owns the draft across clientProfile + clientPreferences, dirty tracking, format-only validation (never requiredness), one batched Save (dispatches only touched fields), and the confirmation on a clean save. It reports nothing to anything outside itself. Requires a SessionRoot ancestor. Compose the field/fieldset/feedback parts as children in any order/subset. See client-profile-form.md.",
4288
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4288
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4289
4289
  },
4290
4290
  "ClientProfileFormFieldset": {
4291
4291
  "name": "ClientProfileFormFieldset",
@@ -4306,7 +4306,7 @@
4306
4306
  }
4307
4307
  },
4308
4308
  "guideline": "Optional grouping wrapper: a Fieldset whose disabled state follows the form, with an optional legend and a `section` name emitted on data-fs-client-profile-form-section for scoped styling. Compose any subset of the field parts as children. Must be inside ClientProfileForm.Root.",
4309
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4309
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4310
4310
  },
4311
4311
  "ClientProfileFormEmailField": {
4312
4312
  "name": "ClientProfileFormEmailField",
@@ -4324,7 +4324,7 @@
4324
4324
  }
4325
4325
  },
4326
4326
  "guideline": "Read-only email display, seeded from the profile. Must be inside ClientProfileForm.Root.",
4327
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4327
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4328
4328
  },
4329
4329
  "ClientProfileFormFirstNameField": {
4330
4330
  "name": "ClientProfileFormFirstNameField",
@@ -4342,7 +4342,7 @@
4342
4342
  }
4343
4343
  },
4344
4344
  "guideline": "First-name text field bound to the form draft. Must be inside ClientProfileForm.Root.",
4345
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4345
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4346
4346
  },
4347
4347
  "ClientProfileFormLastNameField": {
4348
4348
  "name": "ClientProfileFormLastNameField",
@@ -4360,7 +4360,7 @@
4360
4360
  }
4361
4361
  },
4362
4362
  "guideline": "Last-name text field bound to the form draft. Must be inside ClientProfileForm.Root.",
4363
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4363
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4364
4364
  },
4365
4365
  "ClientProfileFormPhoneField": {
4366
4366
  "name": "ClientProfileFormPhoneField",
@@ -4378,7 +4378,7 @@
4378
4378
  }
4379
4379
  },
4380
4380
  "guideline": "Country-masked phone field (country from Root); format-validated on Save. Must be inside ClientProfileForm.Root.",
4381
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4381
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4382
4382
  },
4383
4383
  "ClientProfileFormDocumentField": {
4384
4384
  "name": "ClientProfileFormDocumentField",
@@ -4396,7 +4396,7 @@
4396
4396
  }
4397
4397
  },
4398
4398
  "guideline": "Tax-document field; self-gates on Root.documentType and check-digit-validates on Save. Must be inside ClientProfileForm.Root.",
4399
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4399
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4400
4400
  },
4401
4401
  "ClientProfileFormNewsletterCheckbox": {
4402
4402
  "name": "ClientProfileFormNewsletterCheckbox",
@@ -4414,7 +4414,7 @@
4414
4414
  }
4415
4415
  },
4416
4416
  "guideline": "Newsletter opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root.",
4417
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4417
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4418
4418
  },
4419
4419
  "ClientProfileFormSavePersonalDataCheckbox": {
4420
4420
  "name": "ClientProfileFormSavePersonalDataCheckbox",
@@ -4432,7 +4432,7 @@
4432
4432
  }
4433
4433
  },
4434
4434
  "guideline": "Save-personal-data opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root.",
4435
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4435
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4436
4436
  },
4437
4437
  "ClientProfileFormError": {
4438
4438
  "name": "ClientProfileFormError",
@@ -4444,7 +4444,7 @@
4444
4444
  },
4445
4445
  "schema": {},
4446
4446
  "guideline": "Renders the inline server error (role=\"alert\") from the last Save, or nothing. Must be inside ClientProfileForm.Root.",
4447
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4447
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4448
4448
  },
4449
4449
  "ClientProfileFormConfirmation": {
4450
4450
  "name": "ClientProfileFormConfirmation",
@@ -4462,7 +4462,7 @@
4462
4462
  }
4463
4463
  },
4464
4464
  "guideline": "Renders the success confirmation (an <output>) after a Save with no errors, cleared on the next edit. Must be inside ClientProfileForm.Root.",
4465
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4465
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4466
4466
  },
4467
4467
  "ClientProfileFormSubmitButton": {
4468
4468
  "name": "ClientProfileFormSubmitButton",
@@ -4480,7 +4480,7 @@
4480
4480
  }
4481
4481
  },
4482
4482
  "guideline": "The batched-Save submit button (type=submit). Disabled while a write is in flight; renders nothing when the session is read-only. Compose an Icon + text as children, or rely on `label`. Must be inside ClientProfileForm.Root.",
4483
- "docPath": "packages/faststore/src/matter/client-profile-form/client-profile-form.md"
4483
+ "docPath": "src/matter/client-profile-form/client-profile-form.md"
4484
4484
  },
4485
4485
  "DeliveryOptionsAccordion": {
4486
4486
  "name": "DeliveryOptionsAccordion",
@@ -4647,7 +4647,7 @@
4647
4647
  }
4648
4648
  },
4649
4649
  "guideline": "Checkout-bound email field: pre-fills from clientProfile.email and persists a valid changed email via $actions.identity.clientProfileUpdate (anonymous→identified). Must be inside SessionRoot. See email-identification.md.",
4650
- "docPath": "packages/faststore/src/matter/email-identification/email-identification.md"
4650
+ "docPath": "src/matter/email-identification/email-identification.md"
4651
4651
  },
4652
4652
  "FreeShippingProgressRoot": {
4653
4653
  "name": "FreeShippingProgressRoot",
@@ -4660,7 +4660,7 @@
4660
4660
  },
4661
4661
  "schema": {},
4662
4662
  "guideline": "Free-shipping progress bar for the top of a cart/mini-cart drawer: shows how much more to spend for free shipping and flips to an earned state when met. Renders nothing until a destination and an eligible promotion exist (self-hides on null). See free-shipping-progress.md.",
4663
- "docPath": "packages/faststore/src/matter/free-shipping-progress/free-shipping-progress.md"
4663
+ "docPath": "src/matter/free-shipping-progress/free-shipping-progress.md"
4664
4664
  },
4665
4665
  "FreeShippingProgressBar": {
4666
4666
  "name": "FreeShippingProgressBar",
@@ -4671,7 +4671,7 @@
4671
4671
  },
4672
4672
  "schema": {},
4673
4673
  "guideline": "Meter bar that fills toward the free-shipping goal, full when earned. Must be inside FreeShippingProgressRoot. See free-shipping-progress.md.",
4674
- "docPath": "packages/faststore/src/matter/free-shipping-progress/free-shipping-progress.md"
4674
+ "docPath": "src/matter/free-shipping-progress/free-shipping-progress.md"
4675
4675
  },
4676
4676
  "FreeShippingProgressMessage": {
4677
4677
  "name": "FreeShippingProgressMessage",
@@ -4693,7 +4693,7 @@
4693
4693
  }
4694
4694
  },
4695
4695
  "guideline": "Below-threshold vs earned copy, front-formatted from the active storefront context. Must be inside FreeShippingProgressRoot. See free-shipping-progress.md.",
4696
- "docPath": "packages/faststore/src/matter/free-shipping-progress/free-shipping-progress.md"
4696
+ "docPath": "src/matter/free-shipping-progress/free-shipping-progress.md"
4697
4697
  },
4698
4698
  "IdentityEditController": {
4699
4699
  "name": "IdentityEditController",
@@ -4705,7 +4705,7 @@
4705
4705
  },
4706
4706
  "schema": {},
4707
4707
  "guideline": "Owns the identity section's summary/form toggle: starts on the summary, opens on IdentityEditButton and returns on IdentityEditCancelButton. Saving does not move it, so the form's confirmation stays readable and ClientProfileForm never needs to know about a section around it. Self-contained: collapsing tells nothing else, so no other section opens as a result. Compose an IdentitySummaryView holding the summary parts and an IdentityEditForm holding a ClientProfileForm, plus an IdentityEditButton in the heading and an IdentityEditCancelButton next to the form. No state is named anywhere: which state a part belongs to is which component it is. Renders no DOM of its own.",
4708
- "docPath": "packages/faststore/src/matter/identity-edit/identity-edit.md"
4708
+ "docPath": "src/matter/identity-edit/identity-edit.md"
4709
4709
  },
4710
4710
  "IdentitySummaryView": {
4711
4711
  "name": "IdentitySummaryView",
@@ -4717,7 +4717,7 @@
4717
4717
  },
4718
4718
  "schema": {},
4719
4719
  "guideline": "Renders its children only while the identity section shows the summary, and nothing while it shows the form. Takes no props: which state it gates is which component it is. Must be inside an IdentityEditController.",
4720
- "docPath": "packages/faststore/src/matter/identity-edit/identity-edit.md"
4720
+ "docPath": "src/matter/identity-edit/identity-edit.md"
4721
4721
  },
4722
4722
  "IdentityEditForm": {
4723
4723
  "name": "IdentityEditForm",
@@ -4729,7 +4729,7 @@
4729
4729
  },
4730
4730
  "schema": {},
4731
4731
  "guideline": "Renders its children only while the identity section shows the form, and nothing while it shows the summary. Compose ClientProfileFormRoot and its parts inside, plus an IdentityEditCancelButton. Must be inside an IdentityEditController.",
4732
- "docPath": "packages/faststore/src/matter/identity-edit/identity-edit.md"
4732
+ "docPath": "src/matter/identity-edit/identity-edit.md"
4733
4733
  },
4734
4734
  "IdentityEditButton": {
4735
4735
  "name": "IdentityEditButton",
@@ -4747,7 +4747,7 @@
4747
4747
  }
4748
4748
  },
4749
4749
  "guideline": "Opens the identity form. Place it in the section heading, inside an IdentitySummaryView so it disappears while the form is open. Compose an Icon plus text as children, or rely on `label`. Must be inside an IdentityEditController.",
4750
- "docPath": "packages/faststore/src/matter/identity-edit/identity-edit.md"
4750
+ "docPath": "src/matter/identity-edit/identity-edit.md"
4751
4751
  },
4752
4752
  "IdentityEditCancelButton": {
4753
4753
  "name": "IdentityEditCancelButton",
@@ -4765,7 +4765,7 @@
4765
4765
  }
4766
4766
  },
4767
4767
  "guideline": "Returns the identity section to its summary without saving. Place it inside an IdentityEditForm. Must be inside an IdentityEditController.",
4768
- "docPath": "packages/faststore/src/matter/identity-edit/identity-edit.md"
4768
+ "docPath": "src/matter/identity-edit/identity-edit.md"
4769
4769
  },
4770
4770
  "IdentitySummaryRoot": {
4771
4771
  "name": "IdentitySummaryRoot",
@@ -4791,7 +4791,7 @@
4791
4791
  }
4792
4792
  },
4793
4793
  "guideline": "Read-only identity summary data root: reads the shopper profile, provides it plus a sign-out action to descendants, and self-gates (renders nothing in the anonymous state). Must be inside SessionRoot. Wrap the parts in an IdentityEditController for the summary/form swap: an IdentitySummaryView holding these parts, an IdentityEditForm holding a ClientProfileForm. See identity-summary.md.",
4794
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4794
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4795
4795
  },
4796
4796
  "IdentitySummarySelectedSummary": {
4797
4797
  "name": "IdentitySummarySelectedSummary",
@@ -4803,7 +4803,7 @@
4803
4803
  },
4804
4804
  "schema": {},
4805
4805
  "guideline": "Default composition of the identity summary: badge, name, e-mail, phone, document, in that order. It is a shortcut, not the only way — to change the order, drop a field, or interleave anything else, compose IdentitySummaryBadge / Name / Email / Phone / Document directly instead. It offers nothing to the schema: its country and badge-label props configure the default composition only, and are withheld from the schema because a page that set one here and then composed children would watch it vanish. A composed summary configures the leaf instead — the phone mask country on IdentitySummaryPhone, the labels on IdentitySummaryBadge. Must be a descendant of IdentitySummaryRoot.",
4806
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4806
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4807
4807
  },
4808
4808
  "IdentitySummaryBadge": {
4809
4809
  "name": "IdentitySummaryBadge",
@@ -4826,7 +4826,7 @@
4826
4826
  }
4827
4827
  },
4828
4828
  "guideline": "Session-state badge for the identity summary. Place it wherever the summary should carry it; order is composition, not a prop. Must be a descendant of IdentitySummaryRoot.",
4829
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4829
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4830
4830
  },
4831
4831
  "IdentitySummaryName": {
4832
4832
  "name": "IdentitySummaryName",
@@ -4838,7 +4838,7 @@
4838
4838
  },
4839
4839
  "schema": {},
4840
4840
  "guideline": "The shopper's full name, or nothing when the profile has neither first nor last name. Place it in whatever order the summary should read. Must be a descendant of IdentitySummaryRoot.",
4841
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4841
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4842
4842
  },
4843
4843
  "IdentitySummaryEmail": {
4844
4844
  "name": "IdentitySummaryEmail",
@@ -4850,7 +4850,7 @@
4850
4850
  },
4851
4851
  "schema": {},
4852
4852
  "guideline": "The shopper's e-mail, or nothing when absent. Must be a descendant of IdentitySummaryRoot.",
4853
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4853
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4854
4854
  },
4855
4855
  "IdentitySummaryPhone": {
4856
4856
  "name": "IdentitySummaryPhone",
@@ -4867,7 +4867,7 @@
4867
4867
  }
4868
4868
  },
4869
4869
  "guideline": "The shopper's phone, or nothing when absent. Masked for `country` when one is set; rendered as stored otherwise, since each mask truncates to its own country's length. Must be a descendant of IdentitySummaryRoot.",
4870
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4870
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4871
4871
  },
4872
4872
  "IdentitySummaryDocument": {
4873
4873
  "name": "IdentitySummaryDocument",
@@ -4879,7 +4879,7 @@
4879
4879
  },
4880
4880
  "schema": {},
4881
4881
  "guideline": "The shopper's tax document, or nothing when absent. Must be a descendant of IdentitySummaryRoot.",
4882
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4882
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4883
4883
  },
4884
4884
  "IdentitySummarySignOutButton": {
4885
4885
  "name": "IdentitySummarySignOutButton",
@@ -4897,7 +4897,7 @@
4897
4897
  }
4898
4898
  },
4899
4899
  "guideline": "Dispatches $actions.session.logout (async/pessimistic): carries data-fs-identity-summary-pending while in flight and disables itself. Compose an Icon + text as children, or rely on `label`. Must be a descendant of IdentitySummaryRoot.",
4900
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4900
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4901
4901
  },
4902
4902
  "IdentitySummaryError": {
4903
4903
  "name": "IdentitySummaryError",
@@ -4909,7 +4909,7 @@
4909
4909
  },
4910
4910
  "schema": {},
4911
4911
  "guideline": "Renders the inline sign-out error (role=\"alert\") when the logout mutation returns a user error, else nothing. Must be a descendant of IdentitySummaryRoot.",
4912
- "docPath": "packages/faststore/src/matter/identity-summary/identity-summary.md"
4912
+ "docPath": "src/matter/identity-summary/identity-summary.md"
4913
4913
  },
4914
4914
  "PricingRoot": {
4915
4915
  "name": "PricingRoot",
@@ -4928,7 +4928,7 @@
4928
4928
  }
4929
4929
  },
4930
4930
  "guideline": "Root container for the PDP pricing block; all other Pricing sub-components must be descendants of it. Automatically recomputes the offer when a shopper picks a VariantSelector swatch (it reads the published variant selection); the selectedVariantId prop is an optional pre-selection fallback. Falls back silently to the product-level offer on variant fetch error. See pricing.md.",
4931
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4931
+ "docPath": "src/matter/pricing/pricing.md"
4932
4932
  },
4933
4933
  "PricingSellingPrice": {
4934
4934
  "name": "PricingSellingPrice",
@@ -4939,7 +4939,7 @@
4939
4939
  },
4940
4940
  "schema": {},
4941
4941
  "guideline": "Displays the current selling price; must be a descendant of PricingRoot.",
4942
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4942
+ "docPath": "src/matter/pricing/pricing.md"
4943
4943
  },
4944
4944
  "PricingListPrice": {
4945
4945
  "name": "PricingListPrice",
@@ -4950,7 +4950,7 @@
4950
4950
  },
4951
4951
  "schema": {},
4952
4952
  "guideline": "Displays the original (strikethrough) list price; only renders when a discount exists. Must be a descendant of PricingRoot.",
4953
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4953
+ "docPath": "src/matter/pricing/pricing.md"
4954
4954
  },
4955
4955
  "PricingSpotPrice": {
4956
4956
  "name": "PricingSpotPrice",
@@ -4961,7 +4961,7 @@
4961
4961
  },
4962
4962
  "schema": {},
4963
4963
  "guideline": "Displays the best cash/instant-payment price (e.g. Pix); only renders when spotPrice is lower than the selling price. Must be a descendant of PricingRoot.",
4964
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4964
+ "docPath": "src/matter/pricing/pricing.md"
4965
4965
  },
4966
4966
  "PricingInstallments": {
4967
4967
  "name": "PricingInstallments",
@@ -4972,7 +4972,7 @@
4972
4972
  },
4973
4973
  "schema": {},
4974
4974
  "guideline": "Shortcut container that exposes the single best installment across all plans; use PricingInstallmentPlans instead when a per-payment-method breakdown is needed. Must be a descendant of PricingRoot.",
4975
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4975
+ "docPath": "src/matter/pricing/pricing.md"
4976
4976
  },
4977
4977
  "PricingInstallmentPlans": {
4978
4978
  "name": "PricingInstallmentPlans",
@@ -4983,7 +4983,7 @@
4983
4983
  },
4984
4984
  "schema": {},
4985
4985
  "guideline": "Renders one row per payment method; use PricingInstallments instead when only the single best plan is needed. Must be a descendant of PricingRoot.",
4986
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4986
+ "docPath": "src/matter/pricing/pricing.md"
4987
4987
  },
4988
4988
  "PricingInstallmentPlan": {
4989
4989
  "name": "PricingInstallmentPlan",
@@ -4994,7 +4994,7 @@
4994
4994
  },
4995
4995
  "schema": {},
4996
4996
  "guideline": "Renders a single plan row inside PricingInstallmentPlans; nest PricingInstallmentsForPlan inside it to list every installment tier instead of just the best one. Must be a descendant of PricingInstallmentPlans.",
4997
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
4997
+ "docPath": "src/matter/pricing/pricing.md"
4998
4998
  },
4999
4999
  "PricingInstallmentsForPlan": {
5000
5000
  "name": "PricingInstallmentsForPlan",
@@ -5005,7 +5005,7 @@
5005
5005
  },
5006
5006
  "schema": {},
5007
5007
  "guideline": "Iterates every installment tier (1x, 2x, … Nx) of the enclosing plan; must be a descendant of PricingInstallmentPlan.",
5008
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5008
+ "docPath": "src/matter/pricing/pricing.md"
5009
5009
  },
5010
5010
  "PricingPaymentMethodsTrigger": {
5011
5011
  "name": "PricingPaymentMethodsTrigger",
@@ -5016,7 +5016,7 @@
5016
5016
  },
5017
5017
  "schema": {},
5018
5018
  "guideline": "Button that opens the payment-methods disclosure panel; must be a descendant of PopoverRoot.",
5019
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5019
+ "docPath": "src/matter/pricing/pricing.md"
5020
5020
  },
5021
5021
  "PricingPaymentMethodsList": {
5022
5022
  "name": "PricingPaymentMethodsList",
@@ -5027,7 +5027,7 @@
5027
5027
  },
5028
5028
  "schema": {},
5029
5029
  "guideline": "Flat disclosure panel content listing every payment plan; place inside PopoverPopup, DialogPopup, or DrawerPopup. Must be a descendant of PricingRoot.",
5030
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5030
+ "docPath": "src/matter/pricing/pricing.md"
5031
5031
  },
5032
5032
  "PricingPaymentMethodsTabList": {
5033
5033
  "name": "PricingPaymentMethodsTabList",
@@ -5038,7 +5038,7 @@
5038
5038
  },
5039
5039
  "schema": {},
5040
5040
  "guideline": "Emits one tab per payment plan for the tab-grouped disclosure pattern; must be a descendant of TabsList (which is inside TabsRoot). Pair with PricingPaymentMethodsTabPanels.",
5041
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5041
+ "docPath": "src/matter/pricing/pricing.md"
5042
5042
  },
5043
5043
  "PricingPaymentMethodsTabPanels": {
5044
5044
  "name": "PricingPaymentMethodsTabPanels",
@@ -5049,7 +5049,7 @@
5049
5049
  },
5050
5050
  "schema": {},
5051
5051
  "guideline": "Emits one panel per payment plan for the tab-grouped disclosure pattern; must be a sibling of TabsList under TabsRoot (not nested inside TabsList). Pair with PricingPaymentMethodsTabList.",
5052
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5052
+ "docPath": "src/matter/pricing/pricing.md"
5053
5053
  },
5054
5054
  "PricingPaymentMethodName": {
5055
5055
  "name": "PricingPaymentMethodName",
@@ -5060,7 +5060,7 @@
5060
5060
  },
5061
5061
  "schema": {},
5062
5062
  "guideline": "Renders the enclosing plan's payment method name (e.g. \"Visa\", \"Pix\"); must be inside a plan context — PricingInstallmentPlan, PricingPaymentMethodsTabList, or PricingPaymentMethodsTabPanels.",
5063
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5063
+ "docPath": "src/matter/pricing/pricing.md"
5064
5064
  },
5065
5065
  "PricingInstallment": {
5066
5066
  "name": "PricingInstallment",
@@ -5082,7 +5082,7 @@
5082
5082
  }
5083
5083
  },
5084
5084
  "guideline": "Renders a single installment line using {count} and {value} template placeholders; must be a descendant of PricingInstallments, PricingInstallmentPlan, or PricingInstallmentsForPlan.",
5085
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5085
+ "docPath": "src/matter/pricing/pricing.md"
5086
5086
  },
5087
5087
  "PricingDiscount": {
5088
5088
  "name": "PricingDiscount",
@@ -5106,7 +5106,7 @@
5106
5106
  }
5107
5107
  },
5108
5108
  "guideline": "Discount badge for the listPrice-vs-price markdown; use PricingSpotDiscount instead for the spotPrice-vs-price (Pix/cash) percentage. The format prop switches between a percentage (-25%, default) and an absolute amount (-R$ 10,00); the template supports {percentage} and {amount} placeholders and defaults to the format-appropriate one. Recomputes automatically on swatch change. Must be a descendant of PricingRoot.",
5109
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5109
+ "docPath": "src/matter/pricing/pricing.md"
5110
5110
  },
5111
5111
  "PricingSpotDiscount": {
5112
5112
  "name": "PricingSpotDiscount",
@@ -5123,7 +5123,7 @@
5123
5123
  }
5124
5124
  },
5125
5125
  "guideline": "Discount badge for the spotPrice-vs-price (cash/Pix) percentage; use PricingDiscount instead for the listPrice-vs-price percentage. Must be a descendant of PricingRoot.",
5126
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5126
+ "docPath": "src/matter/pricing/pricing.md"
5127
5127
  },
5128
5128
  "PricingHighlights": {
5129
5129
  "name": "PricingHighlights",
@@ -5134,7 +5134,7 @@
5134
5134
  },
5135
5135
  "schema": {},
5136
5136
  "guideline": "Iterates the offer's discount highlight labels (e.g. \"Black Friday\", \"Exclusivo\"); place PricingHighlight as a child. Must be a descendant of PricingRoot.",
5137
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5137
+ "docPath": "src/matter/pricing/pricing.md"
5138
5138
  },
5139
5139
  "PricingHighlight": {
5140
5140
  "name": "PricingHighlight",
@@ -5145,7 +5145,7 @@
5145
5145
  },
5146
5146
  "schema": {},
5147
5147
  "guideline": "Renders a single highlight label as a span; must be a descendant of PricingHighlights.",
5148
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5148
+ "docPath": "src/matter/pricing/pricing.md"
5149
5149
  },
5150
5150
  "PricingPromotions": {
5151
5151
  "name": "PricingPromotions",
@@ -5156,7 +5156,7 @@
5156
5156
  },
5157
5157
  "schema": {},
5158
5158
  "guideline": "Iterates the offer's structured promotions (e.g. \"Compre 3 leve 2\"); place PricingPromotion as a child. Must be a descendant of PricingRoot.",
5159
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5159
+ "docPath": "src/matter/pricing/pricing.md"
5160
5160
  },
5161
5161
  "PricingPromotion": {
5162
5162
  "name": "PricingPromotion",
@@ -5173,7 +5173,7 @@
5173
5173
  }
5174
5174
  },
5175
5175
  "guideline": "Renders a single promotion using the {name} template placeholder; must be a descendant of PricingPromotions.",
5176
- "docPath": "packages/faststore/src/matter/pricing/pricing.md"
5176
+ "docPath": "src/matter/pricing/pricing.md"
5177
5177
  },
5178
5178
  "ProductGalleryRoot": {
5179
5179
  "name": "ProductGalleryRoot",
@@ -5205,7 +5205,7 @@
5205
5205
  }
5206
5206
  },
5207
5207
  "guideline": "PDP-only entry point for the product media gallery; use GalleryRoot instead when media comes from a custom source rather than a product query. Automatically refreshes media when a shopper picks a VariantSelector swatch (it reads the published variant selection); the selectedVariantId prop is an optional pre-selection fallback. Falls back to product media on error. See product-gallery.md.",
5208
- "docPath": "packages/faststore/src/matter/product-gallery/product-gallery.md"
5208
+ "docPath": "src/matter/product-gallery/product-gallery.md"
5209
5209
  },
5210
5210
  "ProductInformationRoot": {
5211
5211
  "name": "ProductInformationRoot",
@@ -5219,7 +5219,7 @@
5219
5219
  "schema": {},
5220
5220
  "providesContext": "product-information",
5221
5221
  "guideline": "Root container for PDP product text — wraps ProductInformationTitle, ProductInformationDescription, ProductInformationBrand, ProductInformationSku, and ProductInformationReferenceId (any subset, any order). See product-information.md.",
5222
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5222
+ "docPath": "src/matter/product-information/product-information.md"
5223
5223
  },
5224
5224
  "ProductInformationTitle": {
5225
5225
  "name": "ProductInformationTitle",
@@ -5248,7 +5248,7 @@
5248
5248
  },
5249
5249
  "requiresContext": "product-information",
5250
5250
  "guideline": "Renders the product title inside a ProductInformationRoot (or any ancestor providing `product-information` context); `as` controls the heading level (`h1`–`h6`, default `h1`) and `separator` optionally appends the selected variant name.",
5251
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5251
+ "docPath": "src/matter/product-information/product-information.md"
5252
5252
  },
5253
5253
  "ProductInformationDescription": {
5254
5254
  "name": "ProductInformationDescription",
@@ -5299,7 +5299,7 @@
5299
5299
  },
5300
5300
  "requiresContext": "product-information",
5301
5301
  "guideline": "Renders the product description inside a ProductInformationRoot (or any ancestor providing `product-information` context); `format` selects the source (`'auto'` default prefers HTML, `'plain'` forces plain text, `'html'` forces HTML only); `collapse` selects the reveal pattern (`'none'` default, `'showMore'` inline line-clamp via `collapsedLines` with `moreLabel`/`lessLabel`, `'section'` Base UI Collapsible disclosure).",
5302
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5302
+ "docPath": "src/matter/product-information/product-information.md"
5303
5303
  },
5304
5304
  "ProductInformationBrand": {
5305
5305
  "name": "ProductInformationBrand",
@@ -5311,7 +5311,7 @@
5311
5311
  "schema": {},
5312
5312
  "requiresContext": "product-information",
5313
5313
  "guideline": "Renders the product brand name inside a ProductInformationRoot (or any ancestor providing `product-information` context); prefers `brand.name` and falls back to `vendor`.",
5314
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5314
+ "docPath": "src/matter/product-information/product-information.md"
5315
5315
  },
5316
5316
  "ProductInformationSku": {
5317
5317
  "name": "ProductInformationSku",
@@ -5323,7 +5323,7 @@
5323
5323
  "schema": {},
5324
5324
  "requiresContext": "product-information",
5325
5325
  "guideline": "Renders the first-variant SKU code inside a ProductInformationRoot (or any ancestor providing `product-information` context).",
5326
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5326
+ "docPath": "src/matter/product-information/product-information.md"
5327
5327
  },
5328
5328
  "ProductInformationReferenceId": {
5329
5329
  "name": "ProductInformationReferenceId",
@@ -5335,7 +5335,7 @@
5335
5335
  "schema": {},
5336
5336
  "requiresContext": "product-information",
5337
5337
  "guideline": "Renders the merchant reference ID inside a ProductInformationRoot (or any ancestor providing `product-information` context).",
5338
- "docPath": "packages/faststore/src/matter/product-information/product-information.md"
5338
+ "docPath": "src/matter/product-information/product-information.md"
5339
5339
  },
5340
5340
  "ProductListRoot": {
5341
5341
  "name": "ProductListRoot",
@@ -5357,7 +5357,7 @@
5357
5357
  }
5358
5358
  },
5359
5359
  "guideline": "Top-level wrapper for the product list; compose as ProductListRoot > ProductListGrid > ProductCard* children. Set usePriceWithTaxes to render tax-inclusive card prices and compose ProductCardTaxLabel to show the taxesLabel.",
5360
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5360
+ "docPath": "src/matter/product-list/product-list.md"
5361
5361
  },
5362
5362
  "ProductListGrid": {
5363
5363
  "name": "ProductListGrid",
@@ -5368,7 +5368,7 @@
5368
5368
  },
5369
5369
  "schema": {},
5370
5370
  "guideline": "Repeating grid that renders the ProductCard* template for each product; must be a direct child of ProductListRoot.",
5371
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5371
+ "docPath": "src/matter/product-list/product-list.md"
5372
5372
  },
5373
5373
  "ProductCard": {
5374
5374
  "name": "ProductCard",
@@ -5385,7 +5385,7 @@
5385
5385
  }
5386
5386
  },
5387
5387
  "guideline": "Optional card wrapper for the ProductCard* parts; always emits data-fs-product-card and data-fs-product-card-bordered (true/false, from the bordered toggle), and adds data-fs-product-card-out-of-stock when the product is unavailable (derived from availability, no prop). The border look is a swatch keyed off data-fs-product-card-bordered. Renders all children unchanged. Must be inside ProductListGrid / ProductShelfItems.",
5388
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5388
+ "docPath": "src/matter/product-list/product-list.md"
5389
5389
  },
5390
5390
  "ProductCardImage": {
5391
5391
  "name": "ProductCardImage",
@@ -5411,7 +5411,7 @@
5411
5411
  }
5412
5412
  },
5413
5413
  "guideline": "Renders the product image with a configurable aspectRatio (e.g. 1/1, 3/4, 16/9) and objectFit. Alt text comes from the catalog. Must be inside ProductListGrid.",
5414
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5414
+ "docPath": "src/matter/product-list/product-list.md"
5415
5415
  },
5416
5416
  "ProductCardName": {
5417
5417
  "name": "ProductCardName",
@@ -5422,7 +5422,7 @@
5422
5422
  },
5423
5423
  "schema": {},
5424
5424
  "guideline": "Renders the product name. Must be inside ProductListGrid.",
5425
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5425
+ "docPath": "src/matter/product-list/product-list.md"
5426
5426
  },
5427
5427
  "ProductCardPrice": {
5428
5428
  "name": "ProductCardPrice",
@@ -5433,7 +5433,7 @@
5433
5433
  },
5434
5434
  "schema": {},
5435
5435
  "guideline": "Displays the selling price formatted from the active storefront context; renders tax-inclusive when usePriceWithTaxes is enabled. Must be inside ProductListGrid.",
5436
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5436
+ "docPath": "src/matter/product-list/product-list.md"
5437
5437
  },
5438
5438
  "ProductCardListPrice": {
5439
5439
  "name": "ProductCardListPrice",
@@ -5444,7 +5444,7 @@
5444
5444
  },
5445
5445
  "schema": {},
5446
5446
  "guideline": "Displays the original (strikethrough) list price when it exceeds the selling price; renders tax-inclusive when usePriceWithTaxes is enabled. Must be inside ProductListGrid.",
5447
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5447
+ "docPath": "src/matter/product-list/product-list.md"
5448
5448
  },
5449
5449
  "ProductCardTaxLabel": {
5450
5450
  "name": "ProductCardTaxLabel",
@@ -5455,7 +5455,7 @@
5455
5455
  },
5456
5456
  "schema": {},
5457
5457
  "guideline": "Tax label (e.g. \"Tax included\") shown beside the price. Renders only when the ProductListRoot/ProductShelfRoot config usePriceWithTaxes is enabled (state-driven, no toggle); the text comes from the taxesLabel config. Compose it to place the label, omit it to hide it. Must be inside ProductListGrid / ProductShelfItems.",
5458
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5458
+ "docPath": "src/matter/product-list/product-list.md"
5459
5459
  },
5460
5460
  "ProductCardDiscount": {
5461
5461
  "name": "ProductCardDiscount",
@@ -5475,7 +5475,7 @@
5475
5475
  }
5476
5476
  },
5477
5477
  "guideline": "Discount badge for the current product; auto-computes the markdown from listPrice vs price and renders only when a discount exists. Compose it to show the badge, omit it to hide it (no toggle). Must be inside ProductListGrid / ProductShelfItems.",
5478
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5478
+ "docPath": "src/matter/product-list/product-list.md"
5479
5479
  },
5480
5480
  "ProductCardAddToCart": {
5481
5481
  "name": "ProductCardAddToCart",
@@ -5491,7 +5491,7 @@
5491
5491
  ]
5492
5492
  },
5493
5493
  "guideline": "Add-to-cart button for the current product card; must be inside ProductListGrid.",
5494
- "docPath": "packages/faststore/src/matter/product-list/product-list.md"
5494
+ "docPath": "src/matter/product-list/product-list.md"
5495
5495
  },
5496
5496
  "ProductQuantityRoot": {
5497
5497
  "name": "ProductQuantityRoot",
@@ -5510,7 +5510,7 @@
5510
5510
  },
5511
5511
  "providesContext": "product-quantity",
5512
5512
  "guideline": "Headless purchase-quantity boundary for a PDP: holds the selected quantity and exposes the selected seller stock as `max`. Renders no DOM, so place it as high as a single product scope allows (e.g. the PDP page root); BuyButton and ProductQuantitySelector may live in different layout blocks anywhere in its subtree. One provider per product. See product-quantity.md.",
5513
- "docPath": "packages/faststore/src/matter/product-quantity/product-quantity.md"
5513
+ "docPath": "src/matter/product-quantity/product-quantity.md"
5514
5514
  },
5515
5515
  "ProductQuantitySelector": {
5516
5516
  "name": "ProductQuantitySelector",
@@ -5522,7 +5522,7 @@
5522
5522
  "schema": {},
5523
5523
  "requiresContext": "product-quantity",
5524
5524
  "guideline": "Quantity selector bound to ProductQuantityRoot context. Renders the generic QuantitySelectorRoot wired to the shared quantity state and seller stock (max). Compose as: ProductQuantitySelector > NumberFieldGroup > NumberFieldDecrement + NumberFieldInput + NumberFieldIncrement.",
5525
- "docPath": "packages/faststore/src/matter/product-quantity/product-quantity.md"
5525
+ "docPath": "src/matter/product-quantity/product-quantity.md"
5526
5526
  },
5527
5527
  "ProductShelfRoot": {
5528
5528
  "name": "ProductShelfRoot",
@@ -5597,7 +5597,7 @@
5597
5597
  }
5598
5598
  },
5599
5599
  "guideline": "Data-owning root of a facet-sourced product shelf. Owns a products(filter:) fragment and receives $data lazily. Compose as: ProductShelfRoot > (ProductShelfHeading + CarouselRoot > (ProductShelfItems + CarouselPrevious + CarouselNext + CarouselBullets)). Compose ProductShelfHeading with the title as its children to render a heading; set the source with categoryId / brandId / collectionId / searchTerm / specifications and tune first, sort, availableOnly. Renders a skeleton while loading and nothing when the result is empty. Bind itemsPerPage to the CarouselRoot so paging matches the shelf config. See product-shelf.md.",
5600
- "docPath": "packages/faststore/src/matter/product-shelf/product-shelf.md"
5600
+ "docPath": "src/matter/product-shelf/product-shelf.md"
5601
5601
  },
5602
5602
  "ProductShelfItems": {
5603
5603
  "name": "ProductShelfItems",
@@ -5609,7 +5609,7 @@
5609
5609
  "requiresContext": "product-shelf",
5610
5610
  "schema": {},
5611
5611
  "guideline": "Repeats the shelf products into the carousel track, publishing one product per slide through the per-item context the ProductCard* parts read. Place directly inside CarouselRoot (it renders the CarouselTrack). Put the card template (ProductCardImage, ProductCardName, ProductCardPrice, …) as its children.",
5612
- "docPath": "packages/faststore/src/matter/product-shelf/product-shelf.md"
5612
+ "docPath": "src/matter/product-shelf/product-shelf.md"
5613
5613
  },
5614
5614
  "ProductShelfHeading": {
5615
5615
  "name": "ProductShelfHeading",
@@ -5621,7 +5621,7 @@
5621
5621
  "requiresContext": "product-shelf",
5622
5622
  "schema": {},
5623
5623
  "guideline": "Renders its children as the shelf title (an <h2>) and provides the section's accessible label. Author the title text as its children (props.children). Place it inside ProductShelfRoot where the title should sit — usually above CarouselRoot. Renders nothing when it has no children.",
5624
- "docPath": "packages/faststore/src/matter/product-shelf/product-shelf.md"
5624
+ "docPath": "src/matter/product-shelf/product-shelf.md"
5625
5625
  },
5626
5626
  "RegionRoot": {
5627
5627
  "name": "RegionRoot",
@@ -5640,7 +5640,7 @@
5640
5640
  },
5641
5641
  "schema": {},
5642
5642
  "guideline": "Provides region context and reads the active postal code and city reactively. Place it in the shared header layout and compose RegionTrigger, RegionValue, RegionLoading, and a RegionModalController inside it. Every Region* component must be a descendant. See region.md.",
5643
- "docPath": "packages/faststore/src/matter/region/region.md"
5643
+ "docPath": "src/matter/region/region.md"
5644
5644
  },
5645
5645
  "RegionTrigger": {
5646
5646
  "name": "RegionTrigger",
@@ -5659,7 +5659,7 @@
5659
5659
  }
5660
5660
  },
5661
5661
  "guideline": "Opens the region modal. Shows its unset label while no region is set; compose RegionValue as its child so the active region reads inside the control once one is. Its accessible name carries the active region, so a screen reader announces where the shopper is shopping. Must be inside RegionRoot.",
5662
- "docPath": "packages/faststore/src/matter/region/region.md"
5662
+ "docPath": "src/matter/region/region.md"
5663
5663
  },
5664
5664
  "RegionValue": {
5665
5665
  "name": "RegionValue",
@@ -5671,7 +5671,7 @@
5671
5671
  },
5672
5672
  "schema": {},
5673
5673
  "guideline": "The active region, as city plus postal code. Renders nothing while the region is unresolved or unset, so it needs no visibility prop — place it inside RegionTrigger, or anywhere in the header that should echo the region. The city is wrapped in its own element (data-fs-region-value-city) so a store can style or hide it; when the contract resolves no city, the postal code renders alone with no separator. A plain space separates the two in the text, so the accessible name reads \"São Paulo 01310-100\"; a flex container strips it, so a gap swatch still sets the visible spacing. Must be inside RegionRoot.",
5674
- "docPath": "packages/faststore/src/matter/region/region.md"
5674
+ "docPath": "src/matter/region/region.md"
5675
5675
  },
5676
5676
  "RegionLoading": {
5677
5677
  "name": "RegionLoading",
@@ -5683,7 +5683,7 @@
5683
5683
  },
5684
5684
  "schema": {},
5685
5685
  "guideline": "Renders its children only while the region read has not resolved. Supply a skeleton placeholder as its child, sized like the resolved display so the header does not reflow when the region arrives. RegionValue renders nothing while this branch is showing, so the two never double up. Must be inside RegionRoot.",
5686
- "docPath": "packages/faststore/src/matter/region/region.md"
5686
+ "docPath": "src/matter/region/region.md"
5687
5687
  },
5688
5688
  "RegionModalController": {
5689
5689
  "name": "RegionModalController",
@@ -5695,7 +5695,7 @@
5695
5695
  },
5696
5696
  "schema": {},
5697
5697
  "guideline": "Wraps a single DialogRoot child (the region modal) and makes it controlled by the region state: RegionTrigger opens it, Escape and the backdrop close it, and a successful write closes it. Do not set raw open/onOpenChange on the wrapped DialogRoot. Compose DialogPortal, DialogBackdrop, DialogViewport and DialogPopup inside it, with DialogTitle and DialogDescription naming the dialog, and place a RegionForm holding RegionPostalCodeControl and RegionSubmit in the popup, alongside RegionError and RegionUnknownLink. Same pattern as CartOpenOnAdd wrapping the mini-cart DrawerRoot. Must be inside RegionRoot.",
5698
- "docPath": "packages/faststore/src/matter/region/region.md"
5698
+ "docPath": "src/matter/region/region.md"
5699
5699
  },
5700
5700
  "RegionForm": {
5701
5701
  "name": "RegionForm",
@@ -5707,7 +5707,7 @@
5707
5707
  },
5708
5708
  "schema": {},
5709
5709
  "guideline": "Form wrapper holding RegionPostalCodeControl and RegionSubmit inside the region modal, so pressing Enter in the field submits. Same role as ShippingSimulatorForm. Compose it whenever both parts sit together; without it the shopper must reach the button, which still works but is not what a one-field form leads them to expect. Must be inside a RegionModalController dialog.",
5710
- "docPath": "packages/faststore/src/matter/region/region.md"
5710
+ "docPath": "src/matter/region/region.md"
5711
5711
  },
5712
5712
  "RegionPostalCodeControl": {
5713
5713
  "name": "RegionPostalCodeControl",
@@ -5737,7 +5737,7 @@
5737
5737
  }
5738
5738
  },
5739
5739
  "guideline": "The postal-code input inside the region modal: a PostalCodeField bound to the region draft, seeded from the persisted value every time the modal opens. Set mask to the country format at build time (default 99999-999, BR CEP). Server rejections mark the field invalid and take focus back to it; their message is shown by RegionError, not repeated here, and the first keystroke after one clears it. Must be inside a RegionModalController dialog.",
5740
- "docPath": "packages/faststore/src/matter/region/region.md"
5740
+ "docPath": "src/matter/region/region.md"
5741
5741
  },
5742
5742
  "RegionSubmit": {
5743
5743
  "name": "RegionSubmit",
@@ -5761,7 +5761,7 @@
5761
5761
  }
5762
5762
  },
5763
5763
  "guideline": "Submits the region draft. Inside a RegionForm it is the form's submit button, which is what makes Enter in the field work; on its own it dispatches directly. Inert while empty and while a write is in flight, so a double activation dispatches one mutation; the pending state is exposed as aria-busy with no built-in spinner. On success the modal closes; on a rejection it stays open and RegionError explains why. Must be inside a RegionModalController dialog.",
5764
- "docPath": "packages/faststore/src/matter/region/region.md"
5764
+ "docPath": "src/matter/region/region.md"
5765
5765
  },
5766
5766
  "RegionError": {
5767
5767
  "name": "RegionError",
@@ -5774,7 +5774,7 @@
5774
5774
  },
5775
5775
  "schema": {},
5776
5776
  "guideline": "Shows why the latest region write was refused, announced as an alert when it appears. Renders nothing when there is no error, so it needs no visibility prop. The server's own message is shown verbatim; the authored generic message covers a transport failure, where there is no server message to show. Must be inside a RegionModalController dialog.",
5777
- "docPath": "packages/faststore/src/matter/region/region.md"
5777
+ "docPath": "src/matter/region/region.md"
5778
5778
  },
5779
5779
  "RegionUnknownLink": {
5780
5780
  "name": "RegionUnknownLink",
@@ -5800,7 +5800,7 @@
5800
5800
  }
5801
5801
  },
5802
5802
  "guideline": "The \"I don't know my postal code\" escape hatch, pointing at a postal-code lookup service. Renders nothing until a destination is set, so a store without a lookup service composes it and simply gets no link rather than a dead one. Its text comes from authored content or its children. Must be inside a RegionModalController dialog.",
5803
- "docPath": "packages/faststore/src/matter/region/region.md"
5803
+ "docPath": "src/matter/region/region.md"
5804
5804
  },
5805
5805
  "SessionRoot": {
5806
5806
  "name": "SessionRoot",
@@ -5813,8 +5813,8 @@
5813
5813
  },
5814
5814
  "schema": {},
5815
5815
  "providesContext": "session",
5816
- "guideline": "Read-only identity-state provider, normally the root of the shared layout so the header and every page it serves resolve the same session: reads the Session and broadcasts the anonymous/identified/logged-in tri-state plus the raw loggedIn and canEditData flags. Layout scope fetches client-side with the shopper cookie; page scope fetches server-side without it. Exactly one per rendered tree — a page must not add its own when the layout already hosts one. See session.md.",
5817
- "docPath": "packages/faststore/src/matter/session/session.md"
5816
+ "guideline": "Read-only identity-state provider, normally the root of the shared layout so the header and every page it serves resolve the same session: reads the Session and broadcasts the anonymous/identified/logged-in tri-state plus the raw loggedIn and canEditData flags. Layout scope fetches once client-side and reuses the cache across navigation; page scope fetches fresh server-side on every request. Exactly one per rendered tree — a page must not add its own when the layout already hosts one. See session.md.",
5817
+ "docPath": "src/matter/session/session.md"
5818
5818
  },
5819
5819
  "SessionGuard": {
5820
5820
  "name": "SessionGuard",
@@ -5836,7 +5836,7 @@
5836
5836
  },
5837
5837
  "requiresContext": "session",
5838
5838
  "guideline": "Declarative gate: renders its children only when the current session state is one of the values in `when` (e.g. {\"when\":[\"identified\",\"loggedIn\"]}), else renders nothing. Use it in page or layout JSON to show or hide an identity subtree by state without writing the gate into a component. Must be inside SessionRoot, which may be hosted by the page or by its layout.",
5839
- "docPath": "packages/faststore/src/matter/session/session.md"
5839
+ "docPath": "src/matter/session/session.md"
5840
5840
  },
5841
5841
  "ShippingAddressRoot": {
5842
5842
  "name": "ShippingAddressRoot",
@@ -5861,7 +5861,7 @@
5861
5861
  }
5862
5862
  },
5863
5863
  "guideline": "Country-adaptive single-address delivery form; batches all fields and writes once via shipping.setAddress. See shipping-address.md.",
5864
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5864
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5865
5865
  },
5866
5866
  "ShippingAddressRecipientNameControl": {
5867
5867
  "name": "ShippingAddressRecipientNameControl",
@@ -5873,7 +5873,7 @@
5873
5873
  },
5874
5874
  "schema": {},
5875
5875
  "guideline": "Recipient-name input field; required for submit. Must be a descendant of ShippingAddressRoot.",
5876
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5876
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5877
5877
  },
5878
5878
  "ShippingAddressStreetControl": {
5879
5879
  "name": "ShippingAddressStreetControl",
@@ -5885,7 +5885,7 @@
5885
5885
  },
5886
5886
  "schema": {},
5887
5887
  "guideline": "Street name input field. Must be a descendant of ShippingAddressRoot.",
5888
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5888
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5889
5889
  },
5890
5890
  "ShippingAddressNumberControl": {
5891
5891
  "name": "ShippingAddressNumberControl",
@@ -5897,7 +5897,7 @@
5897
5897
  },
5898
5898
  "schema": {},
5899
5899
  "guideline": "Street number input field. Must be a descendant of ShippingAddressRoot.",
5900
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5900
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5901
5901
  },
5902
5902
  "ShippingAddressCityControl": {
5903
5903
  "name": "ShippingAddressCityControl",
@@ -5909,7 +5909,7 @@
5909
5909
  },
5910
5910
  "schema": {},
5911
5911
  "guideline": "City name input field. Must be a descendant of ShippingAddressRoot.",
5912
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5912
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5913
5913
  },
5914
5914
  "ShippingAddressStateControl": {
5915
5915
  "name": "ShippingAddressStateControl",
@@ -5921,7 +5921,7 @@
5921
5921
  },
5922
5922
  "schema": {},
5923
5923
  "guideline": "State/province input field. Must be a descendant of ShippingAddressRoot.",
5924
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5924
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5925
5925
  },
5926
5926
  "ShippingAddressPostalCodeControl": {
5927
5927
  "name": "ShippingAddressPostalCodeControl",
@@ -5933,7 +5933,7 @@
5933
5933
  },
5934
5934
  "schema": {},
5935
5935
  "guideline": "Postal code input field. Must be a descendant of ShippingAddressRoot.",
5936
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5936
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5937
5937
  },
5938
5938
  "ShippingAddressComplementControl": {
5939
5939
  "name": "ShippingAddressComplementControl",
@@ -5945,7 +5945,7 @@
5945
5945
  },
5946
5946
  "schema": {},
5947
5947
  "guideline": "Complement (apartment, suite, etc.) input field. Must be a descendant of ShippingAddressRoot.",
5948
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5948
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5949
5949
  },
5950
5950
  "ShippingAddressNeighborhoodControl": {
5951
5951
  "name": "ShippingAddressNeighborhoodControl",
@@ -5957,7 +5957,7 @@
5957
5957
  },
5958
5958
  "schema": {},
5959
5959
  "guideline": "Neighborhood (bairro) input field; shown only for countries that have this field (BR in v1). Must be a descendant of ShippingAddressRoot.",
5960
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5960
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5961
5961
  },
5962
5962
  "ShippingAddressCountryControl": {
5963
5963
  "name": "ShippingAddressCountryControl",
@@ -5975,7 +5975,7 @@
5975
5975
  }
5976
5976
  },
5977
5977
  "guideline": "Country selector; lists only countries with an implemented descriptor. Must be a descendant of ShippingAddressRoot.",
5978
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5978
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5979
5979
  },
5980
5980
  "ShippingAddressSavedList": {
5981
5981
  "name": "ShippingAddressSavedList",
@@ -5987,7 +5987,7 @@
5987
5987
  },
5988
5988
  "schema": {},
5989
5989
  "guideline": "List of saved addresses for logged-in shoppers; renders only if savedAddresses is non-empty. Must be a descendant of ShippingAddressRoot.",
5990
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
5990
+ "docPath": "src/matter/shipping-address/shipping-address.md"
5991
5991
  },
5992
5992
  "ShippingAddressSavedOption": {
5993
5993
  "name": "ShippingAddressSavedOption",
@@ -6004,7 +6004,7 @@
6004
6004
  }
6005
6005
  },
6006
6006
  "guideline": "A single saved address option; renders its address via the same AddressSummary particle (through its own AddressSummaryRoot) used by ShippingAddressSelectedSummary, so both share one formatting implementation. Must be a descendant of ShippingAddressSavedList.",
6007
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6007
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6008
6008
  },
6009
6009
  "ShippingAddressSubmit": {
6010
6010
  "name": "ShippingAddressSubmit",
@@ -6027,7 +6027,7 @@
6027
6027
  }
6028
6028
  },
6029
6029
  "guideline": "Submit button; dispatches the batched address write. Disabled until recipient name is non-blank. Must be a descendant of ShippingAddressRoot.",
6030
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6030
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6031
6031
  },
6032
6032
  "ShippingAddressError": {
6033
6033
  "name": "ShippingAddressError",
@@ -6039,7 +6039,7 @@
6039
6039
  },
6040
6040
  "schema": {},
6041
6041
  "guideline": "Error banner; shows domain validation errors inline or a generic upstream-error state. Must be a descendant of ShippingAddressRoot.",
6042
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6042
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6043
6043
  },
6044
6044
  "ShippingAddressSavedAddressDrawerController": {
6045
6045
  "name": "ShippingAddressSavedAddressDrawerController",
@@ -6051,7 +6051,7 @@
6051
6051
  },
6052
6052
  "schema": {},
6053
6053
  "guideline": "Wraps a single DrawerRoot child (the saved-address selection drawer) and makes it controlled by the shipping-address drawer state: open state and blocked-dismissal-while-submitting are handled here, so do not set raw open/onOpenChange on the wrapped DrawerRoot. Compose as the parent of DrawerRoot, with the drawer trigger and popup as DrawerRoot descendants, same pattern as CartOpenOnAdd wrapping the mini-cart DrawerRoot. Must be inside ShippingAddressRoot.",
6054
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6054
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6055
6055
  },
6056
6056
  "ShippingAddressSavedAddressSubmit": {
6057
6057
  "name": "ShippingAddressSavedAddressSubmit",
@@ -6074,7 +6074,7 @@
6074
6074
  }
6075
6075
  },
6076
6076
  "guideline": "The drawer's \"selecionar\" submit button; independent submitting state from the main form's Submit (Decision 7); no-ops when the selected saved address is already the current one (Decision 8). Must be inside the saved-address drawer's DrawerPopup and inside ShippingAddressRoot.",
6077
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6077
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6078
6078
  },
6079
6079
  "ShippingAddressSelectedSummary": {
6080
6080
  "name": "ShippingAddressSelectedSummary",
@@ -6087,7 +6087,7 @@
6087
6087
  },
6088
6088
  "schema": {},
6089
6089
  "guideline": "Provides the current delivery address to the generic AddressSummary particle via AddressSummaryRoot context, and renders the default AddressSummary when composed with no children. Compose AddressSummaryRecipient / Street / Locality directly to choose the order or drop a line. Self-gates to null when there is no current address yet. Must be a descendant of ShippingAddressRoot.",
6090
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6090
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6091
6091
  },
6092
6092
  "ShippingAddressEditController": {
6093
6093
  "name": "ShippingAddressEditController",
@@ -6100,7 +6100,7 @@
6100
6100
  },
6101
6101
  "schema": {},
6102
6102
  "guideline": "Owns the view/edit toggle for the delivery address section: defaults to view when a current address exists, edit otherwise; switches back to view automatically whenever setAddress succeeds (main form submit or saved-address drawer submit), without ShippingAddressSubmit/ShippingAddressSavedAddressSubmit needing to know about this mode. Compose a ShippingAddressSummaryView holding SelectedSummary + EditButton and a ShippingAddressEditForm holding the form Controls/Submit/Error. Self-contained: it decides from its own data and the shopper's own presses, so no other section opens it and finishing it opens nothing. Must be inside ShippingAddressRoot.",
6103
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6103
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6104
6104
  },
6105
6105
  "ShippingAddressSummaryView": {
6106
6106
  "name": "ShippingAddressSummaryView",
@@ -6112,7 +6112,7 @@
6112
6112
  },
6113
6113
  "schema": {},
6114
6114
  "guideline": "Renders its children only while the delivery section shows the saved-address summary, and nothing while it shows the form. Compose SelectedSummary and a ShippingAddressEditButton inside. Takes no props: which state it gates is which component it is. Must be inside a ShippingAddressEditController.",
6115
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6115
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6116
6116
  },
6117
6117
  "ShippingAddressEditForm": {
6118
6118
  "name": "ShippingAddressEditForm",
@@ -6124,7 +6124,7 @@
6124
6124
  },
6125
6125
  "schema": {},
6126
6126
  "guideline": "Renders its children only while the delivery section shows the address form, and nothing while it shows the summary. Compose the Controls, Submit and Error parts inside. Must be inside a ShippingAddressEditController.",
6127
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6127
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6128
6128
  },
6129
6129
  "ShippingAddressEditButton": {
6130
6130
  "name": "ShippingAddressEditButton",
@@ -6142,7 +6142,7 @@
6142
6142
  }
6143
6143
  },
6144
6144
  "guideline": "CTA that switches the view/edit mode to edit. Typically placed inside a ShippingAddressSummaryView, next to SelectedSummary. Must be inside ShippingAddressEditController.",
6145
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6145
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6146
6146
  },
6147
6147
  "ShippingAddressCancelButton": {
6148
6148
  "name": "ShippingAddressCancelButton",
@@ -6160,7 +6160,7 @@
6160
6160
  }
6161
6161
  },
6162
6162
  "guideline": "Returns the delivery section to its summary without saving. Place it inside a ShippingAddressEditForm so a shopper who opened the form has a way back that does not depend on a successful write. Must be inside ShippingAddressEditController.",
6163
- "docPath": "packages/faststore/src/matter/shipping-address/shipping-address.md"
6163
+ "docPath": "src/matter/shipping-address/shipping-address.md"
6164
6164
  },
6165
6165
  "ShippingSimulatorRoot": {
6166
6166
  "name": "ShippingSimulatorRoot",
@@ -6185,7 +6185,7 @@
6185
6185
  },
6186
6186
  "providesContext": "shipping-simulator",
6187
6187
  "guideline": "Root container for the PDP shipping simulator: a shopper types a postal code and sees a shipping preview for ONE product on a product detail page. Backed by shippingSimulation and a product fragment (productBySlug(slug: $slug)), so it must live on a page with a $slug variable. Use CartShippingSimulatorRoot instead for a whole-cart calculator in the cart/mini-cart. All other ShippingSimulator components must be descendants of this one.",
6188
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6188
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6189
6189
  },
6190
6190
  "CartShippingSimulatorRoot": {
6191
6191
  "name": "CartShippingSimulatorRoot",
@@ -6203,7 +6203,7 @@
6203
6203
  },
6204
6204
  "providesContext": "shipping-simulator",
6205
6205
  "guideline": "Root container for the cart/mini-cart shipping calculator: the shopper types a postal code and sees the shipping options for the WHOLE cart. Backed by cartShippingSimulation (cart sourced server-side via x-order-form-id); needs no CartRoot ancestor and no product fragment. Use ShippingSimulatorRoot instead for a single-product shipping preview on a PDP. All other CartShippingSimulator components must be descendants of this one.",
6206
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6206
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6207
6207
  },
6208
6208
  "ShippingSimulatorForm": {
6209
6209
  "name": "ShippingSimulatorForm",
@@ -6215,7 +6215,7 @@
6215
6215
  "schema": {},
6216
6216
  "requiresContext": "shipping-simulator",
6217
6217
  "guideline": "Form wrapper that holds ShippingSimulatorInput and ShippingSimulatorSubmit; must be a descendant of ShippingSimulatorRoot.",
6218
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6218
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6219
6219
  },
6220
6220
  "ShippingSimulatorInput": {
6221
6221
  "name": "ShippingSimulatorInput",
@@ -6233,7 +6233,7 @@
6233
6233
  },
6234
6234
  "requiresContext": "shipping-simulator",
6235
6235
  "guideline": "Postal-code text input; enable `format` to auto-hyphenate the CEP as the user types (e.g. 01310-100). The placeholder comes from the message catalog. Must be a descendant of ShippingSimulatorForm.",
6236
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6236
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6237
6237
  },
6238
6238
  "ShippingSimulatorSubmit": {
6239
6239
  "name": "ShippingSimulatorSubmit",
@@ -6245,7 +6245,7 @@
6245
6245
  "schema": {},
6246
6246
  "requiresContext": "shipping-simulator",
6247
6247
  "guideline": "Submit button for the postal-code form; must be a descendant of ShippingSimulatorForm.",
6248
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6248
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6249
6249
  },
6250
6250
  "ShippingSimulatorLoading": {
6251
6251
  "name": "ShippingSimulatorLoading",
@@ -6257,7 +6257,7 @@
6257
6257
  "schema": {},
6258
6258
  "requiresContext": "shipping-simulator",
6259
6259
  "guideline": "Loading indicator shown while a simulation is in progress; must be a descendant of ShippingSimulatorRoot.",
6260
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6260
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6261
6261
  },
6262
6262
  "ShippingSimulatorError": {
6263
6263
  "name": "ShippingSimulatorError",
@@ -6269,7 +6269,7 @@
6269
6269
  "schema": {},
6270
6270
  "requiresContext": "shipping-simulator",
6271
6271
  "guideline": "Error banner shown when the simulation returns validation errors; must be a descendant of ShippingSimulatorRoot.",
6272
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6272
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6273
6273
  },
6274
6274
  "ShippingSimulatorOptions": {
6275
6275
  "name": "ShippingSimulatorOptions",
@@ -6294,7 +6294,7 @@
6294
6294
  "requiresContext": "shipping-simulator",
6295
6295
  "providesContext": "shipping-simulator-option",
6296
6296
  "guideline": "List that renders one ShippingSimulatorOption per available shipping option; must be a descendant of a shipping-simulator Root (PDP or cart). Renders every option in API order by default; set sortBy (\"price\" = cheapest first, \"estimate\" = fastest first) and maxOptions to cap the list — sortBy=\"price\" with maxOptions=1 shows only the cheapest option. See shipping-simulator.md.",
6297
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6297
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6298
6298
  },
6299
6299
  "ShippingSimulatorOption": {
6300
6300
  "name": "ShippingSimulatorOption",
@@ -6306,7 +6306,7 @@
6306
6306
  "schema": {},
6307
6307
  "requiresContext": "shipping-simulator-option",
6308
6308
  "guideline": "Container for a single shipping option row; holds ShippingSimulatorOptionName, ShippingSimulatorOptionEstimate, and ShippingSimulatorOptionPrice. Must be a descendant of ShippingSimulatorOptions.",
6309
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6309
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6310
6310
  },
6311
6311
  "ShippingSimulatorOptionName": {
6312
6312
  "name": "ShippingSimulatorOptionName",
@@ -6318,7 +6318,7 @@
6318
6318
  "schema": {},
6319
6319
  "requiresContext": "shipping-simulator-option",
6320
6320
  "guideline": "Displays the shipping option name (e.g. \"Entrega Normal\"); must be a descendant of ShippingSimulatorOption.",
6321
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6321
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6322
6322
  },
6323
6323
  "ShippingSimulatorOptionEstimate": {
6324
6324
  "name": "ShippingSimulatorOptionEstimate",
@@ -6330,7 +6330,7 @@
6330
6330
  "schema": {},
6331
6331
  "requiresContext": "shipping-simulator-option",
6332
6332
  "guideline": "Displays the delivery estimate in the active locale, one whole sentence per unit from the message catalog; a zero-value estimate (any unit) reads as an arrival-today message instead, since \"chega em 0 dias úteis\" reads wrong. Must be a descendant of ShippingSimulatorOption.",
6333
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6333
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6334
6334
  },
6335
6335
  "ShippingSimulatorOptionPrice": {
6336
6336
  "name": "ShippingSimulatorOptionPrice",
@@ -6342,7 +6342,7 @@
6342
6342
  "schema": {},
6343
6343
  "requiresContext": "shipping-simulator-option",
6344
6344
  "guideline": "Displays the shipping price, showing the free-shipping label from the message catalog when the amount is zero; must be a descendant of ShippingSimulatorOption.",
6345
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6345
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6346
6346
  },
6347
6347
  "ShippingSimulatorOptionFreeBadge": {
6348
6348
  "name": "ShippingSimulatorOptionFreeBadge",
@@ -6354,7 +6354,7 @@
6354
6354
  "schema": {},
6355
6355
  "requiresContext": "shipping-simulator-option",
6356
6356
  "guideline": "Badge shown only when the current option price is zero (free shipping); renders nothing otherwise. Must be a descendant of ShippingSimulatorOption. Orthogonal to the free-price replacement text owned by ShippingSimulatorOptionPrice.",
6357
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6357
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6358
6358
  },
6359
6359
  "ShippingSimulatorEmpty": {
6360
6360
  "name": "ShippingSimulatorEmpty",
@@ -6366,7 +6366,7 @@
6366
6366
  "schema": {},
6367
6367
  "requiresContext": "shipping-simulator",
6368
6368
  "guideline": "Message shown when a simulation ran and returned no shipping options (e.g. no carrier common to the whole cart). Renders nothing before the first submit and nothing when options or an error are present. The copy comes from the message catalog; pass children to override. Must be a descendant of a shipping-simulator Root.",
6369
- "docPath": "packages/faststore/src/matter/shipping-simulator/shipping-simulator.md"
6369
+ "docPath": "src/matter/shipping-simulator/shipping-simulator.md"
6370
6370
  },
6371
6371
  "SignInForm": {
6372
6372
  "name": "SignInForm",
@@ -6451,7 +6451,28 @@
6451
6451
  }
6452
6452
  },
6453
6453
  "guideline": "Combined email+password sign-in form dispatching $actions.session.loginWithPassword; pre-fills the email from clientProfile.email, self-hides once the session is loggedIn, and exposes data-fs-sign-in-form-pending while the submit is in flight. Must be inside SessionRoot. See sign-in-form.md.",
6454
- "docPath": "packages/faststore/src/matter/sign-in-form/sign-in-form.md"
6454
+ "docPath": "src/matter/sign-in-form/sign-in-form.md"
6455
+ },
6456
+ "SignInRedirect": {
6457
+ "name": "SignInRedirect",
6458
+ "importPath": "@vtex/faststore/components",
6459
+ "contentTypeId": "sign-in-redirect",
6460
+ "editor": {
6461
+ "label": "Sign In Redirect",
6462
+ "category": "identity"
6463
+ },
6464
+ "schema": {
6465
+ "platformLoginUrl": {
6466
+ "type": "string",
6467
+ "label": "Platform Login URL"
6468
+ },
6469
+ "loadingLabel": {
6470
+ "type": "string",
6471
+ "label": "Waiting Message"
6472
+ }
6473
+ },
6474
+ "guideline": "The whole of the /login route: on mount it replaces the document with the account's platform login, forwarding a validated returnUrl from the incoming query. It is a handover, not a block — place it alone on its own page, never inside a header, drawer, or any page a shopper is meant to read, because anything composed beside it is navigated away from before it can be seen. Never place it under an account shell or behind AccountAccessGate, whose redirect targets this route. It renders no sign-in fields of its own and collects no credentials — the shopper types them on the platform, after this component has already left the page. platformLoginUrl is required and per-account (absolute URL or site-relative path), and must not be the storefront's own /login, which would hand this route to itself — with no usable value the component renders nothing and warns.",
6475
+ "docPath": "src/matter/sign-in-redirect/sign-in-redirect.md"
6455
6476
  },
6456
6477
  "VariantSelectorRoot": {
6457
6478
  "name": "VariantSelectorRoot",
@@ -6470,7 +6491,7 @@
6470
6491
  },
6471
6492
  "providesContext": "variant-selector",
6472
6493
  "guideline": "Root container for PDP variant swatches — derives option axes and availability from the product variants and publishes the selected variant for sibling components. Wraps one VariantSelectorOptionGroup per axis. The selectedVariantId prop pre-selects the viewed SKU before the shopper interacts; the live selection wins once a swatch is activated.",
6473
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6494
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6474
6495
  },
6475
6496
  "VariantSelectorOptionGroup": {
6476
6497
  "name": "VariantSelectorOptionGroup",
@@ -6497,7 +6518,7 @@
6497
6518
  "requiresContext": "variant-selector",
6498
6519
  "providesContext": "variant-selector-group",
6499
6520
  "guideline": "One option axis (e.g. Color) inside a VariantSelectorRoot. A container only — it binds the axis and owns the collapse/expand state, then renders whatever you compose inside it. Fill it, in any order, with: a VariantSelectorGroupTitle (the axis name) and optionally a VariantSelectorGroupValue beside it to echo the selection, exactly one swatch list (VariantSelectorSwatches to auto-infer the look, or VariantSelectorColorSwatches / VariantSelectorImageSwatches / VariantSelectorLabelSwatches / VariantSelectorRadioSwatches to fix it), and optionally a VariantSelectorOverflow (\"+N more\") to collapse a row that does not fit its width. Because the parts read the group via context, you can place them freely — e.g. the title in an accordion header and the swatch list in its panel. Bind the axis with optionIndex (0-based, in the product's option order — the reliable choice when authoring from an image, since groups are placed in visual order) or, when the exact catalog option name is known, optionName (matched case/accent-insensitively, no plural/translation guessing). Compose a VariantSelectorOverflow to opt into automatic space-based collapse: the group measures the swatch row and keeps only the swatches that fit on one line, revealing the rest via the trigger — no cap prop. The trigger sits in its own space by default; set reserveTriggerSpace when it is styled inline at the end of the swatch row, so its width is reserved and it stays on the line.",
6500
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6521
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6501
6522
  },
6502
6523
  "VariantSelectorGroupTitle": {
6503
6524
  "name": "VariantSelectorGroupTitle",
@@ -6514,7 +6535,7 @@
6514
6535
  },
6515
6536
  "requiresContext": "variant-selector-group",
6516
6537
  "guideline": "The axis name inside a VariantSelectorOptionGroup (e.g. \"Color\"). Reads the axis from context, so it stays correct even when placed apart from the swatches (e.g. in an accordion header). Set label to match a design prompt (\"Selecione a cor\") without changing the axis binding. It renders the name only — to echo the selected value place a VariantSelectorGroupValue beside it (e.g. both inside a Container); the separator (a colon), the value weight, and the spacing are brand styling on the data-fs hooks, not props.",
6517
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6538
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6518
6539
  },
6519
6540
  "VariantSelectorGroupValue": {
6520
6541
  "name": "VariantSelectorGroupValue",
@@ -6526,7 +6547,7 @@
6526
6547
  "schema": {},
6527
6548
  "requiresContext": "variant-selector-group",
6528
6549
  "guideline": "The live selected value of a VariantSelectorOptionGroup (e.g. \"Red\"), as its own placeable part. Compose it beside a VariantSelectorGroupTitle — typically both inside a Container — to render \"Color: Red\", where the colon and the value weight are styling on the data-fs hooks. Omit it entirely when the design shows only the axis name (e.g. above a radio list, whose selected dot already conveys the choice). It is decorative (aria-hidden): the selection is announced per option, so the group is named by the axis alone.",
6529
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6550
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6530
6551
  },
6531
6552
  "VariantSelectorSwatches": {
6532
6553
  "name": "VariantSelectorSwatches",
@@ -6538,7 +6559,7 @@
6538
6559
  "schema": {},
6539
6560
  "requiresContext": "variant-selector-group",
6540
6561
  "guideline": "The swatch list inside a VariantSelectorOptionGroup, auto-inferring the look from the option data: color when every value has a hex color, image when values resolve to differing variant images, else label (it never infers radio). Renders one swatch per option automatically — do not author VariantSelectorOption children. To fix the look instead of inferring it, use a sibling list: VariantSelectorColorSwatches / VariantSelectorImageSwatches / VariantSelectorLabelSwatches / VariantSelectorRadioSwatches. Swatch shape (square vs circle) is styling. Use exactly one swatch list per group.",
6541
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6562
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6542
6563
  },
6543
6564
  "VariantSelectorLabelSwatches": {
6544
6565
  "name": "VariantSelectorLabelSwatches",
@@ -6550,7 +6571,7 @@
6550
6571
  "schema": {},
6551
6572
  "requiresContext": "variant-selector-group",
6552
6573
  "guideline": "Swatch list rendered as text-label swatches (size pills, materials, voltages, any axis that should read as text). Use inside a VariantSelectorOptionGroup when the look must always be text regardless of the data (auto can resolve a size axis to image when its values map to differing variant photos). Renders its options automatically. Use exactly one swatch list per group.",
6553
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6574
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6554
6575
  },
6555
6576
  "VariantSelectorImageSwatches": {
6556
6577
  "name": "VariantSelectorImageSwatches",
@@ -6562,7 +6583,7 @@
6562
6583
  "schema": {},
6563
6584
  "requiresContext": "variant-selector-group",
6564
6585
  "guideline": "Swatch list rendered as image (thumbnail) swatches; each shows the variant's primary image, degrading to the value label when no image is available. Use inside a VariantSelectorOptionGroup; prefer binding that group by optionName so the photo pairs with its intended axis — a positionally-bound group with an image list can hijack a text axis (e.g. sizes shown as clothing photos) when the live product exposes fewer or reordered axes than the design. Renders its options automatically. Use exactly one swatch list per group.",
6565
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6586
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6566
6587
  },
6567
6588
  "VariantSelectorColorSwatches": {
6568
6589
  "name": "VariantSelectorColorSwatches",
@@ -6574,7 +6595,7 @@
6574
6595
  "schema": {},
6575
6596
  "requiresContext": "variant-selector-group",
6576
6597
  "guideline": "Swatch list rendered as color-chip swatches. Use inside a VariantSelectorOptionGroup when the design shows solid color chips. A value with no hex color (hexColor has no catalog source and is injection-only) degrades per value to its variant image, then to the value label, so a chip is never empty — choosing this from a design's colored swatches is always safe. Shape (circle vs square) is styling. Renders its options automatically. Use exactly one swatch list per group.",
6577
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6598
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6578
6599
  },
6579
6600
  "VariantSelectorRadioSwatches": {
6580
6601
  "name": "VariantSelectorRadioSwatches",
@@ -6586,7 +6607,7 @@
6586
6607
  "schema": {},
6587
6608
  "requiresContext": "variant-selector-group",
6588
6609
  "guideline": "Swatch list rendered as a radio-dot list — a control circle showing a dot when selected, beside the value label (common for voltage/material lists). Use inside a VariantSelectorOptionGroup; auto never picks this look, so reference it directly when the design shows a radio list. A square control or a checkmark is styling. Typically pair with a VariantSelectorGroupTitle (the axis name) and omit the VariantSelectorGroupValue, since the selected dot already conveys the choice. Renders its options automatically. Use exactly one swatch list per group.",
6589
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6610
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6590
6611
  },
6591
6612
  "VariantSelectorOverflow": {
6592
6613
  "name": "VariantSelectorOverflow",
@@ -6598,7 +6619,7 @@
6598
6619
  "schema": {},
6599
6620
  "requiresContext": "variant-selector-group",
6600
6621
  "guideline": "The \"+N more\" trigger inside a VariantSelectorOptionGroup. Composing it opts the group into automatic space-based collapse: the group measures the swatch row and, when the swatches do not fit on one line, collapses the extras behind this trigger, which expands them in place when clicked. It renders only while the row actually overflows. Author it after the swatch list; omit it when the row should never collapse.",
6601
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6622
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6602
6623
  },
6603
6624
  "VariantSelectorOption": {
6604
6625
  "name": "VariantSelectorOption",
@@ -6610,6 +6631,6 @@
6610
6631
  "schema": {},
6611
6632
  "requiresContext": "variant-selector-group",
6612
6633
  "guideline": "One swatch within a swatch list; reflects checked/disabled states and activates the matching variant on selection. Rendered automatically by the swatch list from the product data — do not author it directly.",
6613
- "docPath": "packages/faststore/src/matter/variant-selector/variant-selector.md"
6634
+ "docPath": "src/matter/variant-selector/variant-selector.md"
6614
6635
  }
6615
6636
  }