@vtex/faststore 0.0.1

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 (538) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE +21 -0
  3. package/README.md +95 -0
  4. package/dist/actions.json +334 -0
  5. package/dist/catalog.json +6615 -0
  6. package/dist/client.d.ts +17 -0
  7. package/dist/client.js +8 -0
  8. package/dist/components.d.ts +87 -0
  9. package/dist/components.js +87 -0
  10. package/dist/content-types.json +684 -0
  11. package/dist/core/dist/actions/mock-action.d.ts +24 -0
  12. package/dist/core/dist/actions/mock-action.js +28 -0
  13. package/dist/core/dist/actions/mock-action.js.map +1 -0
  14. package/dist/core/dist/actions/registry.d.ts +24 -0
  15. package/dist/core/dist/actions/registry.js +28 -0
  16. package/dist/core/dist/actions/registry.js.map +1 -0
  17. package/dist/core/dist/define-component.d.ts +100 -0
  18. package/dist/core/dist/define-component.js +8 -0
  19. package/dist/core/dist/define-component.js.map +1 -0
  20. package/dist/core/dist/define-content-type.d.ts +95 -0
  21. package/dist/core/dist/define-content-type.js +283 -0
  22. package/dist/core/dist/define-content-type.js.map +1 -0
  23. package/dist/core/dist/index.d.ts +7 -0
  24. package/dist/core/dist/index.js +5 -0
  25. package/dist/core/dist/schema/generated/schema.d.ts +28 -0
  26. package/dist/core/dist/types.d.ts +1 -0
  27. package/dist/docs/access-code-field.md +100 -0
  28. package/dist/docs/access-code-sign-in.md +174 -0
  29. package/dist/docs/account-entry-point.md +155 -0
  30. package/dist/docs/address-summary.md +50 -0
  31. package/dist/docs/buy-button.md +162 -0
  32. package/dist/docs/carousel.md +105 -0
  33. package/dist/docs/cart-item.md +162 -0
  34. package/dist/docs/cart-totalizer.md +197 -0
  35. package/dist/docs/cart.md +495 -0
  36. package/dist/docs/client-preferences.md +184 -0
  37. package/dist/docs/client-profile-form.md +192 -0
  38. package/dist/docs/client-profile.md +117 -0
  39. package/dist/docs/container.md +97 -0
  40. package/dist/docs/document-field.md +97 -0
  41. package/dist/docs/email-field.md +93 -0
  42. package/dist/docs/email-identification.md +102 -0
  43. package/dist/docs/footer-copyright.md +112 -0
  44. package/dist/docs/footer-link-group.md +162 -0
  45. package/dist/docs/footer-root.md +145 -0
  46. package/dist/docs/footer-social.md +151 -0
  47. package/dist/docs/free-shipping-progress.md +87 -0
  48. package/dist/docs/gallery.md +84 -0
  49. package/dist/docs/header-root.md +150 -0
  50. package/dist/docs/identity-edit.md +88 -0
  51. package/dist/docs/identity-summary.md +106 -0
  52. package/dist/docs/incentives.md +151 -0
  53. package/dist/docs/logo.md +135 -0
  54. package/dist/docs/meter.md +67 -0
  55. package/dist/docs/navigation-link-list.md +171 -0
  56. package/dist/docs/navigation-link.md +163 -0
  57. package/dist/docs/navigation-menu.md +264 -0
  58. package/dist/docs/payment-methods.md +139 -0
  59. package/dist/docs/phone-field.md +106 -0
  60. package/dist/docs/postal-code-field.md +126 -0
  61. package/dist/docs/pricing.md +499 -0
  62. package/dist/docs/product-gallery.md +409 -0
  63. package/dist/docs/product-information.md +295 -0
  64. package/dist/docs/product-list.md +170 -0
  65. package/dist/docs/product-quantity.md +88 -0
  66. package/dist/docs/product-shelf.md +141 -0
  67. package/dist/docs/promotion.md +109 -0
  68. package/dist/docs/region.md +225 -0
  69. package/dist/docs/session.md +123 -0
  70. package/dist/docs/shipping-address.md +390 -0
  71. package/dist/docs/shipping-simulator.md +147 -0
  72. package/dist/docs/sign-in-form.md +117 -0
  73. package/dist/docs/tabs.md +176 -0
  74. package/dist/docs/toast.md +124 -0
  75. package/dist/docs/variant-selector.md +450 -0
  76. package/dist/graphql/define-subgraph.d.ts +12 -0
  77. package/dist/graphql/define-subgraph.js +15 -0
  78. package/dist/graphql/define-subgraph.js.map +1 -0
  79. package/dist/graphql/gql.d.ts +10 -0
  80. package/dist/graphql/gql.js +16 -0
  81. package/dist/graphql/gql.js.map +1 -0
  82. package/dist/graphql/types.d.ts +88 -0
  83. package/dist/graphql.d.ts +4 -0
  84. package/dist/graphql.js +3 -0
  85. package/dist/index.d.ts +19 -0
  86. package/dist/index.js +5 -0
  87. package/dist/internal/client.d.ts +24 -0
  88. package/dist/internal/client.js +23 -0
  89. package/dist/internal/content.d.ts +2 -0
  90. package/dist/internal/content.js +2 -0
  91. package/dist/internal/server.d.ts +7 -0
  92. package/dist/internal/server.js +6 -0
  93. package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +111 -0
  94. package/dist/matter/access-code-sign-in/access-code-sign-in.js +387 -0
  95. package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -0
  96. package/dist/matter/account-entry-point/account-entry-point.d.ts +64 -0
  97. package/dist/matter/account-entry-point/account-entry-point.js +151 -0
  98. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -0
  99. package/dist/matter/breadcrumb/breadcrumb.d.ts +40 -0
  100. package/dist/matter/breadcrumb/breadcrumb.js +155 -0
  101. package/dist/matter/breadcrumb/breadcrumb.js.map +1 -0
  102. package/dist/matter/buy-button/buy-button.d.ts +95 -0
  103. package/dist/matter/buy-button/buy-button.js +259 -0
  104. package/dist/matter/buy-button/buy-button.js.map +1 -0
  105. package/dist/matter/cart/cart-namespace.d.ts +48 -0
  106. package/dist/matter/cart/cart-namespace.js +50 -0
  107. package/dist/matter/cart/cart-namespace.js.map +1 -0
  108. package/dist/matter/cart/cart.d.ts +312 -0
  109. package/dist/matter/cart/cart.js +1034 -0
  110. package/dist/matter/cart/cart.js.map +1 -0
  111. package/dist/matter/cart-item/cart-item.d.ts +103 -0
  112. package/dist/matter/cart-item/cart-item.js +672 -0
  113. package/dist/matter/cart-item/cart-item.js.map +1 -0
  114. package/dist/matter/cart-item-compositions/cart-item-compositions.d.ts +49 -0
  115. package/dist/matter/cart-item-compositions/cart-item-compositions.js +165 -0
  116. package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -0
  117. package/dist/matter/cart-item-customizations/cart-item-customizations.d.ts +28 -0
  118. package/dist/matter/cart-item-customizations/cart-item-customizations.js +73 -0
  119. package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -0
  120. package/dist/matter/cart-item-discounts/cart-item-discounts.d.ts +33 -0
  121. package/dist/matter/cart-item-discounts/cart-item-discounts.js +70 -0
  122. package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -0
  123. package/dist/matter/cart-item-seller-info/cart-item-seller-info.d.ts +24 -0
  124. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +54 -0
  125. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -0
  126. package/dist/matter/cart-item-variations/cart-item-variations.d.ts +27 -0
  127. package/dist/matter/cart-item-variations/cart-item-variations.js +69 -0
  128. package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -0
  129. package/dist/matter/cart-totalizer/cart-totalizer.d.ts +78 -0
  130. package/dist/matter/cart-totalizer/cart-totalizer.js +220 -0
  131. package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -0
  132. package/dist/matter/client-preferences/client-preferences.d.ts +50 -0
  133. package/dist/matter/client-preferences/client-preferences.js +206 -0
  134. package/dist/matter/client-preferences/client-preferences.js.map +1 -0
  135. package/dist/matter/client-profile/client-profile.d.ts +59 -0
  136. package/dist/matter/client-profile/client-profile.js +185 -0
  137. package/dist/matter/client-profile/client-profile.js.map +1 -0
  138. package/dist/matter/client-profile-form/client-profile-form.d.ts +126 -0
  139. package/dist/matter/client-profile-form/client-profile-form.js +660 -0
  140. package/dist/matter/client-profile-form/client-profile-form.js.map +1 -0
  141. package/dist/matter/delivery-options/delivery-options-accordion.d.ts +30 -0
  142. package/dist/matter/delivery-options/delivery-options-accordion.js +189 -0
  143. package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -0
  144. package/dist/matter/delivery-options/delivery-options-controller.d.ts +49 -0
  145. package/dist/matter/delivery-options/delivery-options-controller.js +203 -0
  146. package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -0
  147. package/dist/matter/delivery-options/delivery-options.d.ts +31 -0
  148. package/dist/matter/delivery-options/delivery-options.js +103 -0
  149. package/dist/matter/delivery-options/delivery-options.js.map +1 -0
  150. package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +9 -0
  151. package/dist/matter/delivery-options/use-delivery-option-selection.js +76 -0
  152. package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -0
  153. package/dist/matter/email-identification/email-identification.d.ts +37 -0
  154. package/dist/matter/email-identification/email-identification.js +111 -0
  155. package/dist/matter/email-identification/email-identification.js.map +1 -0
  156. package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +44 -0
  157. package/dist/matter/free-shipping-progress/free-shipping-progress.js +170 -0
  158. package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -0
  159. package/dist/matter/identity-edit/identity-edit.d.ts +52 -0
  160. package/dist/matter/identity-edit/identity-edit.js +148 -0
  161. package/dist/matter/identity-edit/identity-edit.js.map +1 -0
  162. package/dist/matter/identity-summary/identity-summary.d.ts +128 -0
  163. package/dist/matter/identity-summary/identity-summary.js +344 -0
  164. package/dist/matter/identity-summary/identity-summary.js.map +1 -0
  165. package/dist/matter/pricing/pricing.d.ts +162 -0
  166. package/dist/matter/pricing/pricing.js +793 -0
  167. package/dist/matter/pricing/pricing.js.map +1 -0
  168. package/dist/matter/product-gallery/product-gallery.d.ts +23 -0
  169. package/dist/matter/product-gallery/product-gallery.js +188 -0
  170. package/dist/matter/product-gallery/product-gallery.js.map +1 -0
  171. package/dist/matter/product-information/product-information.d.ts +61 -0
  172. package/dist/matter/product-information/product-information.js +355 -0
  173. package/dist/matter/product-information/product-information.js.map +1 -0
  174. package/dist/matter/product-list/product-list.d.ts +86 -0
  175. package/dist/matter/product-list/product-list.js +342 -0
  176. package/dist/matter/product-list/product-list.js.map +1 -0
  177. package/dist/matter/product-quantity/product-quantity.d.ts +50 -0
  178. package/dist/matter/product-quantity/product-quantity.js +111 -0
  179. package/dist/matter/product-quantity/product-quantity.js.map +1 -0
  180. package/dist/matter/product-shelf/product-shelf.d.ts +125 -0
  181. package/dist/matter/product-shelf/product-shelf.js +376 -0
  182. package/dist/matter/product-shelf/product-shelf.js.map +1 -0
  183. package/dist/matter/region/region.d.ts +211 -0
  184. package/dist/matter/region/region.js +579 -0
  185. package/dist/matter/region/region.js.map +1 -0
  186. package/dist/matter/session/session.d.ts +58 -0
  187. package/dist/matter/session/session.js +112 -0
  188. package/dist/matter/session/session.js.map +1 -0
  189. package/dist/matter/shipping-address/country-descriptors.js +101 -0
  190. package/dist/matter/shipping-address/country-descriptors.js.map +1 -0
  191. package/dist/matter/shipping-address/shipping-address.d.ts +284 -0
  192. package/dist/matter/shipping-address/shipping-address.js +1036 -0
  193. package/dist/matter/shipping-address/shipping-address.js.map +1 -0
  194. package/dist/matter/shipping-simulator/shipping-simulator.d.ts +143 -0
  195. package/dist/matter/shipping-simulator/shipping-simulator.js +644 -0
  196. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -0
  197. package/dist/matter/sign-in-form/sign-in-form.d.ts +79 -0
  198. package/dist/matter/sign-in-form/sign-in-form.js +226 -0
  199. package/dist/matter/sign-in-form/sign-in-form.js.map +1 -0
  200. package/dist/matter/variant-selector/variant-selector.d.ts +183 -0
  201. package/dist/matter/variant-selector/variant-selector.js +840 -0
  202. package/dist/matter/variant-selector/variant-selector.js.map +1 -0
  203. package/dist/message-locales.json +7 -0
  204. package/dist/particles/access-code-field/access-code-field.d.ts +33 -0
  205. package/dist/particles/access-code-field/access-code-field.js +95 -0
  206. package/dist/particles/access-code-field/access-code-field.js.map +1 -0
  207. package/dist/particles/accordion/accordion.d.ts +45 -0
  208. package/dist/particles/accordion/accordion.js +156 -0
  209. package/dist/particles/accordion/accordion.js.map +1 -0
  210. package/dist/particles/address-summary/address-summary.d.ts +50 -0
  211. package/dist/particles/address-summary/address-summary.js +129 -0
  212. package/dist/particles/address-summary/address-summary.js.map +1 -0
  213. package/dist/particles/badge/badge.d.ts +10 -0
  214. package/dist/particles/badge/badge.js +27 -0
  215. package/dist/particles/badge/badge.js.map +1 -0
  216. package/dist/particles/button/button.d.ts +18 -0
  217. package/dist/particles/button/button.js +37 -0
  218. package/dist/particles/button/button.js.map +1 -0
  219. package/dist/particles/carousel/carousel.d.ts +60 -0
  220. package/dist/particles/carousel/carousel.js +335 -0
  221. package/dist/particles/carousel/carousel.js.map +1 -0
  222. package/dist/particles/checkbox/checkbox.d.ts +40 -0
  223. package/dist/particles/checkbox/checkbox.js +82 -0
  224. package/dist/particles/checkbox/checkbox.js.map +1 -0
  225. package/dist/particles/container/container.d.ts +20 -0
  226. package/dist/particles/container/container.js +36 -0
  227. package/dist/particles/container/container.js.map +1 -0
  228. package/dist/particles/dialog/dialog.d.ts +54 -0
  229. package/dist/particles/dialog/dialog.js +192 -0
  230. package/dist/particles/dialog/dialog.js.map +1 -0
  231. package/dist/particles/document-field/document-field.d.ts +61 -0
  232. package/dist/particles/document-field/document-field.js +146 -0
  233. package/dist/particles/document-field/document-field.js.map +1 -0
  234. package/dist/particles/drawer/drawer.d.ts +52 -0
  235. package/dist/particles/drawer/drawer.js +183 -0
  236. package/dist/particles/drawer/drawer.js.map +1 -0
  237. package/dist/particles/email-field/email-field.d.ts +37 -0
  238. package/dist/particles/email-field/email-field.js +106 -0
  239. package/dist/particles/email-field/email-field.js.map +1 -0
  240. package/dist/particles/field/field.d.ts +50 -0
  241. package/dist/particles/field/field.js +133 -0
  242. package/dist/particles/field/field.js.map +1 -0
  243. package/dist/particles/fieldset/fieldset.d.ts +16 -0
  244. package/dist/particles/fieldset/fieldset.js +52 -0
  245. package/dist/particles/fieldset/fieldset.js.map +1 -0
  246. package/dist/particles/footer-copyright/footer-copyright.d.ts +32 -0
  247. package/dist/particles/footer-copyright/footer-copyright.js +50 -0
  248. package/dist/particles/footer-copyright/footer-copyright.js.map +1 -0
  249. package/dist/particles/footer-link-group/footer-link-group.d.ts +66 -0
  250. package/dist/particles/footer-link-group/footer-link-group.js +154 -0
  251. package/dist/particles/footer-link-group/footer-link-group.js.map +1 -0
  252. package/dist/particles/footer-root/footer-root.d.ts +21 -0
  253. package/dist/particles/footer-root/footer-root.js +38 -0
  254. package/dist/particles/footer-root/footer-root.js.map +1 -0
  255. package/dist/particles/footer-social/footer-social.d.ts +79 -0
  256. package/dist/particles/footer-social/footer-social.js +176 -0
  257. package/dist/particles/footer-social/footer-social.js.map +1 -0
  258. package/dist/particles/gallery/gallery.d.ts +181 -0
  259. package/dist/particles/gallery/gallery.js +920 -0
  260. package/dist/particles/gallery/gallery.js.map +1 -0
  261. package/dist/particles/header-root/header-root.d.ts +21 -0
  262. package/dist/particles/header-root/header-root.js +38 -0
  263. package/dist/particles/header-root/header-root.js.map +1 -0
  264. package/dist/particles/icon/icon.d.ts +22 -0
  265. package/dist/particles/icon/icon.js +48 -0
  266. package/dist/particles/icon/icon.js.map +1 -0
  267. package/dist/particles/image/image.d.ts +13 -0
  268. package/dist/particles/image/image.js +59 -0
  269. package/dist/particles/image/image.js.map +1 -0
  270. package/dist/particles/incentives/incentives.d.ts +85 -0
  271. package/dist/particles/incentives/incentives.js +200 -0
  272. package/dist/particles/incentives/incentives.js.map +1 -0
  273. package/dist/particles/input/input.d.ts +9 -0
  274. package/dist/particles/input/input.js +28 -0
  275. package/dist/particles/input/input.js.map +1 -0
  276. package/dist/particles/logo/logo.d.ts +55 -0
  277. package/dist/particles/logo/logo.js +96 -0
  278. package/dist/particles/logo/logo.js.map +1 -0
  279. package/dist/particles/menu/menu.d.ts +103 -0
  280. package/dist/particles/menu/menu.js +409 -0
  281. package/dist/particles/menu/menu.js.map +1 -0
  282. package/dist/particles/menubar/menubar.d.ts +18 -0
  283. package/dist/particles/menubar/menubar.js +42 -0
  284. package/dist/particles/menubar/menubar.js.map +1 -0
  285. package/dist/particles/meter/meter.d.ts +36 -0
  286. package/dist/particles/meter/meter.js +132 -0
  287. package/dist/particles/meter/meter.js.map +1 -0
  288. package/dist/particles/navigation-link/navigation-link.d.ts +43 -0
  289. package/dist/particles/navigation-link/navigation-link.js +82 -0
  290. package/dist/particles/navigation-link/navigation-link.js.map +1 -0
  291. package/dist/particles/navigation-link-list/navigation-link-list.d.ts +59 -0
  292. package/dist/particles/navigation-link-list/navigation-link-list.js +103 -0
  293. package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -0
  294. package/dist/particles/navigation-menu/navigation-menu.d.ts +78 -0
  295. package/dist/particles/navigation-menu/navigation-menu.js +295 -0
  296. package/dist/particles/navigation-menu/navigation-menu.js.map +1 -0
  297. package/dist/particles/number-field/number-field.d.ts +46 -0
  298. package/dist/particles/number-field/number-field.js +169 -0
  299. package/dist/particles/number-field/number-field.js.map +1 -0
  300. package/dist/particles/password-field/password-field.d.ts +31 -0
  301. package/dist/particles/password-field/password-field.js +109 -0
  302. package/dist/particles/password-field/password-field.js.map +1 -0
  303. package/dist/particles/payment-methods/payment-methods.d.ts +72 -0
  304. package/dist/particles/payment-methods/payment-methods.js +151 -0
  305. package/dist/particles/payment-methods/payment-methods.js.map +1 -0
  306. package/dist/particles/phone-field/phone-field.d.ts +67 -0
  307. package/dist/particles/phone-field/phone-field.js +250 -0
  308. package/dist/particles/phone-field/phone-field.js.map +1 -0
  309. package/dist/particles/popover/popover.d.ts +68 -0
  310. package/dist/particles/popover/popover.js +284 -0
  311. package/dist/particles/popover/popover.js.map +1 -0
  312. package/dist/particles/postal-code-field/postal-code-field.d.ts +75 -0
  313. package/dist/particles/postal-code-field/postal-code-field.js +169 -0
  314. package/dist/particles/postal-code-field/postal-code-field.js.map +1 -0
  315. package/dist/particles/promotion/promotion.d.ts +46 -0
  316. package/dist/particles/promotion/promotion.js +78 -0
  317. package/dist/particles/promotion/promotion.js.map +1 -0
  318. package/dist/particles/quantity-selector/quantity-selector.d.ts +30 -0
  319. package/dist/particles/quantity-selector/quantity-selector.js +116 -0
  320. package/dist/particles/quantity-selector/quantity-selector.js.map +1 -0
  321. package/dist/particles/radio/radio.d.ts +36 -0
  322. package/dist/particles/radio/radio.js +76 -0
  323. package/dist/particles/radio/radio.js.map +1 -0
  324. package/dist/particles/scroll-area/scroll-area.d.ts +36 -0
  325. package/dist/particles/scroll-area/scroll-area.js +145 -0
  326. package/dist/particles/scroll-area/scroll-area.js.map +1 -0
  327. package/dist/particles/select/select.d.ts +125 -0
  328. package/dist/particles/select/select.js +478 -0
  329. package/dist/particles/select/select.js.map +1 -0
  330. package/dist/particles/separator/separator.d.ts +12 -0
  331. package/dist/particles/separator/separator.js +33 -0
  332. package/dist/particles/separator/separator.js.map +1 -0
  333. package/dist/particles/shared/input-mask.d.ts +5 -0
  334. package/dist/particles/shared/input-mask.js +58 -0
  335. package/dist/particles/shared/input-mask.js.map +1 -0
  336. package/dist/particles/spinner/spinner.d.ts +13 -0
  337. package/dist/particles/spinner/spinner.js +31 -0
  338. package/dist/particles/spinner/spinner.js.map +1 -0
  339. package/dist/particles/switch/switch.d.ts +27 -0
  340. package/dist/particles/switch/switch.js +59 -0
  341. package/dist/particles/switch/switch.js.map +1 -0
  342. package/dist/particles/tabs/tabs.d.ts +45 -0
  343. package/dist/particles/tabs/tabs.js +164 -0
  344. package/dist/particles/tabs/tabs.js.map +1 -0
  345. package/dist/particles/text/text.d.ts +24 -0
  346. package/dist/particles/text/text.js +40 -0
  347. package/dist/particles/text/text.js.map +1 -0
  348. package/dist/particles/toast/toast.d.ts +83 -0
  349. package/dist/particles/toast/toast.js +194 -0
  350. package/dist/particles/toast/toast.js.map +1 -0
  351. package/dist/particles/toggle/toggle.d.ts +26 -0
  352. package/dist/particles/toggle/toggle.js +61 -0
  353. package/dist/particles/toggle/toggle.js.map +1 -0
  354. package/dist/particles/tooltip/tooltip.d.ts +61 -0
  355. package/dist/particles/tooltip/tooltip.js +240 -0
  356. package/dist/particles/tooltip/tooltip.js.map +1 -0
  357. package/dist/schema.graphql +2953 -0
  358. package/dist/sdk/actions/cart-action-provider.d.ts +19 -0
  359. package/dist/sdk/actions/cart-action-provider.js +23 -0
  360. package/dist/sdk/actions/cart-action-provider.js.map +1 -0
  361. package/dist/sdk/actions/identity-action-provider.d.ts +15 -0
  362. package/dist/sdk/actions/identity-action-provider.js +19 -0
  363. package/dist/sdk/actions/identity-action-provider.js.map +1 -0
  364. package/dist/sdk/actions/index.d.ts +7 -0
  365. package/dist/sdk/actions/index.js +6 -0
  366. package/dist/sdk/actions/inject-actions.d.ts +14 -0
  367. package/dist/sdk/actions/inject-actions.js +36 -0
  368. package/dist/sdk/actions/inject-actions.js.map +1 -0
  369. package/dist/sdk/actions/region-action-provider.d.ts +15 -0
  370. package/dist/sdk/actions/region-action-provider.js +19 -0
  371. package/dist/sdk/actions/region-action-provider.js.map +1 -0
  372. package/dist/sdk/actions/session-action-provider.d.ts +15 -0
  373. package/dist/sdk/actions/session-action-provider.js +19 -0
  374. package/dist/sdk/actions/session-action-provider.js.map +1 -0
  375. package/dist/sdk/actions/shipping-action-provider.d.ts +15 -0
  376. package/dist/sdk/actions/shipping-action-provider.js +19 -0
  377. package/dist/sdk/actions/shipping-action-provider.js.map +1 -0
  378. package/dist/sdk/actions/types.d.ts +21 -0
  379. package/dist/sdk/cache/storefront-cache.js +35 -0
  380. package/dist/sdk/cache/storefront-cache.js.map +1 -0
  381. package/dist/sdk/cart/operations.d.ts +31 -0
  382. package/dist/sdk/cart/operations.js +215 -0
  383. package/dist/sdk/cart/operations.js.map +1 -0
  384. package/dist/sdk/cart/optimistic.d.ts +24 -0
  385. package/dist/sdk/cart/optimistic.js +164 -0
  386. package/dist/sdk/cart/optimistic.js.map +1 -0
  387. package/dist/sdk/cart/use-cart-actions.d.ts +56 -0
  388. package/dist/sdk/cart/use-cart-actions.js +348 -0
  389. package/dist/sdk/cart/use-cart-actions.js.map +1 -0
  390. package/dist/sdk/cart/use-cart-validate-on-open.js +50 -0
  391. package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -0
  392. package/dist/sdk/cart/write-gate.js +54 -0
  393. package/dist/sdk/cart/write-gate.js.map +1 -0
  394. package/dist/sdk/client/assert-api-url.js +20 -0
  395. package/dist/sdk/client/assert-api-url.js.map +1 -0
  396. package/dist/sdk/client/create-client.d.ts +23 -0
  397. package/dist/sdk/client/create-client.js +46 -0
  398. package/dist/sdk/client/create-client.js.map +1 -0
  399. package/dist/sdk/client/fetch-page-data.d.ts +39 -0
  400. package/dist/sdk/client/fetch-page-data.js +33 -0
  401. package/dist/sdk/client/fetch-page-data.js.map +1 -0
  402. package/dist/sdk/client/register-preload-query.d.ts +24 -0
  403. package/dist/sdk/client/register-preload-query.js +33 -0
  404. package/dist/sdk/client/register-preload-query.js.map +1 -0
  405. package/dist/sdk/content/create-content-runtime.d.ts +68 -0
  406. package/dist/sdk/content/create-content-runtime.js +503 -0
  407. package/dist/sdk/content/create-content-runtime.js.map +1 -0
  408. package/dist/sdk/context/headers.d.ts +15 -0
  409. package/dist/sdk/context/headers.js +21 -0
  410. package/dist/sdk/context/headers.js.map +1 -0
  411. package/dist/sdk/context/storefront-context.d.ts +11 -0
  412. package/dist/sdk/context/storefront-context.js +29 -0
  413. package/dist/sdk/context/storefront-context.js.map +1 -0
  414. package/dist/sdk/data/data-override-context.d.ts +12 -0
  415. package/dist/sdk/data/data-override-context.js +19 -0
  416. package/dist/sdk/data/data-override-context.js.map +1 -0
  417. package/dist/sdk/data/entity-subscriber.js +28 -0
  418. package/dist/sdk/data/entity-subscriber.js.map +1 -0
  419. package/dist/sdk/data/hot-data-provider.d.ts +19 -0
  420. package/dist/sdk/data/hot-data-provider.js +33 -0
  421. package/dist/sdk/data/hot-data-provider.js.map +1 -0
  422. package/dist/sdk/data/index.d.ts +8 -0
  423. package/dist/sdk/data/index.js +8 -0
  424. package/dist/sdk/data/list-item-ref-context.d.ts +20 -0
  425. package/dist/sdk/data/list-item-ref-context.js +11 -0
  426. package/dist/sdk/data/list-item-ref-context.js.map +1 -0
  427. package/dist/sdk/data/multiple-reactive-data-provider.d.ts +32 -0
  428. package/dist/sdk/data/multiple-reactive-data-provider.js +20 -0
  429. package/dist/sdk/data/multiple-reactive-data-provider.js.map +1 -0
  430. package/dist/sdk/data/page-reactive-data-root.d.ts +53 -0
  431. package/dist/sdk/data/page-reactive-data-root.js +153 -0
  432. package/dist/sdk/data/page-reactive-data-root.js.map +1 -0
  433. package/dist/sdk/data/reactive-data-provider.d.ts +25 -0
  434. package/dist/sdk/data/reactive-data-provider.js +24 -0
  435. package/dist/sdk/data/reactive-data-provider.js.map +1 -0
  436. package/dist/sdk/data/reactive-list-item-data-provider.d.ts +26 -0
  437. package/dist/sdk/data/reactive-list-item-data-provider.js +42 -0
  438. package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -0
  439. package/dist/sdk/data/use-reactive-entity.js +40 -0
  440. package/dist/sdk/data/use-reactive-entity.js.map +1 -0
  441. package/dist/sdk/format/client.d.ts +12 -0
  442. package/dist/sdk/format/client.js +20 -0
  443. package/dist/sdk/format/client.js.map +1 -0
  444. package/dist/sdk/format/formatters.d.ts +32 -0
  445. package/dist/sdk/format/formatters.js +45 -0
  446. package/dist/sdk/format/formatters.js.map +1 -0
  447. package/dist/sdk/generated/fragment-types.js +23 -0
  448. package/dist/sdk/generated/fragment-types.js.map +1 -0
  449. package/dist/sdk/generated/gql.js +51 -0
  450. package/dist/sdk/generated/gql.js.map +1 -0
  451. package/dist/sdk/generated/graphql.d.ts +622 -0
  452. package/dist/sdk/generated/graphql.js +11917 -0
  453. package/dist/sdk/generated/graphql.js.map +1 -0
  454. package/dist/sdk/graphql-tag.d.ts +10 -0
  455. package/dist/sdk/graphql-tag.js +21 -0
  456. package/dist/sdk/graphql-tag.js.map +1 -0
  457. package/dist/sdk/i18n/client.d.ts +4 -0
  458. package/dist/sdk/i18n/client.js +4 -0
  459. package/dist/sdk/i18n/locales.d.ts +8 -0
  460. package/dist/sdk/i18n/locales.js +57 -0
  461. package/dist/sdk/i18n/locales.js.map +1 -0
  462. package/dist/sdk/i18n/messages/en-US.js +24 -0
  463. package/dist/sdk/i18n/messages/en-US.js.map +1 -0
  464. package/dist/sdk/i18n/messages/en-US.json +19 -0
  465. package/dist/sdk/i18n/messages/en-US.json.d.ts +23 -0
  466. package/dist/sdk/i18n/messages/es-ES.js +24 -0
  467. package/dist/sdk/i18n/messages/es-ES.js.map +1 -0
  468. package/dist/sdk/i18n/messages/es-ES.json +19 -0
  469. package/dist/sdk/i18n/messages/pt-BR.js +24 -0
  470. package/dist/sdk/i18n/messages/pt-BR.js.map +1 -0
  471. package/dist/sdk/i18n/messages/pt-BR.json +19 -0
  472. package/dist/sdk/i18n/provider.d.ts +1 -0
  473. package/dist/sdk/i18n/provider.js +30 -0
  474. package/dist/sdk/i18n/provider.js.map +1 -0
  475. package/dist/sdk/i18n/server.d.ts +28 -0
  476. package/dist/sdk/i18n/server.js +59 -0
  477. package/dist/sdk/i18n/server.js.map +1 -0
  478. package/dist/sdk/identity/operations.d.ts +34 -0
  479. package/dist/sdk/identity/operations.js +78 -0
  480. package/dist/sdk/identity/operations.js.map +1 -0
  481. package/dist/sdk/identity/use-identity-actions.d.ts +62 -0
  482. package/dist/sdk/identity/use-identity-actions.js +180 -0
  483. package/dist/sdk/identity/use-identity-actions.js.map +1 -0
  484. package/dist/sdk/provider/index.d.ts +2 -0
  485. package/dist/sdk/provider/index.js +2 -0
  486. package/dist/sdk/provider/storefront-provider.d.ts +32 -0
  487. package/dist/sdk/provider/storefront-provider.js +111 -0
  488. package/dist/sdk/provider/storefront-provider.js.map +1 -0
  489. package/dist/sdk/region/operations.d.ts +6 -0
  490. package/dist/sdk/region/region-operations.d.ts +30 -0
  491. package/dist/sdk/region/region-operations.js +23 -0
  492. package/dist/sdk/region/region-operations.js.map +1 -0
  493. package/dist/sdk/region/use-region-actions.d.ts +23 -0
  494. package/dist/sdk/region/use-region-actions.js +66 -0
  495. package/dist/sdk/region/use-region-actions.js.map +1 -0
  496. package/dist/sdk/seller.js +11 -0
  497. package/dist/sdk/seller.js.map +1 -0
  498. package/dist/sdk/session/auth-operations.d.ts +47 -0
  499. package/dist/sdk/session/auth-operations.js +79 -0
  500. package/dist/sdk/session/auth-operations.js.map +1 -0
  501. package/dist/sdk/session/operations.d.ts +6 -0
  502. package/dist/sdk/session/use-session-actions.d.ts +27 -0
  503. package/dist/sdk/session/use-session-actions.js +126 -0
  504. package/dist/sdk/session/use-session-actions.js.map +1 -0
  505. package/dist/sdk/shipping/cart-operations.d.ts +3 -0
  506. package/dist/sdk/shipping/cart-operations.js +33 -0
  507. package/dist/sdk/shipping/cart-operations.js.map +1 -0
  508. package/dist/sdk/shipping/operations.d.ts +3 -0
  509. package/dist/sdk/shipping/operations.js +33 -0
  510. package/dist/sdk/shipping/operations.js.map +1 -0
  511. package/dist/sdk/shipping/option-select-operations.d.ts +24 -0
  512. package/dist/sdk/shipping/option-select-operations.js +45 -0
  513. package/dist/sdk/shipping/option-select-operations.js.map +1 -0
  514. package/dist/sdk/shipping/request-timeout.js +41 -0
  515. package/dist/sdk/shipping/request-timeout.js.map +1 -0
  516. package/dist/sdk/shipping/shipping-operations.d.ts +38 -0
  517. package/dist/sdk/shipping/shipping-operations.js +77 -0
  518. package/dist/sdk/shipping/shipping-operations.js.map +1 -0
  519. package/dist/sdk/shipping/use-cart-shipping-simulation.d.ts +7 -0
  520. package/dist/sdk/shipping/use-cart-shipping-simulation.js +72 -0
  521. package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -0
  522. package/dist/sdk/shipping/use-shipping-actions.d.ts +27 -0
  523. package/dist/sdk/shipping/use-shipping-actions.js +113 -0
  524. package/dist/sdk/shipping/use-shipping-actions.js.map +1 -0
  525. package/dist/sdk/shipping/use-shipping-simulation.d.ts +7 -0
  526. package/dist/sdk/shipping/use-shipping-simulation.js +72 -0
  527. package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -0
  528. package/dist/sdk/state/cart.d.ts +42 -0
  529. package/dist/sdk/state/cart.js +64 -0
  530. package/dist/sdk/state/cart.js.map +1 -0
  531. package/dist/sdk/state/index.js +3 -0
  532. package/dist/sdk/state/variant-selector.d.ts +17 -0
  533. package/dist/sdk/state/variant-selector.js +14 -0
  534. package/dist/sdk/state/variant-selector.js.map +1 -0
  535. package/dist/utils/safe-href.js +63 -0
  536. package/dist/utils/safe-href.js.map +1 -0
  537. package/package.json +84 -0
  538. package/src/styles/tailwind.css +32 -0
