@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,79 @@
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-social/footer-social.d.ts
6
+ export declare const FooterSocialContent: {
7
+ readonly id: "footer-social";
8
+ readonly title: "Footer Social";
9
+ readonly description: "Links to the store's official social profiles, shown as a row of platform icons.";
10
+ readonly schema: {
11
+ readonly type: "object";
12
+ readonly additionalProperties: false;
13
+ readonly properties: {
14
+ readonly heading: {
15
+ readonly type: "string";
16
+ readonly title: "Heading";
17
+ };
18
+ readonly entries: {
19
+ readonly type: "array";
20
+ readonly title: "Social profiles";
21
+ readonly minItems: 1;
22
+ readonly items: {
23
+ readonly type: "object";
24
+ readonly additionalProperties: false;
25
+ readonly required: readonly ["label", "url"];
26
+ readonly properties: {
27
+ readonly platform: {
28
+ readonly type: "string";
29
+ readonly enum: readonly ["facebook", "instagram", "linkedin", "pinterest", "youtube"];
30
+ readonly title: "Platform";
31
+ };
32
+ readonly url: {
33
+ readonly type: "string";
34
+ readonly minLength: 1;
35
+ readonly title: "Profile URL";
36
+ readonly format: "uri-reference";
37
+ readonly pattern: "^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$";
38
+ };
39
+ readonly label: {
40
+ readonly type: "string";
41
+ readonly minLength: 1;
42
+ readonly title: "Label";
43
+ };
44
+ readonly iconUrl: {
45
+ readonly type: "string";
46
+ readonly format: "uri";
47
+ readonly title: "Custom icon";
48
+ readonly widget: {
49
+ readonly 'ui:widget': "media-gallery";
50
+ };
51
+ };
52
+ };
53
+ };
54
+ };
55
+ };
56
+ };
57
+ };
58
+ /**
59
+ * The platform glyphs `platform` admits, every one verified to resolve. Exported because a store's
60
+ * `global.json` has to list them under `icons.include` for a CMS-chosen name to resolve at runtime —
61
+ * one import there instead of five retyped strings. Reading it off the model rather than declaring it
62
+ * beside one makes the two impossible to drift apart.
63
+ */
64
+ export declare const SOCIAL_PLATFORM_NAMES: readonly ["facebook", "instagram", "linkedin", "pinterest", "youtube"];
65
+ type FooterSocialContentValue = ContentValue<typeof FooterSocialContent>;
66
+ /** One profile in the row. Derived from the model so the prop and content channels cannot drift. */
67
+ export type FooterSocialEntry = NonNullable<FooterSocialContentValue['entries']>[number];
68
+ export type FooterSocialProps = ComponentPropsWithRef<'div'> & {
69
+ /** Authored fallback for the section heading, used when no CMS entry supplies one. */
70
+ heading?: string;
71
+ /** Authored fallback for the profile list, used when no CMS entry supplies one. */
72
+ entries?: readonly FooterSocialEntry[];
73
+ /** Injected by the compiler, sliced from the page's or layout's composite content entry. */
74
+ $content?: FooterSocialContentValue;
75
+ };
76
+ export declare const FooterSocialDefinition: ComponentDefinition<FooterSocialProps>;
77
+ export declare function FooterSocial({ heading, entries, $content, className, ...props }: FooterSocialProps): import("react/jsx-runtime").JSX.Element | null;
78
+ //#endregion
79
+ //# sourceMappingURL=footer-social.d.ts.map
@@ -0,0 +1,176 @@
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 { Icon } from "../icon/icon.js";
5
+ import { resolveSafeHref } from "../../utils/safe-href.js";
6
+ import { NavigationLink } from "../navigation-link/navigation-link.js";
7
+ import { Image } from "../image/image.js";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ //#region src/particles/footer-social/footer-social.tsx
10
+ const FooterSocialContent = defineContentType({
11
+ id: "footer-social",
12
+ title: "Footer Social",
13
+ description: "Links to the store's official social profiles, shown as a row of platform icons.",
14
+ schema: {
15
+ type: "object",
16
+ additionalProperties: false,
17
+ properties: {
18
+ heading: {
19
+ type: "string",
20
+ title: "Heading"
21
+ },
22
+ entries: {
23
+ type: "array",
24
+ title: "Social profiles",
25
+ minItems: 1,
26
+ items: {
27
+ type: "object",
28
+ additionalProperties: false,
29
+ required: ["label", "url"],
30
+ properties: {
31
+ platform: {
32
+ type: "string",
33
+ enum: [
34
+ "facebook",
35
+ "instagram",
36
+ "linkedin",
37
+ "pinterest",
38
+ "youtube"
39
+ ],
40
+ title: "Platform"
41
+ },
42
+ url: {
43
+ type: "string",
44
+ minLength: 1,
45
+ title: "Profile URL",
46
+ format: "uri-reference",
47
+ pattern: "^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$"
48
+ },
49
+ label: {
50
+ type: "string",
51
+ minLength: 1,
52
+ title: "Label"
53
+ },
54
+ iconUrl: {
55
+ type: "string",
56
+ format: "uri",
57
+ title: "Custom icon",
58
+ widget: { "ui:widget": "media-gallery" }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ });
66
+ /**
67
+ * The platform glyphs `platform` admits, every one verified to resolve. Exported because a store's
68
+ * `global.json` has to list them under `icons.include` for a CMS-chosen name to resolve at runtime —
69
+ * one import there instead of five retyped strings. Reading it off the model rather than declaring it
70
+ * beside one makes the two impossible to drift apart.
71
+ */
72
+ const SOCIAL_PLATFORM_NAMES = FooterSocialContent.schema.properties.entries.items.properties.platform.enum;
73
+ const FooterSocialDefinition = defineComponent({
74
+ name: "FooterSocial",
75
+ importPath: "@vtex/faststore/components",
76
+ component: FooterSocial,
77
+ content: FooterSocialContent,
78
+ editor: {
79
+ label: "Footer Social",
80
+ category: "navigation"
81
+ },
82
+ schema: {
83
+ heading: {
84
+ type: "string",
85
+ label: "Heading"
86
+ },
87
+ entries: {
88
+ type: "array",
89
+ label: "Social profiles"
90
+ }
91
+ },
92
+ 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."
93
+ });
94
+ /**
95
+ * Drops every entry that cannot render both a glyph and an accessible name, then vets what is left.
96
+ * Neither read-time gate enforces `minLength`, so a blank label reaches the component, and `platform`
97
+ * is optional so TikTok can arrive through `iconUrl` — which leaves an entry carrying neither, also
98
+ * legal and also unrenderable. An icon with no name is the one thing F3 must not ship.
99
+ *
100
+ * Renderability is settled before the destination is looked at, so a dropped entry never logs: the
101
+ * filter answers whether this is a social entry at all, and the destination only decides which form
102
+ * it takes.
103
+ */
104
+ function resolveEntries(entries) {
105
+ const resolved = [];
106
+ entries.forEach((entry, index) => {
107
+ if (!entry.label.trim() || !(entry.iconUrl?.trim() || entry.platform)) return;
108
+ const destination = resolveSafeHref(entry.url);
109
+ if (!destination.safe) console.warn("[FooterSocial] link destination rejected", {
110
+ index,
111
+ reason: destination.reason
112
+ });
113
+ const href = destination.safe ? destination.href : null;
114
+ if (entry.iconUrl?.trim()) resolved.push({
115
+ label: entry.label,
116
+ href,
117
+ platform: entry.platform,
118
+ src: entry.iconUrl
119
+ });
120
+ else if (entry.platform) resolved.push({
121
+ label: entry.label,
122
+ href,
123
+ platform: entry.platform
124
+ });
125
+ });
126
+ return resolved;
127
+ }
128
+ function FooterSocial({ heading, entries, $content, className, ...props }) {
129
+ const sectionHeading = $content?.heading ?? heading;
130
+ const resolved = resolveEntries($content?.entries ?? entries ?? []);
131
+ if (resolved.length === 0) return null;
132
+ const named = Boolean(sectionHeading?.trim());
133
+ return /* @__PURE__ */ jsxs("div", {
134
+ ...props,
135
+ className,
136
+ "data-fs-footer-social": "",
137
+ children: [named ? /* @__PURE__ */ jsx("h3", {
138
+ "data-fs-text": "",
139
+ "data-fs-footer-social-heading": "",
140
+ children: sectionHeading
141
+ }) : null, /* @__PURE__ */ jsx("ul", {
142
+ role: "list",
143
+ "data-fs-footer-social-list": "",
144
+ "aria-label": named ? sectionHeading : void 0,
145
+ children: resolved.map((entry, index) => /* @__PURE__ */ jsx("li", {
146
+ "data-fs-footer-social-item": "",
147
+ "data-fs-footer-social-platform": entry.platform,
148
+ children: entry.href === null ? /* @__PURE__ */ jsx("span", {
149
+ "data-fs-text": "",
150
+ "data-fs-footer-social-text": "",
151
+ children: entry.label
152
+ }) : /* @__PURE__ */ jsx(NavigationLink, {
153
+ href: entry.href,
154
+ target: "_blank",
155
+ "data-fs-footer-social-link": "",
156
+ children: entry.src === void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Icon, {
157
+ name: entry.platform,
158
+ "data-fs-footer-social-icon": ""
159
+ }), /* @__PURE__ */ jsx("span", {
160
+ "data-fs-sr-only": "",
161
+ className: "sr-only",
162
+ children: entry.label
163
+ })] }) : /* @__PURE__ */ jsx(Image, {
164
+ src: entry.src,
165
+ alt: entry.label,
166
+ "data-fs-footer-social-icon": ""
167
+ })
168
+ })
169
+ }, index))
170
+ })]
171
+ });
172
+ }
173
+ //#endregion
174
+ export { FooterSocial, FooterSocialContent, FooterSocialDefinition, SOCIAL_PLATFORM_NAMES };
175
+
176
+ //# sourceMappingURL=footer-social.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer-social.js","names":[],"sources":["../../../src/particles/footer-social/footer-social.tsx"],"sourcesContent":["import { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\nimport { resolveSafeHref } from '../../utils/safe-href.js';\nimport { Icon } from '../icon/icon.js';\nimport { Image } from '../image/image.js';\nimport { NavigationLink } from '../navigation-link/navigation-link.js';\n\n// ---------------------------------------------------------------------------\n// Content model\n// ---------------------------------------------------------------------------\n\nexport const FooterSocialContent = defineContentType({\n id: 'footer-social',\n title: 'Footer Social',\n description: \"Links to the store's official social profiles, shown as a row of platform icons.\",\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.\n properties: {\n heading: { type: 'string', title: 'Heading' },\n entries: {\n type: 'array',\n title: 'Social profiles',\n // Author-time guidance only: no read-time gate enforces item bounds, so its one consumer is\n // the Content Platform Admin's form. An empty list still reaches the component, which\n // self-hides on it. No ceiling — a brand is on as many platforms as it is on.\n minItems: 1,\n items: {\n type: 'object',\n additionalProperties: false,\n required: ['label', 'url'],\n properties: {\n // Inline rather than a named constant: the catalog scanner reads this file statically\n // and rejects an identifier it cannot evaluate. `SOCIAL_PLATFORM_NAMES` derives from here.\n // Every name resolves: facebook, instagram and pinterest through the base dialect's\n // embedded floor, linkedin and youtube only through a provisioned lucide. No twitter —\n // both vocabularies still draw the old bird, and an enum member cannot be narrowed once\n // published, so Twitter/X rides iconUrl alongside TikTok and WhatsApp.\n platform: {\n type: 'string',\n enum: ['facebook', 'instagram', 'linkedin', 'pinterest', 'youtube'],\n title: 'Platform',\n },\n url: {\n type: 'string',\n minLength: 1,\n title: 'Profile URL',\n format: 'uri-reference',\n // Author-time guidance only, and deliberately identical to FooterLinkGroup's: the Admin\n // form must not reject a destination `resolveSafeHref` would have accepted. Lookahead-free\n // because the Admin's regex engine may be an RE2 family that rejects lookahead outright.\n pattern: '^(?:https?://.*|mailto:.+|tel:.+|/(?:[^/].*)?)$',\n },\n label: { type: 'string', minLength: 1, title: 'Label' },\n iconUrl: {\n type: 'string',\n format: 'uri',\n title: 'Custom icon',\n widget: { 'ui:widget': 'media-gallery' },\n },\n },\n },\n },\n },\n },\n});\n\n/**\n * The platform glyphs `platform` admits, every one verified to resolve. Exported because a store's\n * `global.json` has to list them under `icons.include` for a CMS-chosen name to resolve at runtime —\n * one import there instead of five retyped strings. Reading it off the model rather than declaring it\n * beside one makes the two impossible to drift apart.\n */\nexport const SOCIAL_PLATFORM_NAMES = FooterSocialContent.schema.properties.entries.items.properties.platform.enum;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype FooterSocialContentValue = ContentValue<typeof FooterSocialContent>;\n\n/** One profile in the row. Derived from the model so the prop and content channels cannot drift. */\nexport type FooterSocialEntry = NonNullable<FooterSocialContentValue['entries']>[number];\n\ntype SocialPlatformName = NonNullable<FooterSocialEntry['platform']>;\n\nexport type FooterSocialProps = ComponentPropsWithRef<'div'> & {\n /** Authored fallback for the section heading, used when no CMS entry supplies one. */\n heading?: string;\n /** Authored fallback for the profile list, used when no CMS entry supplies one. */\n entries?: readonly FooterSocialEntry[];\n /** Injected by the compiler, sliced from the page's or layout's composite content entry. */\n $content?: FooterSocialContentValue;\n};\n\n// ---------------------------------------------------------------------------\n// Definition\n// ---------------------------------------------------------------------------\n\nexport const FooterSocialDefinition = defineComponent({\n name: 'FooterSocial',\n importPath: '@vtex/faststore/components',\n component: FooterSocial,\n content: FooterSocialContent,\n editor: { label: 'Footer Social', category: 'navigation' },\n schema: {\n heading: { type: 'string', label: 'Heading' },\n entries: { type: 'array', label: 'Social profiles' },\n },\n guideline:\n \"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.\",\n});\n\n// ---------------------------------------------------------------------------\n// Implementation\n// ---------------------------------------------------------------------------\n\n/**\n * An entry that can render: a non-blank label, one glyph source, and a destination the allowlist\n * either cleared or refused. The render branches on `href` first — a null one renders the label as\n * text and no glyph at all — so on that path the glyph source survives only to key the discriminator.\n */\ntype ResolvedEntry =\n | { label: string; href: string | null; platform: SocialPlatformName; src?: undefined }\n | { label: string; href: string | null; platform?: SocialPlatformName; src: string };\n\n/**\n * Drops every entry that cannot render both a glyph and an accessible name, then vets what is left.\n * Neither read-time gate enforces `minLength`, so a blank label reaches the component, and `platform`\n * is optional so TikTok can arrive through `iconUrl` — which leaves an entry carrying neither, also\n * legal and also unrenderable. An icon with no name is the one thing F3 must not ship.\n *\n * Renderability is settled before the destination is looked at, so a dropped entry never logs: the\n * filter answers whether this is a social entry at all, and the destination only decides which form\n * it takes.\n */\nfunction resolveEntries(entries: readonly FooterSocialEntry[]): ResolvedEntry[] {\n const resolved: ResolvedEntry[] = [];\n\n entries.forEach((entry, index) => {\n if (!entry.label.trim() || !(entry.iconUrl?.trim() || entry.platform)) {\n return;\n }\n\n const destination = resolveSafeHref(entry.url);\n if (!destination.safe) {\n // A bounded reason and no authored value, the convention the content runtime's own log follows.\n console.warn('[FooterSocial] link destination rejected', { index, reason: destination.reason });\n }\n const href = destination.safe ? destination.href : null;\n\n if (entry.iconUrl?.trim()) {\n resolved.push({ label: entry.label, href, platform: entry.platform, src: entry.iconUrl });\n } else if (entry.platform) {\n resolved.push({ label: entry.label, href, platform: entry.platform });\n }\n });\n\n return resolved;\n}\n\nexport function FooterSocial({ heading, entries, $content, className, ...props }: FooterSocialProps) {\n const sectionHeading = $content?.heading ?? heading;\n // An entry supplying `entries: []` beats an authored prop: a merchant who cleared the row cleared it.\n const resolved = resolveEntries($content?.entries ?? entries ?? []);\n\n if (resolved.length === 0) return null;\n\n // A blank heading is unconfigured, not an empty value: no element and no group name, rather than\n // an empty one. Trim to decide, never to render.\n const named = Boolean(sectionHeading?.trim());\n\n return (\n <div {...props} className={className} data-fs-footer-social=\"\">\n {named ? (\n <h3 data-fs-text=\"\" data-fs-footer-social-heading=\"\">\n {sectionHeading}\n </h3>\n ) : null}\n {/* biome-ignore lint/a11y/noRedundantRoles: WebKit drops the implicit list role from a ul whose\n computed `list-style` is `none` — exactly what this component's swatch sets — so the explicit\n role is what holds the semantics the named list was chosen for. */}\n <ul role=\"list\" data-fs-footer-social-list=\"\" aria-label={named ? sectionHeading : undefined}>\n {resolved.map((entry, index) => (\n <li key={index} data-fs-footer-social-item=\"\" data-fs-footer-social-platform={entry.platform}>\n {entry.href === null ? (\n <span data-fs-text=\"\" data-fs-footer-social-text=\"\">\n {entry.label}\n </span>\n ) : (\n <NavigationLink href={entry.href} target=\"_blank\" data-fs-footer-social-link=\"\">\n {entry.src === undefined ? (\n <>\n <Icon name={entry.platform} data-fs-footer-social-icon=\"\" />\n <span data-fs-sr-only=\"\" className=\"sr-only\">\n {entry.label}\n </span>\n </>\n ) : (\n <Image src={entry.src} alt={entry.label} data-fs-footer-social-icon=\"\" />\n )}\n </NavigationLink>\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAWA,MAAa,sBAAsB,kBAAkB;CACnD,IAAI;CACJ,OAAO;CACP,aAAa;CACb,QAAQ;EACN,MAAM;EACN,sBAAsB;EAItB,YAAY;GACV,SAAS;IAAE,MAAM;IAAU,OAAO;GAAU;GAC5C,SAAS;IACP,MAAM;IACN,OAAO;IAIP,UAAU;IACV,OAAO;KACL,MAAM;KACN,sBAAsB;KACtB,UAAU,CAAC,SAAS,KAAK;KACzB,YAAY;MAOV,UAAU;OACR,MAAM;OACN,MAAM;QAAC;QAAY;QAAa;QAAY;QAAa;OAAS;OAClE,OAAO;MACT;MACA,KAAK;OACH,MAAM;OACN,WAAW;OACX,OAAO;OACP,QAAQ;OAIR,SAAS;MACX;MACA,OAAO;OAAE,MAAM;OAAU,WAAW;OAAG,OAAO;MAAQ;MACtD,SAAS;OACP,MAAM;OACN,QAAQ;OACR,OAAO;OACP,QAAQ,EAAE,aAAa,gBAAgB;MACzC;KACF;IACF;GACF;EACF;CACF;AACF,CAAC;;;;;;;AAQD,MAAa,wBAAwB,oBAAoB,OAAO,WAAW,QAAQ,MAAM,WAAW,SAAS;AA0B7G,MAAa,yBAAyB,gBAAgB;CACpD,MAAM;CACN,YAAY;CACZ,WAAW;CACX,SAAS;CACT,QAAQ;EAAE,OAAO;EAAiB,UAAU;CAAa;CACzD,QAAQ;EACN,SAAS;GAAE,MAAM;GAAU,OAAO;EAAU;EAC5C,SAAS;GAAE,MAAM;GAAS,OAAO;EAAkB;CACrD;CACA,WACE;AACJ,CAAC;;;;;;;;;;;AAyBD,SAAS,eAAe,SAAwD;CAC9E,MAAM,WAA4B,CAAC;CAEnC,QAAQ,SAAS,OAAO,UAAU;EAChC,IAAI,CAAC,MAAM,MAAM,KAAK,KAAK,EAAE,MAAM,SAAS,KAAK,KAAK,MAAM,WAC1D;EAGF,MAAM,cAAc,gBAAgB,MAAM,GAAG;EAC7C,IAAI,CAAC,YAAY,MAEf,QAAQ,KAAK,4CAA4C;GAAE;GAAO,QAAQ,YAAY;EAAO,CAAC;EAEhG,MAAM,OAAO,YAAY,OAAO,YAAY,OAAO;EAEnD,IAAI,MAAM,SAAS,KAAK,GACtB,SAAS,KAAK;GAAE,OAAO,MAAM;GAAO;GAAM,UAAU,MAAM;GAAU,KAAK,MAAM;EAAQ,CAAC;OACnF,IAAI,MAAM,UACf,SAAS,KAAK;GAAE,OAAO,MAAM;GAAO;GAAM,UAAU,MAAM;EAAS,CAAC;CAExE,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,aAAa,EAAE,SAAS,SAAS,UAAU,WAAW,GAAG,SAA4B;CACnG,MAAM,iBAAiB,UAAU,WAAW;CAE5C,MAAM,WAAW,eAAe,UAAU,WAAW,WAAW,CAAC,CAAC;CAElE,IAAI,SAAS,WAAW,GAAG,OAAO;CAIlC,MAAM,QAAQ,QAAQ,gBAAgB,KAAK,CAAC;CAE5C,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,yBAAsB;EAA5D,UAAA,CACG,QACC,oBAAC,MAAD;GAAI,gBAAa;GAAG,iCAA8B;GAC/C,UAAA;EACC,CAAA,IACF,MAIJ,oBAAC,MAAD;GAAI,MAAK;GAAO,8BAA2B;GAAG,cAAY,QAAQ,iBAAiB,KAAA;GAChF,UAAA,SAAS,KAAK,OAAO,UACpB,oBAAC,MAAD;IAAgB,8BAA2B;IAAG,kCAAgC,MAAM;IACjF,UAAA,MAAM,SAAS,OACd,oBAAC,QAAD;KAAM,gBAAa;KAAG,8BAA2B;KAC9C,UAAA,MAAM;IACH,CAAA,IAEN,oBAAC,gBAAD;KAAgB,MAAM,MAAM;KAAM,QAAO;KAAS,8BAA2B;KAC1E,UAAA,MAAM,QAAQ,KAAA,IACb,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,MAAD;MAAM,MAAM,MAAM;MAAU,8BAA2B;KAAI,CAAA,GAC3D,oBAAC,QAAD;MAAM,mBAAgB;MAAG,WAAU;MAChC,UAAA,MAAM;KACH,CAAA,CACN,EAAA,CAAA,IAEF,oBAAC,OAAD;MAAO,KAAK,MAAM;MAAK,KAAK,MAAM;MAAO,8BAA2B;KAAI,CAAA;IAE5D,CAAA;GAEhB,GAnBK,KAmBL,CACL;EACC,CAAA,CACD;;AAET"}
@@ -0,0 +1,181 @@
1
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
2
+ import "../../core/dist/index.js";
3
+ import { ComponentPropsWithRef, ReactNode } from "react";
4
+ //#region src/particles/gallery/gallery.d.ts
5
+ export type GalleryMediaType = 'image' | 'video';
6
+ export type GalleryMediaItem = {
7
+ type: GalleryMediaType;
8
+ url: string;
9
+ altText: string;
10
+ previewImageUrl?: string;
11
+ };
12
+ export type GalleryContextValue = {
13
+ media: GalleryMediaItem[];
14
+ selectedIndex: number;
15
+ setSelectedIndex: (index: number) => void;
16
+ fullscreenOpen: boolean;
17
+ openFullscreen: () => void;
18
+ closeFullscreen: () => void;
19
+ selectOnHover: boolean;
20
+ thumbnailOpensFullscreen: boolean;
21
+ zoomActive: boolean;
22
+ setZoomActive: (active: boolean) => void;
23
+ zoomPosition: {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ setZoomPosition: (pos: {
28
+ x: number;
29
+ y: number;
30
+ }) => void;
31
+ magnification: number;
32
+ lensSize: number;
33
+ setZoomConfig: (config: {
34
+ magnification: number;
35
+ lensSize: number;
36
+ }) => void;
37
+ zoomContainerSize: {
38
+ width: number;
39
+ height: number;
40
+ };
41
+ setZoomContainerSize: (size: {
42
+ width: number;
43
+ height: number;
44
+ }) => void;
45
+ thumbnailOffset: number;
46
+ setThumbnailOffset: (offset: number) => void;
47
+ thumbnailsWindowSize: number;
48
+ setThumbnailsWindowSize: (size: number) => void;
49
+ };
50
+ export type GalleryItemContextValue = {
51
+ item: GalleryMediaItem;
52
+ index: number;
53
+ isOverflow: boolean;
54
+ overflowCount: number;
55
+ };
56
+ export type GalleryRootProps = ComponentPropsWithRef<'div'> & {
57
+ media?: GalleryMediaItem[];
58
+ defaultIndex?: number;
59
+ selectOnHover?: boolean;
60
+ thumbnailOpensFullscreen?: boolean;
61
+ };
62
+ export type GalleryMainMediaProps = ComponentPropsWithRef<'div'> & {
63
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none';
64
+ aspectRatio?: string;
65
+ videoAutoPlay?: boolean;
66
+ videoControls?: boolean;
67
+ clickOpensFullscreen?: boolean;
68
+ };
69
+ export type GalleryThumbnailsProps = ComponentPropsWithRef<'div'> & {
70
+ maxVisible?: number;
71
+ slider?: boolean;
72
+ animated?: boolean;
73
+ direction?: 'horizontal' | 'vertical';
74
+ hideWhenSingle?: boolean;
75
+ children?: ReactNode;
76
+ };
77
+ export type GalleryThumbnailsPreviousProps = ComponentPropsWithRef<'button'> & {
78
+ children?: ReactNode;
79
+ step?: number;
80
+ };
81
+ export type GalleryThumbnailsNextProps = ComponentPropsWithRef<'button'> & {
82
+ children?: ReactNode;
83
+ step?: number;
84
+ };
85
+ export type GalleryThumbnailProps = ComponentPropsWithRef<'button'> & {
86
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none';
87
+ aspectRatio?: string;
88
+ };
89
+ export type GalleryOverflowCountProps = ComponentPropsWithRef<'button'> & {
90
+ template?: string;
91
+ ariaLabel?: string;
92
+ };
93
+ export type GalleryMediaProps = ComponentPropsWithRef<'div'> & {
94
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none';
95
+ aspectRatio?: string;
96
+ videoAutoPlay?: boolean;
97
+ videoControls?: boolean;
98
+ clickOpensFullscreen?: boolean;
99
+ };
100
+ export type GalleryZoomProps = ComponentPropsWithRef<'div'> & {
101
+ magnification?: number;
102
+ lensSize?: number;
103
+ };
104
+ export type GalleryZoomLensProps = ComponentPropsWithRef<'div'>;
105
+ export type GalleryZoomResultProps = ComponentPropsWithRef<'div'>;
106
+ export type GalleryFullscreenProps = ComponentPropsWithRef<'div'> & {
107
+ children?: ReactNode;
108
+ };
109
+ export type GalleryFullscreenTitleProps = ComponentPropsWithRef<'h2'>;
110
+ export type GalleryFullscreenCloseProps = ComponentPropsWithRef<'button'> & {
111
+ children?: ReactNode;
112
+ };
113
+ export type GalleryPreviousProps = ComponentPropsWithRef<'button'> & {
114
+ children?: ReactNode;
115
+ wrap?: boolean;
116
+ };
117
+ export type GalleryNextProps = ComponentPropsWithRef<'button'> & {
118
+ children?: ReactNode;
119
+ wrap?: boolean;
120
+ };
121
+ export type GalleryMediaCountProps = ComponentPropsWithRef<'span'> & {
122
+ template?: string;
123
+ };
124
+ export declare const GalleryItemContext: import("react").Context<GalleryItemContextValue | null>;
125
+ export declare function useGallery(): GalleryContextValue;
126
+ export declare function useGalleryItem(): GalleryItemContextValue;
127
+ export declare const GalleryRootDefinition: ComponentDefinition<GalleryRootProps>;
128
+ export declare const GalleryMainMediaDefinition: ComponentDefinition<GalleryMainMediaProps>;
129
+ export declare const GalleryThumbnailsDefinition: ComponentDefinition<GalleryThumbnailsProps>;
130
+ export declare const GalleryThumbnailsPreviousDefinition: ComponentDefinition<GalleryThumbnailsPreviousProps>;
131
+ export declare const GalleryThumbnailsNextDefinition: ComponentDefinition<GalleryThumbnailsNextProps>;
132
+ export declare const GalleryThumbnailDefinition: ComponentDefinition<GalleryThumbnailProps>;
133
+ export declare const GalleryOverflowCountDefinition: ComponentDefinition<GalleryOverflowCountProps>;
134
+ export declare const GalleryMediaDefinition: ComponentDefinition<GalleryMediaProps>;
135
+ export declare const GalleryZoomDefinition: ComponentDefinition<GalleryZoomProps>;
136
+ export declare const GalleryZoomLensDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
137
+ export declare const GalleryZoomResultDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
138
+ export declare const GalleryFullscreenDefinition: ComponentDefinition<GalleryFullscreenProps>;
139
+ export declare const GalleryFullscreenTitleDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>>;
140
+ export declare const GalleryFullscreenCloseDefinition: ComponentDefinition<GalleryFullscreenCloseProps>;
141
+ export declare const GalleryPreviousDefinition: ComponentDefinition<GalleryPreviousProps>;
142
+ export declare const GalleryNextDefinition: ComponentDefinition<GalleryNextProps>;
143
+ export declare const GalleryMediaCountDefinition: ComponentDefinition<GalleryMediaCountProps>;
144
+ export declare function GalleryRoot({ media, defaultIndex, selectOnHover, thumbnailOpensFullscreen, children, ...props }: GalleryRootProps): import("react/jsx-runtime").JSX.Element;
145
+ export declare function GalleryMainMedia({ objectFit, aspectRatio, videoAutoPlay, videoControls, clickOpensFullscreen, style, ...props }: GalleryMainMediaProps): import("react/jsx-runtime").JSX.Element;
146
+ export declare function GalleryThumbnails({ hideWhenSingle, ...rest }: GalleryThumbnailsProps): import("react/jsx-runtime").JSX.Element | null;
147
+ export declare function GalleryThumbnail({ objectFit, aspectRatio, style, ...props }: GalleryThumbnailProps): import("react/jsx-runtime").JSX.Element;
148
+ export declare function GalleryOverflowCount({ template, ariaLabel, ...props }: GalleryOverflowCountProps): import("react/jsx-runtime").JSX.Element | null;
149
+ export declare function GalleryMedia({ objectFit, aspectRatio, videoAutoPlay, videoControls, clickOpensFullscreen, style, ...props }: GalleryMediaProps): import("react/jsx-runtime").JSX.Element;
150
+ export declare function GalleryZoom({ magnification, lensSize, children, ...props }: GalleryZoomProps): import("react/jsx-runtime").JSX.Element;
151
+ export declare function GalleryZoomLens({ style, ...props }: GalleryZoomLensProps): import("react/jsx-runtime").JSX.Element | null;
152
+ export declare function GalleryZoomResult({ style, ...props }: GalleryZoomResultProps): import("react/jsx-runtime").JSX.Element;
153
+ export declare function GalleryFullscreen({ children, ...props }: GalleryFullscreenProps): import("react/jsx-runtime").JSX.Element;
154
+ export declare function GalleryFullscreenTitle({ children, ...props }: GalleryFullscreenTitleProps): import("react/jsx-runtime").JSX.Element;
155
+ export declare function GalleryFullscreenClose({ children, ...props }: GalleryFullscreenCloseProps): import("react/jsx-runtime").JSX.Element;
156
+ export declare function GalleryPrevious({ children, wrap, ...props }: GalleryPreviousProps): import("react/jsx-runtime").JSX.Element;
157
+ export declare function GalleryNext({ children, wrap, ...props }: GalleryNextProps): import("react/jsx-runtime").JSX.Element;
158
+ export declare function GalleryThumbnailsPrevious({ step, children, ...props }: GalleryThumbnailsPreviousProps): import("react/jsx-runtime").JSX.Element;
159
+ export declare function GalleryThumbnailsNext({ step, children, ...props }: GalleryThumbnailsNextProps): import("react/jsx-runtime").JSX.Element;
160
+ export declare function GalleryMediaCount({ template, ...props }: GalleryMediaCountProps): import("react/jsx-runtime").JSX.Element;
161
+ export declare const Gallery: {
162
+ Root: typeof GalleryRoot;
163
+ MainMedia: typeof GalleryMainMedia;
164
+ Media: typeof GalleryMedia;
165
+ Thumbnails: typeof GalleryThumbnails;
166
+ ThumbnailsPrevious: typeof GalleryThumbnailsPrevious;
167
+ ThumbnailsNext: typeof GalleryThumbnailsNext;
168
+ Thumbnail: typeof GalleryThumbnail;
169
+ OverflowCount: typeof GalleryOverflowCount;
170
+ Zoom: typeof GalleryZoom;
171
+ ZoomLens: typeof GalleryZoomLens;
172
+ ZoomResult: typeof GalleryZoomResult;
173
+ Fullscreen: typeof GalleryFullscreen;
174
+ FullscreenTitle: typeof GalleryFullscreenTitle;
175
+ FullscreenClose: typeof GalleryFullscreenClose;
176
+ Previous: typeof GalleryPrevious;
177
+ Next: typeof GalleryNext;
178
+ MediaCount: typeof GalleryMediaCount;
179
+ };
180
+ //#endregion
181
+ //# sourceMappingURL=gallery.d.ts.map