@liquidcommerce/elements-sdk 2.6.0-beta.10 → 2.6.0-beta.101

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 (262) hide show
  1. package/README.md +99 -2518
  2. package/dist/index.checkout.esm.js +17850 -0
  3. package/dist/index.esm.js +25821 -20795
  4. package/dist/ssr-stub.checkout.esm.js +18 -0
  5. package/dist/ssr-stub.esm.js +270 -0
  6. package/dist/types/auto-initialize/checkout.d.ts +2 -0
  7. package/dist/types/auto-initialize/shared-utils.d.ts +50 -0
  8. package/dist/types/{elements-base-client.d.ts → clients/base.d.ts} +15 -2
  9. package/dist/types/clients/builder.d.ts +3 -0
  10. package/dist/types/clients/checkout.d.ts +6 -0
  11. package/dist/types/{elements-client-helper.d.ts → clients/helpers.d.ts} +2 -1
  12. package/dist/types/clients/main.d.ts +3 -0
  13. package/dist/types/constants/core.constant.d.ts +2 -6
  14. package/dist/types/core/a11y/announcer.service.d.ts +16 -0
  15. package/dist/types/core/a11y/focus-manager.service.d.ts +21 -0
  16. package/dist/types/core/a11y/focusable.d.ts +5 -0
  17. package/dist/types/core/a11y/glyph-button.d.ts +8 -0
  18. package/dist/types/core/a11y/index.d.ts +5 -0
  19. package/dist/types/core/a11y/single-select.d.ts +16 -0
  20. package/dist/types/core/api/api-client.service.d.ts +19 -18
  21. package/dist/types/core/api/api-result.d.ts +19 -0
  22. package/dist/types/core/api/auth-client.service.d.ts +37 -13
  23. package/dist/types/core/api/http-client.service.d.ts +0 -8
  24. package/dist/types/core/base-component.service.d.ts +4 -1
  25. package/dist/types/core/client/actions/base-action.service.d.ts +22 -0
  26. package/dist/types/core/client/actions/client-address-action.service.d.ts +18 -0
  27. package/dist/types/core/client/actions/client-cart-action.service.d.ts +38 -0
  28. package/dist/types/core/client/actions/client-checkout-action.service.d.ts +69 -0
  29. package/dist/types/core/client/actions/client-product-action.service.d.ts +15 -0
  30. package/dist/types/core/client/client-action.service.d.ts +6 -74
  31. package/dist/types/core/client/client-config.service.d.ts +8 -5
  32. package/dist/types/core/google-tag-manager.service.d.ts +3 -1
  33. package/dist/types/core/logger/logger.service.d.ts +1 -1
  34. package/dist/types/core/pubsub/interfaces/address.interface.d.ts +3 -0
  35. package/dist/types/core/pubsub/interfaces/cart.interface.d.ts +1 -1
  36. package/dist/types/core/pubsub/interfaces/checkout.interface.d.ts +36 -51
  37. package/dist/types/core/pubsub/interfaces/core.interface.d.ts +11 -6
  38. package/dist/types/core/pubsub/pubsub.service.d.ts +1 -2
  39. package/dist/types/core/singleton-manager.service.d.ts +12 -8
  40. package/dist/types/core/store/interfaces/cart.interface.d.ts +2 -3
  41. package/dist/types/core/store/interfaces/checkout.interface.d.ts +18 -108
  42. package/dist/types/core/store/interfaces/core.interface.d.ts +12 -2
  43. package/dist/types/core/store/interfaces/metadata.interface.d.ts +11 -0
  44. package/dist/types/core/store/interfaces/product-list.interface.d.ts +30 -0
  45. package/dist/types/core/store/interfaces/product.interface.d.ts +1 -0
  46. package/dist/types/core/store/store.constant.d.ts +5 -0
  47. package/dist/types/core/store/store.service.d.ts +1 -0
  48. package/dist/types/core/telemetry/telemetry.service.d.ts +1 -0
  49. package/dist/types/enums/core.enum.d.ts +39 -1
  50. package/dist/types/enums/index.d.ts +0 -1
  51. package/dist/types/index.checkout.d.ts +8 -0
  52. package/dist/types/index.checkout.umd.d.ts +4 -0
  53. package/dist/types/index.d.ts +8 -3
  54. package/dist/types/interfaces/api/cart.interface.d.ts +12 -7
  55. package/dist/types/interfaces/api/checkout.interface.d.ts +239 -0
  56. package/dist/types/interfaces/api/index.d.ts +5 -0
  57. package/dist/types/interfaces/api/product-list.interface.d.ts +14 -5
  58. package/dist/types/interfaces/api/product.interface.d.ts +10 -4
  59. package/dist/types/interfaces/client.interface.d.ts +72 -0
  60. package/dist/types/interfaces/component.interface.d.ts +7 -0
  61. package/dist/types/interfaces/config.interface.d.ts +40 -0
  62. package/dist/types/interfaces/configs/address.interface.d.ts +1 -1
  63. package/dist/types/interfaces/configs/cart.interface.d.ts +1 -1
  64. package/dist/types/interfaces/configs/checkout.interface.d.ts +2 -1
  65. package/dist/types/interfaces/configs/global.interface.d.ts +9 -3
  66. package/dist/types/interfaces/configs/index.d.ts +1 -0
  67. package/dist/types/interfaces/configs/product-list.interface.d.ts +49 -0
  68. package/dist/types/interfaces/configs/product.interface.d.ts +3 -1
  69. package/dist/types/interfaces/injection.interface.d.ts +49 -0
  70. package/dist/types/modules/address/address-display.component.d.ts +3 -1
  71. package/dist/types/modules/address/address-input.component.d.ts +10 -1
  72. package/dist/types/modules/address/address.command.d.ts +2 -1
  73. package/dist/types/modules/address/styles/register-styles.d.ts +1 -0
  74. package/dist/types/modules/cart/cart.commands.d.ts +4 -4
  75. package/dist/types/modules/cart/components/cart-body.component.d.ts +1 -0
  76. package/dist/types/modules/cart/components/cart-item-quantity-price.component.d.ts +5 -0
  77. package/dist/types/modules/cart/components/cart-item.component.d.ts +6 -0
  78. package/dist/types/modules/cart/styles/register-styles.d.ts +1 -0
  79. package/dist/types/modules/checkout/checkout.commands.d.ts +27 -10
  80. package/dist/types/modules/checkout/checkout.component.d.ts +2 -0
  81. package/dist/types/modules/checkout/components/checkout-billing.component.d.ts +2 -2
  82. package/dist/types/modules/checkout/components/checkout-completed.component.d.ts +5 -0
  83. package/dist/types/modules/checkout/components/checkout-header.component.d.ts +1 -0
  84. package/dist/types/modules/checkout/components/checkout-item-quantity.component.d.ts +4 -0
  85. package/dist/types/modules/checkout/components/checkout-items.component.d.ts +4 -3
  86. package/dist/types/modules/checkout/components/checkout-payment.component.d.ts +2 -1
  87. package/dist/types/modules/checkout/components/checkout-place-order-button.component.d.ts +2 -0
  88. package/dist/types/modules/checkout/components/checkout-presale-countdown.component.d.ts +15 -1
  89. package/dist/types/modules/checkout/components/checkout-presale-expired.component.d.ts +7 -1
  90. package/dist/types/modules/checkout/components/checkout-stripe-form.component.d.ts +2 -1
  91. package/dist/types/modules/checkout/components/checkout-tips.component.d.ts +2 -2
  92. package/dist/types/modules/checkout/components/promo-pc-gc.component.d.ts +0 -2
  93. package/dist/types/modules/checkout/constant.d.ts +3 -0
  94. package/dist/types/modules/checkout/styles/register-styles.d.ts +1 -0
  95. package/dist/types/modules/product/components/components.d.ts +6 -1
  96. package/dist/types/modules/product/components/product-add-to-cart-section.component.d.ts +7 -1
  97. package/dist/types/modules/product/components/product-description.component.d.ts +1 -0
  98. package/dist/types/modules/product/components/product-drawer.component.d.ts +6 -0
  99. package/dist/types/modules/product/components/product-image-carousel.component.d.ts +5 -0
  100. package/dist/types/modules/product/components/product-options.component.d.ts +2 -1
  101. package/dist/types/modules/product/components/product-retailers-carousel.component.d.ts +4 -0
  102. package/dist/types/modules/product/components/product-retailers-popup-list.component.d.ts +10 -2
  103. package/dist/types/modules/product/product.commands.d.ts +5 -5
  104. package/dist/types/modules/product/styles/register-styles.d.ts +1 -0
  105. package/dist/types/modules/product-list/components/card-components/index.d.ts +5 -0
  106. package/dist/types/modules/product-list/components/card-components/product-badge.d.ts +9 -0
  107. package/dist/types/modules/product-list/components/card-components/product-button.d.ts +11 -0
  108. package/dist/types/modules/product-list/components/card-components/product-price-and-personalization.d.ts +14 -0
  109. package/dist/types/modules/product-list/components/card-components/product-quantity-selector.d.ts +11 -0
  110. package/dist/types/modules/product-list/components/card-components/product-sizes-list.d.ts +14 -0
  111. package/dist/types/modules/product-list/components/filter-components/index.d.ts +7 -0
  112. package/dist/types/modules/product-list/components/filter-components/product-list-apply-filter-button.d.ts +1 -0
  113. package/dist/types/modules/product-list/components/filter-components/product-list-chip.d.ts +5 -0
  114. package/dist/types/modules/product-list/components/filter-components/product-list-filters-chips.d.ts +13 -0
  115. package/dist/types/modules/product-list/components/filter-components/product-list-fulfillment-filter.d.ts +15 -0
  116. package/dist/types/modules/product-list/components/{product-list-filters-subcomponents/product-list-price-filter.components.d.ts → filter-components/product-list-price-filter.d.ts} +1 -1
  117. package/dist/types/modules/product-list/components/filter-components/product-list-toggle-filters.d.ts +7 -0
  118. package/dist/types/modules/product-list/components/index.d.ts +6 -2
  119. package/dist/types/modules/product-list/components/product-list-card-loading.component.d.ts +3 -1
  120. package/dist/types/modules/product-list/components/product-list-card.component.d.ts +36 -31
  121. package/dist/types/modules/product-list/components/product-list-engraving.component.d.ts +12 -0
  122. package/dist/types/modules/product-list/components/product-list-filters.component.d.ts +56 -36
  123. package/dist/types/modules/product-list/components/product-list-product-engraving-lines.component.d.ts +22 -0
  124. package/dist/types/modules/product-list/components/product-list-product-pre-cart.component.d.ts +53 -0
  125. package/dist/types/modules/product-list/components/product-list-search.component.d.ts +25 -0
  126. package/dist/types/modules/product-list/product-list-filter.utils.d.ts +8 -0
  127. package/dist/types/modules/product-list/product-list-query-params.utils.d.ts +3 -0
  128. package/dist/types/modules/product-list/product-list.commands.d.ts +22 -7
  129. package/dist/types/modules/product-list/product-list.component.d.ts +17 -47
  130. package/dist/types/modules/product-list/product-list.constants.d.ts +38 -0
  131. package/dist/types/modules/product-list/product-list.interface.d.ts +16 -28
  132. package/dist/types/modules/product-list/styles/product-list-card.style.d.ts +1 -0
  133. package/dist/types/modules/product-list/styles/product-list-filters.style.d.ts +1 -0
  134. package/dist/types/modules/product-list/styles/register-styles.d.ts +1 -0
  135. package/dist/types/modules/theme-provider/constants/component-groupings.d.ts +1 -0
  136. package/dist/types/modules/theme-provider/constants/css-variable-mappings.d.ts +1 -1
  137. package/dist/types/modules/theme-provider/services/style-registry.service.d.ts +16 -0
  138. package/dist/types/modules/theme-provider/services/stylesheet-generator.service.d.ts +0 -1
  139. package/dist/types/modules/theme-provider/styles/register-styles.d.ts +1 -0
  140. package/dist/types/modules/theme-provider/theme-provider.service.d.ts +2 -2
  141. package/dist/types/modules/ui-components/alert/alert.component.d.ts +1 -1
  142. package/dist/types/modules/ui-components/buttons/buttons-open-cart.component.d.ts +5 -0
  143. package/dist/types/modules/ui-components/drawer/drawer.component.d.ts +15 -0
  144. package/dist/types/modules/ui-components/engraving/engraving-form.component.d.ts +8 -1
  145. package/dist/types/modules/ui-components/engraving/engraving-view.component.d.ts +7 -1
  146. package/dist/types/modules/ui-components/input/index.d.ts +0 -1
  147. package/dist/types/modules/ui-components/input/input.component.d.ts +14 -1
  148. package/dist/types/modules/ui-components/lce-element/lce-element.component.d.ts +2 -1
  149. package/dist/types/modules/ui-components/promo-code-ticker/promo-code-ticker.component.d.ts +1 -1
  150. package/dist/types/modules/ui-components/ui.commands.d.ts +7 -1
  151. package/dist/types/ssr/stub.checkout.d.ts +6 -0
  152. package/dist/types/ssr/stub.d.ts +10 -0
  153. package/dist/types/static/icon/arrow-right.icon.d.ts +1 -1
  154. package/dist/types/static/icon/bag.icon.d.ts +1 -1
  155. package/dist/types/static/icon/check.icon.d.ts +2 -0
  156. package/dist/types/static/icon/checkbox.icon.d.ts +1 -1
  157. package/dist/types/static/icon/chevron-down.icon.d.ts +1 -1
  158. package/dist/types/static/icon/chevron-left.icon.d.ts +1 -1
  159. package/dist/types/static/icon/chevron-up.icon.d.ts +1 -1
  160. package/dist/types/static/icon/close.icon.d.ts +1 -1
  161. package/dist/types/static/icon/error-info.icon.d.ts +1 -1
  162. package/dist/types/static/icon/filter.icon.d.ts +1 -1
  163. package/dist/types/static/icon/icon.a11y.d.ts +1 -0
  164. package/dist/types/static/icon/icon.types.d.ts +1 -0
  165. package/dist/types/static/icon/index.d.ts +2 -0
  166. package/dist/types/static/icon/info.icon.d.ts +1 -1
  167. package/dist/types/static/icon/loading-spinner.icon.d.ts +1 -1
  168. package/dist/types/static/icon/search.icon.d.ts +1 -1
  169. package/dist/types/static/icon/success.icon.d.ts +1 -1
  170. package/dist/types/static/icon/trash.icon.d.ts +1 -1
  171. package/dist/types/static/icon/warning.icon.d.ts +1 -1
  172. package/dist/types/utils/dom-compat.d.ts +2 -0
  173. package/dist/types/utils/format.d.ts +5 -14
  174. package/dist/types/utils/image-bg-removal.d.ts +3 -0
  175. package/dist/types/utils/product-selection.d.ts +16 -0
  176. package/dist/types/utils/product.d.ts +15 -0
  177. package/dist/types/utils/timezone.d.ts +6 -0
  178. package/docs/v1/README.md +213 -0
  179. package/docs/v1/api/actions/address-actions.md +286 -0
  180. package/docs/v1/api/actions/cart-actions.md +364 -0
  181. package/docs/v1/api/actions/checkout-actions.md +527 -0
  182. package/docs/v1/api/actions/product-actions.md +204 -0
  183. package/docs/v1/api/client.md +596 -0
  184. package/docs/v1/api/configuration.md +555 -0
  185. package/docs/v1/api/injection-methods.md +292 -0
  186. package/docs/v1/api/typescript-types.md +423 -0
  187. package/docs/v1/api/ui-helpers.md +200 -0
  188. package/docs/v1/examples/advanced-patterns.md +199 -0
  189. package/docs/v1/examples/checkout-flow.md +90 -0
  190. package/docs/v1/examples/custom-theming.md +63 -0
  191. package/docs/v1/examples/multi-product-page.md +90 -0
  192. package/docs/v1/examples/simple-product-page.md +89 -0
  193. package/docs/v1/getting-started/concepts.md +521 -0
  194. package/docs/v1/getting-started/installation.md +349 -0
  195. package/docs/v1/getting-started/quick-start.md +410 -0
  196. package/docs/v1/guides/accessibility.md +173 -0
  197. package/docs/v1/guides/address-component.md +435 -0
  198. package/docs/v1/guides/best-practices.md +365 -0
  199. package/docs/v1/guides/cart-component.md +757 -0
  200. package/docs/v1/guides/checkout-component.md +670 -0
  201. package/docs/v1/guides/events.md +939 -0
  202. package/docs/v1/guides/product-component.md +735 -0
  203. package/docs/v1/guides/product-list-component.md +630 -0
  204. package/docs/v1/guides/theming.md +228 -0
  205. package/docs/v1/integration/angular.md +39 -0
  206. package/docs/v1/integration/laravel.md +41 -0
  207. package/docs/v1/integration/nextjs.md +69 -0
  208. package/docs/v1/integration/proxy-setup.md +106 -0
  209. package/docs/v1/integration/react.md +64 -0
  210. package/docs/v1/integration/vanilla-js.md +84 -0
  211. package/docs/v1/integration/vue.md +58 -0
  212. package/docs/v1/reference/analytics.md +108 -0
  213. package/docs/v1/reference/browser-support.md +47 -0
  214. package/docs/v1/reference/error-handling.md +83 -0
  215. package/docs/v1/reference/performance.md +52 -0
  216. package/docs/v1/reference/telemetry.md +85 -0
  217. package/docs/v1/reference/troubleshooting.md +135 -0
  218. package/package.json +69 -44
  219. package/dist/types/elements-builder-client.d.ts +0 -2
  220. package/dist/types/elements-client.d.ts +0 -2
  221. package/dist/types/enums/cloud.enum.d.ts +0 -97
  222. package/dist/types/interfaces/cloud/checkout.interface.d.ts +0 -218
  223. package/dist/types/interfaces/cloud/core.interface.d.ts +0 -22
  224. package/dist/types/interfaces/cloud/index.d.ts +0 -3
  225. package/dist/types/interfaces/cloud/retailer.interface.d.ts +0 -67
  226. package/dist/types/interfaces/cloud/user.interface.d.ts +0 -100
  227. package/dist/types/interfaces/core.interface.d.ts +0 -111
  228. package/dist/types/modules/checkout/components/checkout.type.d.ts +0 -4
  229. package/dist/types/modules/product-list/components/product-list-filters-subcomponents/index.d.ts +0 -6
  230. package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-apply-filter-button.component.d.ts +0 -1
  231. package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-delivery-options-filter.components.d.ts +0 -16
  232. package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-search.component.d.ts +0 -16
  233. package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-toggle-filters.components.d.ts +0 -18
  234. package/dist/types/modules/theme-provider/styles/address/index.d.ts +0 -1
  235. package/dist/types/modules/theme-provider/styles/cart/index.d.ts +0 -1
  236. package/dist/types/modules/theme-provider/styles/checkout/index.d.ts +0 -1
  237. package/dist/types/modules/theme-provider/styles/product/index.d.ts +0 -3
  238. package/dist/types/modules/theme-provider/styles/product-list/index.d.ts +0 -1
  239. package/dist/types/modules/theme-provider/styles/ui/index.d.ts +0 -3
  240. package/dist/types/modules/ui-components/input/birthdate-input.component.d.ts +0 -53
  241. package/dist/types/utils/helper.d.ts +0 -28
  242. package/docs/ACTIONS.md +0 -1300
  243. package/docs/BROWSER_SUPPORT.md +0 -279
  244. package/docs/CONFIGURATION.md +0 -853
  245. package/docs/DOCUMENTATION_INDEX.md +0 -311
  246. package/docs/EVENTS.md +0 -798
  247. package/docs/PROXY.md +0 -228
  248. package/docs/THEMING.md +0 -592
  249. package/docs/TROUBLESHOOTING.md +0 -793
  250. package/umd/elements.js +0 -1
  251. /package/dist/types/{auto-initialize.d.ts → auto-initialize/main.d.ts} +0 -0
  252. /package/dist/types/modules/{theme-provider/styles/address → address/styles}/address.style.d.ts +0 -0
  253. /package/dist/types/modules/{theme-provider/styles/cart → cart/styles}/cart.style.d.ts +0 -0
  254. /package/dist/types/modules/{theme-provider/styles/checkout → checkout/styles}/checkout.style.d.ts +0 -0
  255. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/image-carousel.style.d.ts +0 -0
  256. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/product.style.d.ts +0 -0
  257. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/retailers.style.d.ts +0 -0
  258. /package/dist/types/modules/product-list/components/{product-list-filters-subcomponents/product-list-checkbox-filter.components.d.ts → filter-components/product-list-checkbox-filter.d.ts} +0 -0
  259. /package/dist/types/modules/{theme-provider/styles/product-list → product-list/styles}/product-list.style.d.ts +0 -0
  260. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/drawer.style.d.ts +0 -0
  261. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/loading.style.d.ts +0 -0
  262. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/promo-code-ticker.style.d.ts +0 -0