@@ -0,0 +1,133 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Field } from "@base-ui/react/field";
6
+ //#region src/particles/field/field.tsx
7
+ const FieldRootDefinition = defineComponent({
8
+ name: "FieldRoot",
9
+ importPath: "@vtex/faststore/components",
10
+ component: FieldRoot,
11
+ editor: {
12
+ label: "Field Root",
13
+ category: "layout"
14
+ },
15
+ schema: { disabled: {
16
+ type: "boolean",
17
+ default: false,
18
+ label: "Disabled"
19
+ } },
20
+ guideline: "Form field container that connects a label, input, and validation messages via ARIA. Use Field.Control as the input element, or place a compatible Base UI input (Input, Checkbox, Select) as a direct child. Set invalid=true to trigger Field.Error display."
21
+ });
22
+ const FieldLabelDefinition = defineComponent({
23
+ name: "FieldLabel",
24
+ importPath: "@vtex/faststore/components",
25
+ component: FieldLabel,
26
+ editor: {
27
+ label: "Field Label",
28
+ category: "layout"
29
+ },
30
+ schema: {},
31
+ guideline: "Accessible label inside Field.Root. Automatically associated with Field.Control's input via ARIA. Place before Field.Control in the DOM."
32
+ });
33
+ const FieldControlDefinition = defineComponent({
34
+ name: "FieldControl",
35
+ importPath: "@vtex/faststore/components",
36
+ component: FieldControl,
37
+ editor: {
38
+ label: "Field Control",
39
+ category: "layout"
40
+ },
41
+ schema: {},
42
+ guideline: "Renders a native `<input>` element directly. It IS the input — do not place any child inside it. Pass input attributes (type, placeholder, required, etc.) directly as props. It is automatically linked to Field.Label and Field.Error via ARIA."
43
+ });
44
+ const FieldDescriptionDefinition = defineComponent({
45
+ name: "FieldDescription",
46
+ importPath: "@vtex/faststore/components",
47
+ component: FieldDescription,
48
+ editor: {
49
+ label: "Field Description",
50
+ category: "layout"
51
+ },
52
+ schema: {},
53
+ guideline: "Helper text inside Field.Root. Automatically linked to the control via aria-describedby. Always visible regardless of validation state."
54
+ });
55
+ const FieldErrorDefinition = defineComponent({
56
+ name: "FieldError",
57
+ importPath: "@vtex/faststore/components",
58
+ component: FieldError,
59
+ editor: {
60
+ label: "Field Error",
61
+ category: "layout"
62
+ },
63
+ schema: {},
64
+ guideline: "Validation error message inside Field.Root. Shown when the field is in an invalid state. Linked to the control via aria-describedby."
65
+ });
66
+ const FieldValidityDefinition = defineComponent({
67
+ name: "FieldValidity",
68
+ importPath: "@vtex/faststore/components",
69
+ component: FieldValidity,
70
+ editor: {
71
+ label: "Field Validity",
72
+ category: "layout"
73
+ },
74
+ schema: {},
75
+ guideline: "Validation feedback slot using a render prop for custom messages derived from the field's validity state. Use for dynamic messages when Field.Error text is not fixed."
76
+ });
77
+ function FieldRoot({ disabled, invalid, name, className, children, ...props }) {
78
+ return /* @__PURE__ */ jsx(Field.Root, {
79
+ ...props,
80
+ disabled,
81
+ invalid,
82
+ name,
83
+ className,
84
+ "data-fs-field-root": "",
85
+ children
86
+ });
87
+ }
88
+ function FieldLabel({ className, children, ...props }) {
89
+ return /* @__PURE__ */ jsx(Field.Label, {
90
+ ...props,
91
+ className,
92
+ "data-fs-field-label": "",
93
+ children
94
+ });
95
+ }
96
+ function FieldControl({ className, ...props }) {
97
+ return /* @__PURE__ */ jsx(Field.Control, {
98
+ ...props,
99
+ className,
100
+ "data-fs-field-control": ""
101
+ });
102
+ }
103
+ function FieldDescription({ className, children, ...props }) {
104
+ return /* @__PURE__ */ jsx(Field.Description, {
105
+ ...props,
106
+ className,
107
+ "data-fs-field-description": "",
108
+ children
109
+ });
110
+ }
111
+ function FieldError({ className, children, ...props }) {
112
+ return /* @__PURE__ */ jsx(Field.Error, {
113
+ ...props,
114
+ className,
115
+ "data-fs-field-error": "",
116
+ children
117
+ });
118
+ }
119
+ function FieldValidity({ children }) {
120
+ return /* @__PURE__ */ jsx(Field.Validity, { children });
121
+ }
122
+ const Field$1 = {
123
+ Root: FieldRoot,
124
+ Label: FieldLabel,
125
+ Control: FieldControl,
126
+ Description: FieldDescription,
127
+ Error: FieldError,
128
+ Validity: FieldValidity
129
+ };
130
+ //#endregion
131
+ export { Field$1 as Field, FieldControl, FieldControlDefinition, FieldDescription, FieldDescriptionDefinition, FieldError, FieldErrorDefinition, FieldLabel, FieldLabelDefinition, FieldRoot, FieldRootDefinition, FieldValidity, FieldValidityDefinition };
132
+
133
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","names":["BaseField","Field"],"sources":["../../../src/particles/field/field.tsx"],"sourcesContent":["'use client';\nimport type { FieldValidityState } from '@base-ui/react/field';\nimport { Field as BaseField } from '@base-ui/react/field';\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, ReactNode } from 'react';\n\nexport type FieldRootProps = ComponentPropsWithRef<'div'> & {\n disabled?: boolean;\n invalid?: boolean;\n name?: string;\n};\n\nexport type FieldLabelProps = ComponentPropsWithRef<'label'>;\n\nexport type FieldControlProps = Omit<ComponentPropsWithRef<'input'>, 'children'>;\n\nexport type FieldDescriptionProps = ComponentPropsWithRef<'p'>;\n\nexport type FieldErrorProps = ComponentPropsWithRef<'div'> & {\n /**\n * Controls when the error is shown. `true` always shows it (for externally/caller-driven\n * validity, e.g. presence-only checks with no native constraint validation); a\n * `ValidityState` key shows it only when that specific native validity flag is set. Omit to\n * fall back to Base UI's default: shown whenever the field's tracked validity is invalid.\n * Note `match={false}` does not suppress the error — it falls back to that default\n * invalid-driven behavior; callers needing a boolean should use `invalid ? true : 'customError'`.\n */\n match?: boolean | keyof ValidityState;\n};\n\nexport type FieldValidityProps = {\n children: (state: FieldValidityState) => ReactNode;\n};\n\nexport const FieldRootDefinition = defineComponent<FieldRootProps>({\n name: 'FieldRoot',\n importPath: '@vtex/faststore/components',\n component: FieldRoot,\n editor: { label: 'Field Root', category: 'layout' },\n schema: {\n disabled: { type: 'boolean', default: false, label: 'Disabled' },\n },\n guideline:\n 'Form field container that connects a label, input, and validation messages via ARIA. Use Field.Control as the input element, or place a compatible Base UI input (Input, Checkbox, Select) as a direct child. Set invalid=true to trigger Field.Error display.',\n});\n\nexport const FieldLabelDefinition = defineComponent<FieldLabelProps>({\n name: 'FieldLabel',\n importPath: '@vtex/faststore/components',\n component: FieldLabel,\n editor: { label: 'Field Label', category: 'layout' },\n schema: {},\n guideline:\n \"Accessible label inside Field.Root. Automatically associated with Field.Control's input via ARIA. Place before Field.Control in the DOM.\",\n});\n\nexport const FieldControlDefinition = defineComponent<FieldControlProps>({\n name: 'FieldControl',\n importPath: '@vtex/faststore/components',\n component: FieldControl,\n editor: { label: 'Field Control', category: 'layout' },\n schema: {},\n guideline:\n 'Renders a native `<input>` element directly. It IS the input — do not place any child inside it. Pass input attributes (type, placeholder, required, etc.) directly as props. It is automatically linked to Field.Label and Field.Error via ARIA.',\n});\n\nexport const FieldDescriptionDefinition = defineComponent<FieldDescriptionProps>({\n name: 'FieldDescription',\n importPath: '@vtex/faststore/components',\n component: FieldDescription,\n editor: { label: 'Field Description', category: 'layout' },\n schema: {},\n guideline:\n 'Helper text inside Field.Root. Automatically linked to the control via aria-describedby. Always visible regardless of validation state.',\n});\n\nexport const FieldErrorDefinition = defineComponent<FieldErrorProps>({\n name: 'FieldError',\n importPath: '@vtex/faststore/components',\n component: FieldError,\n editor: { label: 'Field Error', category: 'layout' },\n schema: {},\n guideline:\n 'Validation error message inside Field.Root. Shown when the field is in an invalid state. Linked to the control via aria-describedby.',\n});\n\nexport const FieldValidityDefinition = defineComponent<FieldValidityProps>({\n name: 'FieldValidity',\n importPath: '@vtex/faststore/components',\n component: FieldValidity,\n editor: { label: 'Field Validity', category: 'layout' },\n schema: {},\n guideline:\n \"Validation feedback slot using a render prop for custom messages derived from the field's validity state. Use for dynamic messages when Field.Error text is not fixed.\",\n});\n\nexport function FieldRoot({ disabled, invalid, name, className, children, ...props }: FieldRootProps) {\n return (\n <BaseField.Root\n {...props}\n disabled={disabled}\n invalid={invalid}\n name={name}\n className={className}\n data-fs-field-root=\"\"\n >\n {children}\n </BaseField.Root>\n );\n}\n\nexport function FieldLabel({ className, children, ...props }: FieldLabelProps) {\n return (\n <BaseField.Label {...props} className={className} data-fs-field-label=\"\">\n {children}\n </BaseField.Label>\n );\n}\n\nexport function FieldControl({ className, ...props }: FieldControlProps) {\n return <BaseField.Control {...props} className={className} data-fs-field-control=\"\" />;\n}\n\nexport function FieldDescription({ className, children, ...props }: FieldDescriptionProps) {\n return (\n <BaseField.Description {...props} className={className} data-fs-field-description=\"\">\n {children}\n </BaseField.Description>\n );\n}\n\nexport function FieldError({ className, children, ...props }: FieldErrorProps) {\n return (\n <BaseField.Error {...props} className={className} data-fs-field-error=\"\">\n {children}\n </BaseField.Error>\n );\n}\n\nexport function FieldValidity({ children }: FieldValidityProps) {\n return <BaseField.Validity>{children}</BaseField.Validity>;\n}\n\nexport const Field = {\n Root: FieldRoot,\n Label: FieldLabel,\n Control: FieldControl,\n Description: FieldDescription,\n Error: FieldError,\n Validity: FieldValidity,\n};\n"],"mappings":";;;;;;AAkCA,MAAa,sBAAsB,gBAAgC;CACjE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAc,UAAU;CAAS;CAClD,QAAQ,EACN,UAAU;EAAE,MAAM;EAAW,SAAS;EAAO,OAAO;CAAW,EACjE;CACA,WACE;AACJ,CAAC;AAED,MAAa,uBAAuB,gBAAiC;CACnE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAe,UAAU;CAAS;CACnD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,MAAa,yBAAyB,gBAAmC;CACvE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAiB,UAAU;CAAS;CACrD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,MAAa,6BAA6B,gBAAuC;CAC/E,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAqB,UAAU;CAAS;CACzD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,MAAa,uBAAuB,gBAAiC;CACnE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAe,UAAU;CAAS;CACnD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,MAAa,0BAA0B,gBAAoC;CACzE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAkB,UAAU;CAAS;CACtD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,SAAgB,UAAU,EAAE,UAAU,SAAS,MAAM,WAAW,UAAU,GAAG,SAAyB;CACpG,OACE,oBAACA,MAAU,MAAX;EACE,GAAI;EACM;EACD;EACH;EACK;EACX,sBAAmB;EAElB;CACa,CAAA;AAEpB;AAEA,SAAgB,WAAW,EAAE,WAAW,UAAU,GAAG,SAA0B;CAC7E,OACE,oBAACA,MAAU,OAAX;EAAiB,GAAI;EAAkB;EAAW,uBAAoB;EACnE;CACc,CAAA;AAErB;AAEA,SAAgB,aAAa,EAAE,WAAW,GAAG,SAA4B;CACvE,OAAO,oBAACA,MAAU,SAAX;EAAmB,GAAI;EAAkB;EAAW,yBAAsB;CAAI,CAAA;AACvF;AAEA,SAAgB,iBAAiB,EAAE,WAAW,UAAU,GAAG,SAAgC;CACzF,OACE,oBAACA,MAAU,aAAX;EAAuB,GAAI;EAAkB;EAAW,6BAA0B;EAC/E;CACoB,CAAA;AAE3B;AAEA,SAAgB,WAAW,EAAE,WAAW,UAAU,GAAG,SAA0B;CAC7E,OACE,oBAACA,MAAU,OAAX;EAAiB,GAAI;EAAkB;EAAW,uBAAoB;EACnE;CACc,CAAA;AAErB;AAEA,SAAgB,cAAc,EAAE,YAAgC;CAC9D,OAAO,oBAACA,MAAU,UAAX,EAAqB,SAA6B,CAAA;AAC3D;AAEA,MAAaC,UAAQ;CACnB,MAAM;CACN,OAAO;CACP,SAAS;CACT,aAAa;CACb,OAAO;CACP,UAAU;AACZ"}
@@ -0,0 +1,16 @@
1
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
2
+ import "../../core/dist/index.js";
3
+ import { ComponentPropsWithRef } from "react";
4
+ //#region src/particles/fieldset/fieldset.d.ts
5
+ export type FieldsetRootProps = ComponentPropsWithRef<'fieldset'>;
6
+ export type FieldsetLegendProps = ComponentPropsWithRef<'div'>;
7
+ export declare const FieldsetRootDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>>;
8
+ export declare const FieldsetLegendDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
9
+ export declare function FieldsetRoot({ className, children, ...props }: FieldsetRootProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function FieldsetLegend({ className, children, ...props }: FieldsetLegendProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare const Fieldset: {
12
+ Root: typeof FieldsetRoot;
13
+ Legend: typeof FieldsetLegend;
14
+ };
15
+ //#endregion
16
+ //# sourceMappingURL=fieldset.d.ts.map
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Fieldset } from "@base-ui/react/fieldset";
6
+ //#region src/particles/fieldset/fieldset.tsx
7
+ const FieldsetRootDefinition = defineComponent({
8
+ name: "FieldsetRoot",
9
+ importPath: "@vtex/faststore/components",
10
+ component: FieldsetRoot,
11
+ editor: {
12
+ label: "Fieldset Root",
13
+ category: "layout"
14
+ },
15
+ schema: {},
16
+ guideline: "Root of an accessible fieldset for grouping related form controls. Compose as: FieldsetRoot > FieldsetLegend + [form controls]. Set disabled on the root to disable all contained inputs."
17
+ });
18
+ const FieldsetLegendDefinition = defineComponent({
19
+ name: "FieldsetLegend",
20
+ importPath: "@vtex/faststore/components",
21
+ component: FieldsetLegend,
22
+ editor: {
23
+ label: "Fieldset Legend",
24
+ category: "layout"
25
+ },
26
+ schema: {},
27
+ guideline: "Visible title for a Fieldset.Root. Renders as a styled <legend> element."
28
+ });
29
+ function FieldsetRoot({ className, children, ...props }) {
30
+ return /* @__PURE__ */ jsx(Fieldset.Root, {
31
+ ...props,
32
+ className,
33
+ "data-fs-fieldset-root": "",
34
+ children
35
+ });
36
+ }
37
+ function FieldsetLegend({ className, children, ...props }) {
38
+ return /* @__PURE__ */ jsx(Fieldset.Legend, {
39
+ ...props,
40
+ className,
41
+ "data-fs-fieldset-legend": "",
42
+ children
43
+ });
44
+ }
45
+ const Fieldset$1 = {
46
+ Root: FieldsetRoot,
47
+ Legend: FieldsetLegend
48
+ };
49
+ //#endregion
50
+ export { Fieldset$1 as Fieldset, FieldsetLegend, FieldsetLegendDefinition, FieldsetRoot, FieldsetRootDefinition };
51
+
52
+ //# sourceMappingURL=fieldset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldset.js","names":["BaseFieldset","Fieldset"],"sources":["../../../src/particles/fieldset/fieldset.tsx"],"sourcesContent":["'use client';\nimport { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\n\nexport type FieldsetRootProps = ComponentPropsWithRef<'fieldset'>;\n\nexport type FieldsetLegendProps = ComponentPropsWithRef<'div'>;\n\nexport const FieldsetRootDefinition = defineComponent<FieldsetRootProps>({\n name: 'FieldsetRoot',\n importPath: '@vtex/faststore/components',\n component: FieldsetRoot,\n editor: { label: 'Fieldset Root', category: 'layout' },\n schema: {},\n guideline:\n 'Root of an accessible fieldset for grouping related form controls. Compose as: FieldsetRoot > FieldsetLegend + [form controls]. Set disabled on the root to disable all contained inputs.',\n});\n\nexport const FieldsetLegendDefinition = defineComponent<FieldsetLegendProps>({\n name: 'FieldsetLegend',\n importPath: '@vtex/faststore/components',\n component: FieldsetLegend,\n editor: { label: 'Fieldset Legend', category: 'layout' },\n schema: {},\n guideline: 'Visible title for a Fieldset.Root. Renders as a styled <legend> element.',\n});\n\nexport function FieldsetRoot({ className, children, ...props }: FieldsetRootProps) {\n return (\n <BaseFieldset.Root {...props} className={className} data-fs-fieldset-root=\"\">\n {children}\n </BaseFieldset.Root>\n );\n}\n\nexport function FieldsetLegend({ className, children, ...props }: FieldsetLegendProps) {\n return (\n <BaseFieldset.Legend {...props} className={className} data-fs-fieldset-legend=\"\">\n {children}\n </BaseFieldset.Legend>\n );\n}\n\nexport const Fieldset = {\n Root: FieldsetRoot,\n Legend: FieldsetLegend,\n};\n"],"mappings":";;;;;;AASA,MAAa,yBAAyB,gBAAmC;CACvE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAiB,UAAU;CAAS;CACrD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,MAAa,2BAA2B,gBAAqC;CAC3E,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAmB,UAAU;CAAS;CACvD,QAAQ,CAAC;CACT,WAAW;AACb,CAAC;AAED,SAAgB,aAAa,EAAE,WAAW,UAAU,GAAG,SAA4B;CACjF,OACE,oBAACA,SAAa,MAAd;EAAmB,GAAI;EAAkB;EAAW,yBAAsB;EACvE;CACgB,CAAA;AAEvB;AAEA,SAAgB,eAAe,EAAE,WAAW,UAAU,GAAG,SAA8B;CACrF,OACE,oBAACA,SAAa,QAAd;EAAqB,GAAI;EAAkB;EAAW,2BAAwB;EAC3E;CACkB,CAAA;AAEzB;AAEA,MAAaC,aAAW;CACtB,MAAM;CACN,QAAQ;AACV"}
@@ -0,0 +1,32 @@
1
+ import { ContentValue } from "../../core/dist/define-content-type.js";
2
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { ComponentPropsWithRef } from "react";
5
+ //#region src/particles/footer-copyright/footer-copyright.d.ts
6
+ export declare const FooterCopyrightContent: {
7
+ readonly id: "footer-copyright";
8
+ readonly title: "Footer Copyright";
9
+ readonly description: "Legal notice rendered at the bottom of the store.";
10
+ readonly schema: {
11
+ readonly type: "object";
12
+ readonly additionalProperties: false;
13
+ readonly required: readonly ["text"];
14
+ readonly properties: {
15
+ readonly text: {
16
+ readonly type: "string";
17
+ readonly minLength: 1;
18
+ readonly title: "Copyright text";
19
+ };
20
+ };
21
+ };
22
+ };
23
+ export type FooterCopyrightProps = ComponentPropsWithRef<'p'> & {
24
+ /** Authored fallback, rendered when no CMS entry supplies the notice. */
25
+ text?: string;
26
+ /** Injected by the compiler, sliced from the page's or layout's composite content entry. */
27
+ $content?: ContentValue<typeof FooterCopyrightContent>;
28
+ };
29
+ export declare const FooterCopyrightDefinition: ComponentDefinition<FooterCopyrightProps>;
30
+ export declare function FooterCopyright({ text, $content, className, ...props }: FooterCopyrightProps): import("react/jsx-runtime").JSX.Element | null;
31
+ //#endregion
32
+ //# sourceMappingURL=footer-copyright.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { defineComponent } from "../../core/dist/define-component.js";
2
+ import { defineContentType } from "../../core/dist/define-content-type.js";
3
+ import "../../core/dist/index.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/particles/footer-copyright/footer-copyright.tsx
6
+ const FooterCopyrightContent = defineContentType({
7
+ id: "footer-copyright",
8
+ title: "Footer Copyright",
9
+ description: "Legal notice rendered at the bottom of the store.",
10
+ schema: {
11
+ type: "object",
12
+ additionalProperties: false,
13
+ required: ["text"],
14
+ properties: { text: {
15
+ type: "string",
16
+ minLength: 1,
17
+ title: "Copyright text"
18
+ } }
19
+ }
20
+ });
21
+ const FooterCopyrightDefinition = defineComponent({
22
+ name: "FooterCopyright",
23
+ importPath: "@vtex/faststore/components",
24
+ component: FooterCopyright,
25
+ content: FooterCopyrightContent,
26
+ editor: {
27
+ label: "Footer Copyright",
28
+ category: "content"
29
+ },
30
+ schema: { text: {
31
+ type: "string",
32
+ label: "Copyright text"
33
+ } },
34
+ 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."
35
+ });
36
+ function FooterCopyright({ text, $content, className, ...props }) {
37
+ const notice = $content?.text ?? text;
38
+ if (!notice?.trim()) return null;
39
+ return /* @__PURE__ */ jsx("p", {
40
+ ...props,
41
+ className,
42
+ "data-fs-text": "",
43
+ "data-fs-footer-copyright": "",
44
+ children: notice
45
+ });
46
+ }
47
+ //#endregion
48
+ export { FooterCopyright, FooterCopyrightContent, FooterCopyrightDefinition };
49
+
50
+ //# sourceMappingURL=footer-copyright.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-copyright.js","names":[],"sources":["../../../src/particles/footer-copyright/footer-copyright.tsx"],"sourcesContent":["import { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\n\n// ---------------------------------------------------------------------------\n// Content model\n// ---------------------------------------------------------------------------\n\nexport const FooterCopyrightContent = defineContentType({\n id: 'footer-copyright',\n title: 'Footer Copyright',\n description: 'Legal notice rendered at the bottom of the store.',\n schema: {\n type: 'object',\n additionalProperties: false,\n required: ['text'],\n properties: {\n text: { type: 'string', minLength: 1, title: 'Copyright text' },\n },\n },\n});\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type FooterCopyrightProps = ComponentPropsWithRef<'p'> & {\n /** Authored fallback, rendered when no CMS entry supplies the notice. */\n text?: string;\n /** Injected by the compiler, sliced from the page's or layout's composite content entry. */\n $content?: ContentValue<typeof FooterCopyrightContent>;\n};\n\n// ---------------------------------------------------------------------------\n// Definition\n// ---------------------------------------------------------------------------\n\nexport const FooterCopyrightDefinition = defineComponent({\n name: 'FooterCopyright',\n importPath: '@vtex/faststore/components',\n component: FooterCopyright,\n content: FooterCopyrightContent,\n editor: { label: 'Footer Copyright', category: 'content' },\n schema: {\n text: { type: 'string', label: 'Copyright text' },\n },\n guideline:\n \"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.\",\n});\n\n// ---------------------------------------------------------------------------\n// Implementation\n// ---------------------------------------------------------------------------\n\nexport function FooterCopyright({ text, $content, className, ...props }: FooterCopyrightProps) {\n const notice = $content?.text ?? text;\n // `minLength` is enforced by neither the runtime slice nor the preflight, so a blank entry value\n // reaches the component and counts as unconfigured. Trim to decide, never to render.\n if (!notice?.trim()) return null;\n\n return (\n <p {...props} className={className} data-fs-text=\"\" data-fs-footer-copyright=\"\">\n {notice}\n </p>\n );\n}\n"],"mappings":";;;;;AAOA,MAAa,yBAAyB,kBAAkB;CACtD,IAAI;CACJ,OAAO;CACP,aAAa;CACb,QAAQ;EACN,MAAM;EACN,sBAAsB;EACtB,UAAU,CAAC,MAAM;EACjB,YAAY,EACV,MAAM;GAAE,MAAM;GAAU,WAAW;GAAG,OAAO;EAAiB,EAChE;CACF;AACF,CAAC;AAiBD,MAAa,4BAA4B,gBAAgB;CACvD,MAAM;CACN,YAAY;CACZ,WAAW;CACX,SAAS;CACT,QAAQ;EAAE,OAAO;EAAoB,UAAU;CAAU;CACzD,QAAQ,EACN,MAAM;EAAE,MAAM;EAAU,OAAO;CAAiB,EAClD;CACA,WACE;AACJ,CAAC;AAMD,SAAgB,gBAAgB,EAAE,MAAM,UAAU,WAAW,GAAG,SAA+B;CAC7F,MAAM,SAAS,UAAU,QAAQ;CAGjC,IAAI,CAAC,QAAQ,KAAK,GAAG,OAAO;CAE5B,OACE,oBAAC,KAAD;EAAG,GAAI;EAAkB;EAAW,gBAAa;EAAG,4BAAyB;EAC1E,UAAA;CACA,CAAA;AAEP"}
@@ -0,0 +1,66 @@
1
+ import { ContentValue } from "../../core/dist/define-content-type.js";
2
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { ComponentPropsWithRef } from "react";
5
+ //#region src/particles/footer-link-group/footer-link-group.d.ts
6
+ export declare const FooterLinkGroupContent: {
7
+ readonly id: "footer-link-group";
8
+ readonly title: "Footer Link Group";
9
+ readonly description: "A heading and its ordered list of institutional links.";
10
+ readonly schema: {
11
+ readonly type: "object";
12
+ readonly additionalProperties: false;
13
+ readonly properties: {
14
+ readonly heading: {
15
+ readonly type: "string";
16
+ readonly minLength: 1;
17
+ readonly title: "Group heading";
18
+ };
19
+ readonly links: {
20
+ readonly type: "array";
21
+ readonly title: "Links";
22
+ readonly minItems: 1;
23
+ readonly items: {
24
+ readonly type: "object";
25
+ readonly additionalProperties: false;
26
+ readonly required: readonly ["label", "href"];
27
+ readonly properties: {
28
+ readonly label: {
29
+ readonly type: "string";
30
+ readonly minLength: 1;
31
+ readonly title: "Label";
32
+ };
33
+ readonly href: {
34
+ readonly type: "string";
35
+ readonly minLength: 1;
36
+ readonly title: "URL";
37
+ readonly format: "uri-reference";
38
+ readonly pattern: "^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$";
39
+ };
40
+ readonly target: {
41
+ readonly type: "string";
42
+ readonly enum: readonly ["_self", "_blank"];
43
+ readonly default: "_self";
44
+ readonly title: "Open in";
45
+ };
46
+ };
47
+ };
48
+ };
49
+ };
50
+ };
51
+ };
52
+ type FooterLinkGroupContentValue = ContentValue<typeof FooterLinkGroupContent>;
53
+ /** One authored link. Derived from the model so the prop and content channels cannot drift. */
54
+ export type FooterLinkGroupLink = NonNullable<FooterLinkGroupContentValue['links']>[number];
55
+ export type FooterLinkGroupProps = ComponentPropsWithRef<'div'> & {
56
+ /** Authored fallback for the group heading, used when no CMS entry supplies one. */
57
+ heading?: string;
58
+ /** Authored fallback for the link list, used when no CMS entry supplies one. */
59
+ links?: readonly FooterLinkGroupLink[];
60
+ /** Injected by the compiler, sliced from the page's or layout's composite content entry. */
61
+ $content?: FooterLinkGroupContentValue;
62
+ };
63
+ export declare const FooterLinkGroupDefinition: ComponentDefinition<FooterLinkGroupProps>;
64
+ export declare function FooterLinkGroup({ heading, links, $content, className, ...props }: FooterLinkGroupProps): import("react/jsx-runtime").JSX.Element | null;
65
+ //#endregion
66
+ //# sourceMappingURL=footer-link-group.d.ts.map
@@ -0,0 +1,154 @@
1
+ import { defineComponent } from "../../core/dist/define-component.js";
2
+ import { defineContentType } from "../../core/dist/define-content-type.js";
3
+ import "../../core/dist/index.js";
4
+ import { resolveSafeHref } from "../../utils/safe-href.js";
5
+ import { NavigationLink } from "../navigation-link/navigation-link.js";
6
+ import { AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger } from "../accordion/accordion.js";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/particles/footer-link-group/footer-link-group.tsx
9
+ const FooterLinkGroupContent = defineContentType({
10
+ id: "footer-link-group",
11
+ title: "Footer Link Group",
12
+ description: "A heading and its ordered list of institutional links.",
13
+ schema: {
14
+ type: "object",
15
+ additionalProperties: false,
16
+ properties: {
17
+ heading: {
18
+ type: "string",
19
+ minLength: 1,
20
+ title: "Group heading"
21
+ },
22
+ links: {
23
+ type: "array",
24
+ title: "Links",
25
+ minItems: 1,
26
+ items: {
27
+ type: "object",
28
+ additionalProperties: false,
29
+ required: ["label", "href"],
30
+ properties: {
31
+ label: {
32
+ type: "string",
33
+ minLength: 1,
34
+ title: "Label"
35
+ },
36
+ href: {
37
+ type: "string",
38
+ minLength: 1,
39
+ title: "URL",
40
+ format: "uri-reference",
41
+ pattern: "^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$"
42
+ },
43
+ target: {
44
+ type: "string",
45
+ enum: ["_self", "_blank"],
46
+ default: "_self",
47
+ title: "Open in"
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ });
55
+ const FooterLinkGroupDefinition = defineComponent({
56
+ name: "FooterLinkGroup",
57
+ importPath: "@vtex/faststore/components",
58
+ component: FooterLinkGroup,
59
+ content: FooterLinkGroupContent,
60
+ editor: {
61
+ label: "Footer Link Group",
62
+ category: "navigation"
63
+ },
64
+ schema: {
65
+ heading: {
66
+ type: "string",
67
+ label: "Group heading"
68
+ },
69
+ links: {
70
+ type: "array",
71
+ label: "Links"
72
+ }
73
+ },
74
+ 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."
75
+ });
76
+ /** Unique within its own root, and every group renders its own root. */
77
+ const ACCORDION_ITEM_VALUE = "links";
78
+ /**
79
+ * Resolves the whole list once per render, so both forms show the same links and a refused
80
+ * destination logs one line rather than two.
81
+ */
82
+ function resolveLinks(links) {
83
+ const resolved = [];
84
+ links.forEach((link, index) => {
85
+ if (link.label.trim().length === 0) return;
86
+ const destination = resolveSafeHref(link.href);
87
+ if (!destination.safe) console.warn("[FooterLinkGroup] link destination rejected", {
88
+ index,
89
+ reason: destination.reason
90
+ });
91
+ resolved.push({
92
+ label: link.label,
93
+ href: destination.safe ? destination.href : null,
94
+ target: link.target
95
+ });
96
+ });
97
+ return resolved;
98
+ }
99
+ function FooterLinkGroup({ heading, links, $content, className, ...props }) {
100
+ const groupHeading = $content?.heading ?? heading;
101
+ const resolved = resolveLinks($content?.links ?? links ?? []);
102
+ if (!groupHeading?.trim() || resolved.length === 0) return null;
103
+ const list = /* @__PURE__ */ jsx("ul", {
104
+ "data-fs-footer-link-group-list": "",
105
+ children: resolved.map((link, index) => /* @__PURE__ */ jsx("li", {
106
+ "data-fs-footer-link-group-item": "",
107
+ children: link.href === null ? /* @__PURE__ */ jsx("span", {
108
+ "data-fs-text": "",
109
+ "data-fs-footer-link-group-text": "",
110
+ children: link.label
111
+ }) : /* @__PURE__ */ jsx(NavigationLink, {
112
+ href: link.href,
113
+ target: link.target,
114
+ "data-fs-footer-link-group-link": "",
115
+ children: link.label
116
+ })
117
+ }, index))
118
+ });
119
+ return /* @__PURE__ */ jsxs("div", {
120
+ ...props,
121
+ className,
122
+ "data-fs-footer-link-group": "",
123
+ children: [/* @__PURE__ */ jsx(AccordionRoot, {
124
+ "data-fs-footer-link-group-accordion": "",
125
+ children: /* @__PURE__ */ jsxs(AccordionItem, {
126
+ value: ACCORDION_ITEM_VALUE,
127
+ children: [/* @__PURE__ */ jsx(AccordionHeader, {
128
+ "data-fs-footer-link-group-heading": "",
129
+ children: /* @__PURE__ */ jsx(AccordionTrigger, {
130
+ "data-fs-text": "",
131
+ "data-fs-footer-link-group-trigger": "",
132
+ children: groupHeading
133
+ })
134
+ }), /* @__PURE__ */ jsx(AccordionPanel, {
135
+ hiddenUntilFound: true,
136
+ keepMounted: true,
137
+ "data-fs-footer-link-group-panel": "",
138
+ children: list
139
+ })]
140
+ })
141
+ }), /* @__PURE__ */ jsxs("div", {
142
+ "data-fs-footer-link-group-column": "",
143
+ children: [/* @__PURE__ */ jsx("h3", {
144
+ "data-fs-text": "",
145
+ "data-fs-footer-link-group-heading": "",
146
+ children: groupHeading
147
+ }), list]
148
+ })]
149
+ });
150
+ }
151
+ //#endregion
152
+ export { FooterLinkGroup, FooterLinkGroupContent, FooterLinkGroupDefinition };
153
+
154
+ //# sourceMappingURL=footer-link-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-link-group.js","names":[],"sources":["../../../src/particles/footer-link-group/footer-link-group.tsx"],"sourcesContent":["import { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\nimport { resolveSafeHref } from '../../utils/safe-href.js';\nimport {\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n AccordionRoot,\n AccordionTrigger,\n} from '../accordion/accordion.js';\nimport { NavigationLink } from '../navigation-link/navigation-link.js';\n\n// ---------------------------------------------------------------------------\n// Content model\n// ---------------------------------------------------------------------------\n\nexport const FooterLinkGroupContent = defineContentType({\n id: 'footer-link-group',\n title: 'Footer Link Group',\n description: 'A heading and its ordered list of institutional links.',\n schema: {\n type: 'object',\n additionalProperties: false,\n // Neither property is required. A missing element key already omits the component before any\n // required check runs, so requiring them would buy nothing and cost the prop fallback: an entry\n // authoring one field alone would be shape-invalid and take the whole element down with it. The\n // render gate holds the heading invariant instead, being the only point that sees both channels.\n properties: {\n heading: { type: 'string', minLength: 1, title: 'Group heading' },\n links: {\n type: 'array',\n title: 'Links',\n minItems: 1,\n items: {\n type: 'object',\n additionalProperties: false,\n required: ['label', 'href'],\n properties: {\n label: { type: 'string', minLength: 1, title: 'Label' },\n href: {\n type: 'string',\n minLength: 1,\n title: 'URL',\n format: 'uri-reference',\n // Author-time guidance only, and deliberately lookahead-free: nothing in this repo\n // compiles it, so its one consumer is the Content Platform Admin's form, whose regex\n // engine may be an RE2 family that rejects lookahead outright.\n pattern: '^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$',\n },\n target: { type: 'string', enum: ['_self', '_blank'], default: '_self', title: 'Open in' },\n },\n },\n },\n },\n },\n});\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype FooterLinkGroupContentValue = ContentValue<typeof FooterLinkGroupContent>;\n\n/** One authored link. Derived from the model so the prop and content channels cannot drift. */\nexport type FooterLinkGroupLink = NonNullable<FooterLinkGroupContentValue['links']>[number];\n\nexport type FooterLinkGroupProps = ComponentPropsWithRef<'div'> & {\n /** Authored fallback for the group heading, used when no CMS entry supplies one. */\n heading?: string;\n /** Authored fallback for the link list, used when no CMS entry supplies one. */\n links?: readonly FooterLinkGroupLink[];\n /** Injected by the compiler, sliced from the page's or layout's composite content entry. */\n $content?: FooterLinkGroupContentValue;\n};\n\n// ---------------------------------------------------------------------------\n// Definition\n// ---------------------------------------------------------------------------\n\nexport const FooterLinkGroupDefinition = defineComponent({\n name: 'FooterLinkGroup',\n importPath: '@vtex/faststore/components',\n component: FooterLinkGroup,\n content: FooterLinkGroupContent,\n editor: { label: 'Footer Link Group', category: 'navigation' },\n schema: {\n heading: { type: 'string', label: 'Group heading' },\n links: { type: 'array', label: 'Links' },\n },\n guideline:\n \"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.\",\n});\n\n// ---------------------------------------------------------------------------\n// Implementation\n// ---------------------------------------------------------------------------\n\n/** A resolved link, ready for both forms. A null `href` is a destination the allowlist refused. */\ntype ResolvedLink = {\n label: string;\n href: string | null;\n target: FooterLinkGroupLink['target'];\n};\n\n/** Unique within its own root, and every group renders its own root. */\nconst ACCORDION_ITEM_VALUE = 'links';\n\n/**\n * Resolves the whole list once per render, so both forms show the same links and a refused\n * destination logs one line rather than two.\n */\nfunction resolveLinks(links: readonly FooterLinkGroupLink[]): ResolvedLink[] {\n const resolved: ResolvedLink[] = [];\n\n links.forEach((link, index) => {\n // `minLength` is enforced by neither the runtime slice nor the preflight, so a blank label\n // reaches the component. Drop the link: an anchor with no accessible name is a WCAG failure.\n if (link.label.trim().length === 0) {\n return;\n }\n const destination = resolveSafeHref(link.href);\n if (!destination.safe) {\n // A bounded reason and no authored value, the convention the content runtime's own log follows.\n console.warn('[FooterLinkGroup] link destination rejected', { index, reason: destination.reason });\n }\n resolved.push({\n label: link.label,\n href: destination.safe ? destination.href : null,\n target: link.target,\n });\n });\n\n return resolved;\n}\n\nexport function FooterLinkGroup({ heading, links, $content, className, ...props }: FooterLinkGroupProps) {\n const groupHeading = $content?.heading ?? heading;\n // An entry supplying `links: []` beats an authored prop: a merchant who cleared the list cleared it.\n const resolved = resolveLinks($content?.links ?? links ?? []);\n\n if (!groupHeading?.trim() || resolved.length === 0) {\n return null;\n }\n\n // One element rendered in both forms, so the two cannot drift.\n const list = (\n <ul data-fs-footer-link-group-list=\"\">\n {resolved.map((link, index) => (\n <li key={index} data-fs-footer-link-group-item=\"\">\n {link.href === null ? (\n <span data-fs-text=\"\" data-fs-footer-link-group-text=\"\">\n {link.label}\n </span>\n ) : (\n <NavigationLink href={link.href} target={link.target} data-fs-footer-link-group-link=\"\">\n {link.label}\n </NavigationLink>\n )}\n </li>\n ))}\n </ul>\n );\n\n return (\n <div {...props} className={className} data-fs-footer-link-group=\"\">\n <AccordionRoot data-fs-footer-link-group-accordion=\"\">\n <AccordionItem value={ACCORDION_ITEM_VALUE}>\n <AccordionHeader data-fs-footer-link-group-heading=\"\">\n <AccordionTrigger data-fs-text=\"\" data-fs-footer-link-group-trigger=\"\">\n {groupHeading}\n </AccordionTrigger>\n </AccordionHeader>\n {/* `hiddenUntilFound` requires the panel to stay mounted while closed, and the wrapper\n defaults `keepMounted` to false, so passing it keeps Base UI from warning about the pair. */}\n <AccordionPanel hiddenUntilFound keepMounted data-fs-footer-link-group-panel=\"\">\n {list}\n </AccordionPanel>\n </AccordionItem>\n </AccordionRoot>\n <div data-fs-footer-link-group-column=\"\">\n <h3 data-fs-text=\"\" data-fs-footer-link-group-heading=\"\">\n {groupHeading}\n </h3>\n {list}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAgBA,MAAa,yBAAyB,kBAAkB;CACtD,IAAI;CACJ,OAAO;CACP,aAAa;CACb,QAAQ;EACN,MAAM;EACN,sBAAsB;EAKtB,YAAY;GACV,SAAS;IAAE,MAAM;IAAU,WAAW;IAAG,OAAO;GAAgB;GAChE,OAAO;IACL,MAAM;IACN,OAAO;IACP,UAAU;IACV,OAAO;KACL,MAAM;KACN,sBAAsB;KACtB,UAAU,CAAC,SAAS,MAAM;KAC1B,YAAY;MACV,OAAO;OAAE,MAAM;OAAU,WAAW;OAAG,OAAO;MAAQ;MACtD,MAAM;OACJ,MAAM;OACN,WAAW;OACX,OAAO;OACP,QAAQ;OAIR,SAAS;MACX;MACA,QAAQ;OAAE,MAAM;OAAU,MAAM,CAAC,SAAS,QAAQ;OAAG,SAAS;OAAS,OAAO;MAAU;KAC1F;IACF;GACF;EACF;CACF;AACF,CAAC;AAwBD,MAAa,4BAA4B,gBAAgB;CACvD,MAAM;CACN,YAAY;CACZ,WAAW;CACX,SAAS;CACT,QAAQ;EAAE,OAAO;EAAqB,UAAU;CAAa;CAC7D,QAAQ;EACN,SAAS;GAAE,MAAM;GAAU,OAAO;EAAgB;EAClD,OAAO;GAAE,MAAM;GAAS,OAAO;EAAQ;CACzC;CACA,WACE;AACJ,CAAC;;AAcD,MAAM,uBAAuB;;;;;AAM7B,SAAS,aAAa,OAAuD;CAC3E,MAAM,WAA2B,CAAC;CAElC,MAAM,SAAS,MAAM,UAAU;EAG7B,IAAI,KAAK,MAAM,KAAK,CAAC,CAAC,WAAW,GAC/B;EAEF,MAAM,cAAc,gBAAgB,KAAK,IAAI;EAC7C,IAAI,CAAC,YAAY,MAEf,QAAQ,KAAK,+CAA+C;GAAE;GAAO,QAAQ,YAAY;EAAO,CAAC;EAEnG,SAAS,KAAK;GACZ,OAAO,KAAK;GACZ,MAAM,YAAY,OAAO,YAAY,OAAO;GAC5C,QAAQ,KAAK;EACf,CAAC;CACH,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,gBAAgB,EAAE,SAAS,OAAO,UAAU,WAAW,GAAG,SAA+B;CACvG,MAAM,eAAe,UAAU,WAAW;CAE1C,MAAM,WAAW,aAAa,UAAU,SAAS,SAAS,CAAC,CAAC;CAE5D,IAAI,CAAC,cAAc,KAAK,KAAK,SAAS,WAAW,GAC/C,OAAO;CAIT,MAAM,OACJ,oBAAC,MAAD;EAAI,kCAA+B;EAChC,UAAA,SAAS,KAAK,MAAM,UACnB,oBAAC,MAAD;GAAgB,kCAA+B;GAC5C,UAAA,KAAK,SAAS,OACb,oBAAC,QAAD;IAAM,gBAAa;IAAG,kCAA+B;IAClD,UAAA,KAAK;GACF,CAAA,IAEN,oBAAC,gBAAD;IAAgB,MAAM,KAAK;IAAM,QAAQ,KAAK;IAAQ,kCAA+B;IAClF,UAAA,KAAK;GACQ,CAAA;EAEhB,GAVK,KAUL,CACL;CACC,CAAA;CAGN,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,6BAA0B;EAAhE,UAAA,CACE,oBAAC,eAAD;GAAe,uCAAoC;GACjD,UAAA,qBAAC,eAAD;IAAe,OAAO;IAAtB,UAAA,CACE,oBAAC,iBAAD;KAAiB,qCAAkC;KACjD,UAAA,oBAAC,kBAAD;MAAkB,gBAAa;MAAG,qCAAkC;MACjE,UAAA;KACe,CAAA;IACH,CAAA,GAGjB,oBAAC,gBAAD;KAAgB,kBAAA;KAAiB,aAAA;KAAY,mCAAgC;KAC1E,UAAA;IACa,CAAA,CACH;;EACF,CAAA,GACf,qBAAC,OAAD;GAAK,oCAAiC;GAAtC,UAAA,CACE,oBAAC,MAAD;IAAI,gBAAa;IAAG,qCAAkC;IACnD,UAAA;GACC,CAAA,GACH,IACE;EACF,CAAA,CAAA;;AAET"}
@@ -0,0 +1,21 @@
1
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
2
+ import "../../core/dist/index.js";
3
+ import { ComponentPropsWithRef } from "react";
4
+ //#region src/particles/footer-root/footer-root.d.ts
5
+ /** Props for {@link FooterRoot}. Extends all native `<footer>` attributes. */
6
+ export type FooterRootProps = ComponentPropsWithRef<'footer'>;
7
+ /**
8
+ * Footer landmark that wraps the footer sections.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <FooterRoot>
13
+ * <NavigationLink href="/faq">FAQ</NavigationLink>
14
+ * <FooterCopyright text="© 2026 Loja XYZ" />
15
+ * </FooterRoot>
16
+ * ```
17
+ */
18
+ export declare const FooterRootDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>>;
19
+ export declare function FooterRoot({ className, children, ...props }: FooterRootProps): import("react/jsx-runtime").JSX.Element;
20
+ //#endregion
21
+ //# sourceMappingURL=footer-root.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { defineComponent } from "../../core/dist/define-component.js";
2
+ import "../../core/dist/index.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/particles/footer-root/footer-root.tsx
5
+ /**
6
+ * Footer landmark that wraps the footer sections.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <FooterRoot>
11
+ * <NavigationLink href="/faq">FAQ</NavigationLink>
12
+ * <FooterCopyright text="© 2026 Loja XYZ" />
13
+ * </FooterRoot>
14
+ * ```
15
+ */
16
+ const FooterRootDefinition = defineComponent({
17
+ name: "FooterRoot",
18
+ importPath: "@vtex/faststore/components",
19
+ component: FooterRoot,
20
+ editor: {
21
+ label: "Footer",
22
+ category: "layout"
23
+ },
24
+ schema: {},
25
+ 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."
26
+ });
27
+ function FooterRoot({ className, children, ...props }) {
28
+ return /* @__PURE__ */ jsx("footer", {
29
+ ...props,
30
+ className,
31
+ "data-fs-footer": "",
32
+ children
33
+ });
34
+ }
35
+ //#endregion
36
+ export { FooterRoot, FooterRootDefinition };
37
+
38
+ //# sourceMappingURL=footer-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-root.js","names":[],"sources":["../../../src/particles/footer-root/footer-root.tsx"],"sourcesContent":["import { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\n\n/** Props for {@link FooterRoot}. Extends all native `<footer>` attributes. */\nexport type FooterRootProps = ComponentPropsWithRef<'footer'>;\n\n/**\n * Footer landmark that wraps the footer sections.\n *\n * @example\n * ```tsx\n * <FooterRoot>\n * <NavigationLink href=\"/faq\">FAQ</NavigationLink>\n * <FooterCopyright text=\"© 2026 Loja XYZ\" />\n * </FooterRoot>\n * ```\n */\nexport const FooterRootDefinition = defineComponent<FooterRootProps>({\n name: 'FooterRoot',\n importPath: '@vtex/faststore/components',\n component: FooterRoot,\n editor: { label: 'Footer', category: 'layout' },\n schema: {},\n guideline:\n '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.',\n});\n\nexport function FooterRoot({ className, children, ...props }: FooterRootProps) {\n return (\n <footer {...props} className={className} data-fs-footer=\"\">\n {children}\n </footer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAa,uBAAuB,gBAAiC;CACnE,MAAM;CACN,YAAY;CACZ,WAAW;CACX,QAAQ;EAAE,OAAO;EAAU,UAAU;CAAS;CAC9C,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,SAAgB,WAAW,EAAE,WAAW,UAAU,GAAG,SAA0B;CAC7E,OACE,oBAAC,UAAD;EAAQ,GAAI;EAAkB;EAAW,kBAAe;EACrD;CACK,CAAA;AAEZ"}