@liquidcommerce/elements-sdk 2.6.0-beta.9 → 2.6.0-beta.91

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