@@ -0,0 +1,555 @@
1
+ # Configuration Reference
2
+
3
+ Complete reference for all configuration options available in the Elements SDK.
4
+
5
+ ## Client Configuration
6
+
7
+ ### ILiquidCommerceElementsConfig
8
+
9
+ Top-level configuration passed to `Elements()` or `ElementsBuilder()`.
10
+
11
+ ```typescript
12
+ interface ILiquidCommerceElementsConfig {
13
+ env?: ElementsEnv;
14
+ promoTicker?: IPromoTicker[];
15
+ customTheme?: IClientCustomThemeConfig;
16
+ debugMode?: DebugMode;
17
+ checkout?: ILiquidCommerceElementsCheckoutConfig;
18
+ proxy?: IElementsProxyConfig;
19
+ development?: ILiquidCommerceElementsDevelopmentConfig;
20
+ }
21
+ ```
22
+
23
+ | Property | Type | Required | Description |
24
+ |----------|------|----------|-------------|
25
+ | `env` | `'development' \| 'staging' \| 'production'` | No | API environment |
26
+ | `promoTicker` | `IPromoTicker[]` | No | Promotional ticker configurations |
27
+ | `customTheme` | `IClientCustomThemeConfig` | No | Theme overrides for all components |
28
+ | `debugMode` | `'none' \| 'console' \| 'panel'` | No | Debug output mode |
29
+ | `checkout` | `ILiquidCommerceElementsCheckoutConfig` | No | Checkout behavior settings |
30
+ | `proxy` | `IElementsProxyConfig` | No | Proxy configuration for API requests |
31
+ | `development` | `ILiquidCommerceElementsDevelopmentConfig` | No | Development/testing options |
32
+
33
+ > **Note:** `debugMode` (`'console'` or `'panel'`) is **ignored in production** -- it is forced off when `env` is `'production'`. It only takes effect in non-production environments (`'development'` / `'staging'`).
34
+
35
+ ---
36
+
37
+ ## Theme Configuration
38
+
39
+ ### IClientCustomThemeConfig
40
+
41
+ Override default theme settings for any component.
42
+
43
+ ```typescript
44
+ interface IClientCustomThemeConfig {
45
+ global?: UpdateComponentGlobalConfigs;
46
+ product?: UpdateProductComponent;
47
+ address?: UpdateAddressComponent;
48
+ cart?: UpdateCartComponent;
49
+ checkout?: UpdateCheckoutComponent;
50
+ productList?: UpdateProductListComponent;
51
+ }
52
+ ```
53
+
54
+ All theme properties are deeply partial -- you only need to specify the values you want to override.
55
+
56
+ ---
57
+
58
+ ### Global Theme
59
+
60
+ #### IGlobalTheme
61
+
62
+ ```typescript
63
+ interface IGlobalTheme {
64
+ buttonCornerRadius: string;
65
+ cardCornerRadius: string;
66
+ headingFont: IFontFamily;
67
+ paragraphFont: IFontFamily;
68
+ primaryColor: string;
69
+ accentColor: string;
70
+ defaultTextColor: string;
71
+ selectedTextColor: string;
72
+ linkTextColor: string;
73
+ errorColor: string;
74
+ warningColor: string;
75
+ successColor: string;
76
+ drawerBackgroundColor: string;
77
+
78
+ /**
79
+ * Boundary color for form fields. Optional; defaults to a neutral that clears the 3:1
80
+ * contrast required by WCAG 1.4.11.
81
+ */
82
+ inputBorderColor?: string;
83
+
84
+ /** Keyboard focus ring color. Must reach 3:1 against the surface behind the control. */
85
+ focusRingColor?: string;
86
+ }
87
+ ```
88
+
89
+ > `inputBorderColor` and `focusRingColor` are optional. Omit them to keep the WCAG-compliant
90
+ > defaults, or set them explicitly to keep those two details on-brand — any value you supply is used
91
+ > as given, so check its contrast. See [Accessibility](../guides/accessibility.md).
92
+
93
+ | Property | Type | Description |
94
+ |----------|------|-------------|
95
+ | `buttonCornerRadius` | `string` | CSS border-radius for buttons (e.g., `'8px'`) |
96
+ | `cardCornerRadius` | `string` | CSS border-radius for cards |
97
+ | `headingFont` | `IFontFamily` | Font family and weights for headings |
98
+ | `paragraphFont` | `IFontFamily` | Font family and weights for body text |
99
+ | `primaryColor` | `string` | Primary brand color (buttons, links, highlights) |
100
+ | `accentColor` | `string` | Secondary accent color |
101
+ | `defaultTextColor` | `string` | Default text color |
102
+ | `selectedTextColor` | `string` | Text color for selected/active elements |
103
+ | `linkTextColor` | `string` | Color for links |
104
+ | `errorColor` | `string` | Color for error states |
105
+ | `warningColor` | `string` | Color for warning states |
106
+ | `successColor` | `string` | Color for success states |
107
+ | `drawerBackgroundColor` | `string` | Background color for drawer components |
108
+
109
+ #### IFontFamily
110
+
111
+ ```typescript
112
+ interface IFontFamily {
113
+ name: string; // Google Font name (e.g., 'Inter')
114
+ weights: number[]; // Font weights to load (e.g., [400, 500, 700])
115
+ }
116
+ ```
117
+
118
+ > **Note:** Only Google Fonts are supported -- `name` must be a valid Google Fonts family. `Poppins` is always injected as the default font family in addition to any fonts you specify. Font loading requires network access to `fonts.googleapis.com` and `fonts.gstatic.com`; if you run behind a CSP or proxy, allow these hosts.
119
+
120
+ #### IGlobalLayout
121
+
122
+ ```typescript
123
+ interface IGlobalLayout {
124
+ enablePersonalization: boolean;
125
+ personalizationText: string;
126
+ personalizationCardStyle: 'outlined' | 'filled';
127
+ allowPromoCodes: boolean;
128
+ inputFieldStyle: 'outlined' | 'filled';
129
+ enableOrderedProductSizes: boolean;
130
+ orderedProductSizes: string[];
131
+ showPoweredBy: boolean;
132
+ poweredByMode: 'light' | 'dark';
133
+ }
134
+ ```
135
+
136
+ | Property | Type | Description |
137
+ |----------|------|-------------|
138
+ | `enablePersonalization` | `boolean` | Enable engraving/personalization features |
139
+ | `personalizationText` | `string` | Label text for personalization option |
140
+ | `personalizationCardStyle` | `'outlined' \| 'filled'` | Visual style for personalization cards |
141
+ | `allowPromoCodes` | `boolean` | Show promo code inputs in cart/checkout |
142
+ | `inputFieldStyle` | `'outlined' \| 'filled'` | Visual style for input fields |
143
+ | `enableOrderedProductSizes` | `boolean` | Enable a fixed display order for product/PLC size selectors (defined by `orderedProductSizes`) instead of the default ordering |
144
+ | `orderedProductSizes` | `string[]` | Ordered list of size values controlling the sequence in which size selectors are rendered; changes trigger targeted rerenders of the affected size selectors |
145
+ | `showPoweredBy` | `boolean` | Show "Powered by LiquidCommerce" badge |
146
+ | `poweredByMode` | `'light' \| 'dark'` | Color mode for the powered-by badge |
147
+
148
+ > **Note:** `showPoweredBy` is a server/plan-controlled setting and **cannot** be overridden by hosts. Any value supplied via `customTheme` (or a later config update) is stripped and the server value is restored. Only `poweredByMode` (`'light' \| 'dark'`) is host-overridable.
149
+
150
+ **Example:**
151
+
152
+ ```javascript
153
+ customTheme: {
154
+ global: {
155
+ theme: {
156
+ primaryColor: '#007bff',
157
+ buttonCornerRadius: '8px',
158
+ headingFont: { name: 'Inter', weights: [400, 600, 700] }
159
+ },
160
+ layout: {
161
+ allowPromoCodes: true,
162
+ inputFieldStyle: 'outlined'
163
+ }
164
+ }
165
+ }
166
+ ```
167
+
168
+ ---
169
+
170
+ ### Product Theme
171
+
172
+ #### IProductComponent
173
+
174
+ ```typescript
175
+ interface IProductComponent {
176
+ theme: IProductTheme;
177
+ layout: IProductLayout;
178
+ }
179
+ ```
180
+
181
+ #### IProductTheme
182
+
183
+ ```typescript
184
+ interface IProductTheme {
185
+ backgroundColor: string;
186
+ }
187
+ ```
188
+
189
+ #### IProductLayout
190
+
191
+ ```typescript
192
+ interface IProductLayout {
193
+ showImages: boolean;
194
+ showOnlyMainImage: boolean;
195
+ showTitle: boolean;
196
+ showDescription: boolean;
197
+ descriptionPosition: 'above' | 'below';
198
+ showQuantityCounter: boolean;
199
+ showOffHours: boolean;
200
+ quantityCounterStyle: 'outlined' | 'ghost';
201
+ fulfillmentDisplay: 'carousel' | 'popup';
202
+ enableShippingFulfillment: boolean;
203
+ enableOnDemandFulfillment: boolean;
204
+ addToCartButtonText: string;
205
+ addToCartButtonShowTotalPrice: boolean;
206
+ buyNowButtonText: string;
207
+ preSaleButtonText: string;
208
+ prioritizeEngraving: boolean;
209
+ noAvailabilityText: string;
210
+ }
211
+ ```
212
+
213
+ | Property | Type | Description |
214
+ |----------|------|-------------|
215
+ | `showImages` | `boolean` | Show product image carousel |
216
+ | `showOnlyMainImage` | `boolean` | Show only the main product image (no carousel) |
217
+ | `showTitle` | `boolean` | Show product title |
218
+ | `showDescription` | `boolean` | Show product description |
219
+ | `descriptionPosition` | `'above' \| 'below'` | Placement of the product description relative to other content |
220
+ | `showQuantityCounter` | `boolean` | Show quantity selector |
221
+ | `showOffHours` | `boolean` | Show off-hours messaging |
222
+ | `quantityCounterStyle` | `'outlined' \| 'ghost'` | Visual style for quantity counter |
223
+ | `fulfillmentDisplay` | `'carousel' \| 'popup'` | How to display fulfillment/retailer options |
224
+ | `enableShippingFulfillment` | `boolean` | Enable shipping fulfillment option |
225
+ | `enableOnDemandFulfillment` | `boolean` | Enable on-demand delivery option |
226
+ | `addToCartButtonText` | `string` | Custom text for add-to-cart button |
227
+ | `addToCartButtonShowTotalPrice` | `boolean` | Show total price on add-to-cart button |
228
+ | `buyNowButtonText` | `string` | Custom text for buy-now button |
229
+ | `preSaleButtonText` | `string` | Custom text for pre-sale button |
230
+ | `prioritizeEngraving` | `boolean` | Show engraving option before add-to-cart |
231
+ | `noAvailabilityText` | `string` | Text shown when product is unavailable |
232
+
233
+ **Example:**
234
+
235
+ ```javascript
236
+ customTheme: {
237
+ product: {
238
+ layout: {
239
+ fulfillmentDisplay: 'popup',
240
+ addToCartButtonText: 'Add to Bag',
241
+ showQuantityCounter: true
242
+ }
243
+ }
244
+ }
245
+ ```
246
+
247
+ ---
248
+
249
+ ### Cart Theme
250
+
251
+ #### ICartComponent
252
+
253
+ ```typescript
254
+ interface ICartComponent {
255
+ theme: ICartTheme;
256
+ layout: ICartLayout;
257
+ }
258
+ ```
259
+
260
+ #### ICartTheme
261
+
262
+ ```typescript
263
+ interface ICartTheme {
264
+ backgroundColor: string;
265
+ }
266
+ ```
267
+
268
+ #### ICartLayout
269
+
270
+ ```typescript
271
+ interface ICartLayout {
272
+ showQuantityCounter: boolean;
273
+ quantityCounterStyle: 'outlined' | 'ghost';
274
+ drawerHeaderText: string;
275
+ goToCheckoutButtonText: string;
276
+ }
277
+ ```
278
+
279
+ | Property | Type | Description |
280
+ |----------|------|-------------|
281
+ | `showQuantityCounter` | `boolean` | Show quantity counter in cart items |
282
+ | `quantityCounterStyle` | `'outlined' \| 'ghost'` | Visual style for quantity counter |
283
+ | `drawerHeaderText` | `string` | Header text for the cart drawer |
284
+ | `goToCheckoutButtonText` | `string` | Custom text for checkout button |
285
+
286
+ **Example:**
287
+
288
+ ```javascript
289
+ customTheme: {
290
+ cart: {
291
+ theme: { backgroundColor: '#f8f9fa' },
292
+ layout: {
293
+ drawerHeaderText: 'Your Bag',
294
+ goToCheckoutButtonText: 'Proceed to Checkout'
295
+ }
296
+ }
297
+ }
298
+ ```
299
+
300
+ ---
301
+
302
+ ### Checkout Theme
303
+
304
+ #### ICheckoutComponent
305
+
306
+ ```typescript
307
+ interface ICheckoutComponent {
308
+ theme: ICheckoutTheme;
309
+ layout: ICheckoutLayout;
310
+ }
311
+ ```
312
+
313
+ #### ICheckoutTheme
314
+
315
+ ```typescript
316
+ interface ICheckoutTheme {
317
+ backgroundColor: string;
318
+ }
319
+ ```
320
+
321
+ #### ICheckoutLayout
322
+
323
+ ```typescript
324
+ interface ICheckoutLayout {
325
+ emailOptIn: ICheckoutMarketingOptIn;
326
+ smsOptIn: ICheckoutMarketingOptIn;
327
+ allowGiftCards: boolean;
328
+ legalMessage: ICheckoutLegalMessage;
329
+ continueShoppingUrl: string;
330
+ exitUrl: string;
331
+ thankYouButtonText: string;
332
+ drawerHeaderText: string;
333
+ placeOrderButtonText: string;
334
+ checkoutCompleted: ICheckoutCompleted;
335
+ }
336
+ ```
337
+
338
+ | Property | Type | Description |
339
+ |----------|------|-------------|
340
+ | `emailOptIn` | `ICheckoutMarketingOptIn` | Email marketing opt-in configuration |
341
+ | `smsOptIn` | `ICheckoutMarketingOptIn` | SMS marketing opt-in configuration |
342
+ | `allowGiftCards` | `boolean` | Enable gift card payment option |
343
+ | `legalMessage` | `ICheckoutLegalMessage` | Legal/terms message configuration |
344
+ | `continueShoppingUrl` | `string` | URL for "Continue Shopping" link |
345
+ | `exitUrl` | `string` | URL for exit/back navigation |
346
+ | `thankYouButtonText` | `string` | Button text on order confirmation page |
347
+ | `drawerHeaderText` | `string` | Header text for checkout drawer |
348
+ | `placeOrderButtonText` | `string` | Custom text for place order button |
349
+ | `checkoutCompleted` | `ICheckoutCompleted` | Order confirmation page customization |
350
+
351
+ #### ICheckoutMarketingOptIn
352
+
353
+ ```typescript
354
+ interface ICheckoutMarketingOptIn {
355
+ show: boolean; // Show the opt-in checkbox
356
+ checked: boolean; // Default checked state
357
+ text: string; // Label text (supports rich HTML)
358
+ }
359
+ ```
360
+
361
+ #### ICheckoutLegalMessage
362
+
363
+ ```typescript
364
+ interface ICheckoutLegalMessage {
365
+ show: boolean; // Show the legal message
366
+ text: string; // Message content (supports rich HTML)
367
+ }
368
+ ```
369
+
370
+ #### ICheckoutCompleted
371
+
372
+ ```typescript
373
+ interface ICheckoutCompleted {
374
+ customLogo: string; // URL to custom logo image
375
+ customText: string | null; // Custom confirmation text
376
+ }
377
+ ```
378
+
379
+ **Example:**
380
+
381
+ ```javascript
382
+ customTheme: {
383
+ checkout: {
384
+ layout: {
385
+ placeOrderButtonText: 'Complete Purchase',
386
+ emailOptIn: { show: true, checked: false, text: 'Subscribe to our newsletter' },
387
+ legalMessage: { show: true, text: 'By placing this order, you agree to our <a href="/terms">Terms</a>.' }
388
+ }
389
+ }
390
+ }
391
+ ```
392
+
393
+ ---
394
+
395
+ ### Address Theme
396
+
397
+ #### IAddressComponent
398
+
399
+ ```typescript
400
+ interface IAddressComponent {
401
+ theme: IAddressTheme;
402
+ }
403
+ ```
404
+
405
+ #### IAddressTheme
406
+
407
+ ```typescript
408
+ interface IAddressTheme {
409
+ backgroundColor: string;
410
+ }
411
+ ```
412
+
413
+ ---
414
+
415
+ ### Product List Theme
416
+
417
+ #### IProductListComponent
418
+
419
+ ```typescript
420
+ interface IProductListComponent {
421
+ theme: IProductListTheme;
422
+ layout: IProductListLayout;
423
+ }
424
+ ```
425
+
426
+ Product list theme updates use a special structure where lists are keyed by slug:
427
+
428
+ ```typescript
429
+ interface UpdateProductListComponent {
430
+ theme?: { backgroundColor?: string };
431
+ layout?: {
432
+ lists?: Record<string, DeepPartial<IPLCList>>;
433
+ };
434
+ }
435
+ ```
436
+
437
+ **Example:**
438
+
439
+ ```javascript
440
+ customTheme: {
441
+ productList: {
442
+ theme: { backgroundColor: '#ffffff' },
443
+ layout: {
444
+ lists: {
445
+ 'best-sellers': {
446
+ productCard: {
447
+ style: 'card',
448
+ showPrice: true,
449
+ enablePreCart: true
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ }
456
+ ```
457
+
458
+ ---
459
+
460
+ ## Promo Ticker Configuration
461
+
462
+ ### IPromoTicker
463
+
464
+ ```typescript
465
+ interface IPromoTicker {
466
+ promoCode: string; // Promo code to auto-apply
467
+ text: string[]; // Array of messages to rotate
468
+ separator: string; // Separator between messages (e.g., '|')
469
+ activeFrom: string; // Start date in ISO 8601 UTC format
470
+ activeUntil: string; // End date in ISO 8601 UTC format
471
+ }
472
+ ```
473
+
474
+ **Example:**
475
+
476
+ ```javascript
477
+ promoTicker: [
478
+ {
479
+ promoCode: 'SUMMER20',
480
+ text: ['20% Off Summer Sale', 'Free Shipping on $50+'],
481
+ separator: '|',
482
+ activeFrom: '2026-06-01T00:00:00Z',
483
+ activeUntil: '2026-08-31T23:59:59Z'
484
+ }
485
+ ]
486
+ ```
487
+
488
+ ---
489
+
490
+ ## Checkout Configuration
491
+
492
+ ### ILiquidCommerceElementsCheckoutConfig
493
+
494
+ ```typescript
495
+ interface ILiquidCommerceElementsCheckoutConfig {
496
+ pageUrl?: string; // URL with {token} placeholder
497
+ }
498
+ ```
499
+
500
+ When `pageUrl` is set, the cart's checkout button redirects to this URL instead of opening the checkout drawer. Use `{token}` as a placeholder for the checkout session token.
501
+
502
+ **Example:**
503
+
504
+ ```javascript
505
+ checkout: {
506
+ pageUrl: 'https://yoursite.com/checkout?lce_checkout={token}'
507
+ }
508
+ ```
509
+
510
+ ---
511
+
512
+ ## Proxy Configuration
513
+
514
+ ### IElementsProxyConfig
515
+
516
+ ```typescript
517
+ interface IElementsProxyConfig {
518
+ baseUrl: string;
519
+ headers?: Record<string, string>;
520
+ }
521
+ ```
522
+
523
+ Route SDK API requests through your own server to avoid ad blockers.
524
+
525
+ See [Proxy Setup Guide](../integration/proxy-setup.md) for implementation details.
526
+
527
+ ---
528
+
529
+ ## Development Configuration
530
+
531
+ ### ILiquidCommerceElementsDevelopmentConfig
532
+
533
+ ```typescript
534
+ interface ILiquidCommerceElementsDevelopmentConfig {
535
+ customApiUrl?: string;
536
+ openShadowDom?: boolean;
537
+ mockMode?: boolean;
538
+ }
539
+ ```
540
+
541
+ | Property | Type | Description |
542
+ |----------|------|-------------|
543
+ | `customApiUrl` | `string` | Custom API URL for local or custom backend testing |
544
+ | `openShadowDom` | `boolean` | Use an OPEN (inspectable) Shadow DOM instead of the default closed mode, for debugging. Shadow DOM is always attached; forced off in production (default: `false`) |
545
+ | `mockMode` | `boolean` | Enable mock mode to receive mock data from the API; sends an `X-Liquid-Api-Mock-Mode` header with all requests (default: `false`) |
546
+
547
+ > To pre-select a payment method and skip the card form (in any environment), use [`actions.checkout.setSavedPaymentMethod`](./actions/checkout-actions.md#actionscheckoutsetsavedpaymentmethod) instead.
548
+
549
+ ---
550
+
551
+ ## See Also
552
+
553
+ - [Client API](./client.md) - Client initialization and usage
554
+ - [TypeScript Types](./typescript-types.md) - Complete type reference
555
+ - [Theming Guide](../guides/theming.md) - Theming best practices