@luxfi/core 5.2.2 → 5.2.5

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 (114) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +102 -102
  3. package/commerce/ui/store.ts +276 -276
  4. package/components/access-code-input.tsx +71 -71
  5. package/components/auth/auth-listener.tsx +29 -29
  6. package/components/auth/auth-token/clear-auth-token.tsx +12 -12
  7. package/components/auth/auth-token/set-auth-token.tsx +16 -16
  8. package/components/auth/common-auth-domains.ts +16 -16
  9. package/components/auth/login-panel.tsx +107 -107
  10. package/components/chat-widget.tsx +85 -85
  11. package/components/commerce/add-widget.tsx +20 -20
  12. package/components/commerce/bag-button.tsx +98 -98
  13. package/components/commerce/buy-button.tsx +34 -34
  14. package/components/commerce/checkout-button.tsx +129 -129
  15. package/components/commerce/checkout-panel/close-button.tsx +26 -26
  16. package/components/commerce/checkout-panel/dt-bag-carousel.tsx +36 -36
  17. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +66 -66
  18. package/components/commerce/checkout-panel/index.tsx +129 -129
  19. package/components/commerce/checkout-panel/links-row.tsx +21 -21
  20. package/components/commerce/checkout-panel/mb-checkout-panel.tsx +54 -54
  21. package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
  22. package/components/commerce/checkout-panel/thank-you.tsx +18 -18
  23. package/components/commerce/checkout-widget/const.ts +13 -13
  24. package/components/commerce/checkout-widget/index.tsx +192 -192
  25. package/components/commerce/checkout-widget/obs-string-set.ts +48 -48
  26. package/components/commerce/checkout-widget/use-anim-clx-set.ts +58 -58
  27. package/components/commerce/desktop-bag-popup.tsx +78 -78
  28. package/components/commerce/desktop-nav-menu.tsx +235 -0
  29. package/components/commerce/drawer/index.tsx +116 -116
  30. package/components/commerce/drawer/micro.tsx +144 -144
  31. package/components/commerce/drawer/shell.tsx +83 -83
  32. package/components/commerce/mobile-bag-drawer.tsx +51 -51
  33. package/components/commerce/mobile-login-button.tsx +101 -100
  34. package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
  35. package/components/commerce/mobile-nav-menu-ai.tsx +45 -98
  36. package/components/commerce/mobile-nav-menu-item.tsx +49 -45
  37. package/components/commerce/mobile-nav-menu.tsx +68 -80
  38. package/components/contact-dialog/contact-form.tsx +113 -113
  39. package/components/contact-dialog/disclaimer.tsx +13 -13
  40. package/components/contact-dialog/index.tsx +64 -64
  41. package/components/copyright.tsx +21 -21
  42. package/components/drawer-margin.tsx +25 -25
  43. package/components/footer.tsx +77 -77
  44. package/components/header/desktop.tsx +57 -54
  45. package/components/header/index.tsx +52 -40
  46. package/components/header/mobile.tsx +166 -165
  47. package/components/header/theme-toggle.tsx +26 -26
  48. package/components/icons/avatar.tsx +11 -11
  49. package/components/icons/bag-icon.tsx +10 -10
  50. package/components/icons/github.tsx +14 -14
  51. package/components/icons/index.tsx +43 -43
  52. package/components/icons/left-arrow.tsx +11 -11
  53. package/components/icons/lux-logo.tsx +10 -10
  54. package/components/icons/right-arrow.tsx +10 -10
  55. package/components/icons/search.tsx +12 -12
  56. package/components/icons/secure-delivery.tsx +13 -13
  57. package/components/icons/social-icon.tsx +35 -35
  58. package/components/icons/social-svg.css +3 -3
  59. package/components/icons/warpcast.tsx +58 -0
  60. package/components/icons/youtube-logo.tsx +59 -59
  61. package/components/index.ts +25 -25
  62. package/components/logo.tsx +81 -81
  63. package/components/main.tsx +27 -27
  64. package/components/mini-chart/index.tsx +7 -7
  65. package/components/mini-chart/mini-chart-props.ts +43 -43
  66. package/components/mini-chart/mini-chart.tsx +85 -85
  67. package/components/mini-chart/wrapper.tsx +23 -23
  68. package/components/not-found/index.tsx +28 -28
  69. package/components/not-found/not-found-content.mdx +5 -5
  70. package/components/scripts.tsx +24 -24
  71. package/environment.d.ts +5 -5
  72. package/next/analytics/fpixel.ts +15 -15
  73. package/next/analytics/google-analytics.ts +13 -13
  74. package/next/analytics/index.ts +3 -3
  75. package/next/analytics/pixel-analytics.tsx +54 -54
  76. package/next/font/get-app-router-font-classes.ts +12 -12
  77. package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
  78. package/next/font/next-font-desc.ts +27 -27
  79. package/next/font/pages-router-font-vars.tsx +18 -18
  80. package/next/head-metadata/from-next/metadata-types.ts +158 -158
  81. package/next/head-metadata/from-next/opengraph-types.ts +267 -267
  82. package/next/head-metadata/from-next/twitter-types.ts +92 -92
  83. package/next/head-metadata/index.tsx +208 -208
  84. package/next/middleware/determine-device-mw.ts +16 -16
  85. package/package.json +78 -78
  86. package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
  87. package/root-layout/index.tsx +112 -112
  88. package/server-actions/firebase-app.ts +14 -14
  89. package/server-actions/index.ts +5 -5
  90. package/server-actions/store-contact.ts +51 -51
  91. package/site-def/footer/community.tsx +67 -67
  92. package/site-def/footer/company.ts +37 -37
  93. package/site-def/footer/ecosystem.ts +37 -37
  94. package/site-def/footer/index.tsx +26 -26
  95. package/site-def/footer/legal.ts +28 -28
  96. package/site-def/footer/network.ts +45 -45
  97. package/site-def/footer/svg/warpcast-logo.svg +11 -11
  98. package/site-def/index.ts +2 -2
  99. package/site-def/main-nav.tsx +338 -292
  100. package/style/cart-animation.css +29 -29
  101. package/style/checkout-animation.css +23 -23
  102. package/style/drawer-handle-overrides.css +160 -160
  103. package/style/lux-colors.css +85 -85
  104. package/style/lux-global.css +30 -30
  105. package/tailwind/fontFamily.tailwind.lux.ts +18 -18
  106. package/tailwind/index.ts +2 -2
  107. package/tailwind/lux-tw-fonts.ts +39 -39
  108. package/tailwind/tailwind.config.lux-preset.ts +10 -10
  109. package/tsconfig.json +15 -15
  110. package/types/chatbot-config.ts +6 -6
  111. package/types/chatbot-suggested-question.ts +7 -7
  112. package/types/contact-info.ts +10 -10
  113. package/types/index.ts +4 -4
  114. package/types/site-def.ts +43 -43
@@ -1,277 +1,277 @@
1
- import {
2
- action,
3
- computed,
4
- makeObservable,
5
- observable,
6
- reaction,
7
- type IReactionDisposer,
8
- } from 'mobx'
9
-
10
- import type { CommerceService, LineItem, ObsLineItemRef } from '@hanzo/commerce/types'
11
-
12
- const logOn = false
13
- const log = (s: string) => {
14
- if (logOn) {
15
- console.log('COMMERCE_UI ' + s)
16
- }
17
- }
18
-
19
- type SnapPoint = number | string
20
-
21
- type SnapPoints = {
22
- full: SnapPoint
23
- micro: SnapPoint
24
- }
25
-
26
- type SnapPointsConfig = {
27
- mb: SnapPoints
28
- dt: SnapPoints
29
- }
30
-
31
- type DrawerState = 'closed' | 'micro' | 'full'
32
-
33
- interface RecentActivity extends ObsLineItemRef {
34
- quantityChanged(sku: string, val: number, prevVal: number): void
35
- }
36
-
37
- interface SelectAndBuy {
38
- showVariants: (skuPath: string) => void
39
- hideVariants: () => void
40
- get currentSkuPath(): string | undefined
41
- }
42
-
43
- interface CommerceDrawer {
44
-
45
- get open(): boolean
46
- get state(): DrawerState
47
- get closedByUser(): boolean
48
- setClosedByUser(b: boolean): void
49
- get modal(): boolean
50
- get points(): SnapPoint[]
51
- get activePoint(): SnapPoint | null
52
- // Called by UI Gesture
53
- onActivePointChanged: (p: SnapPoint | null) => void
54
- get showCheckout(): boolean
55
- get showAdded(): boolean
56
- get showBuy(): boolean
57
-
58
- get microHeight(): SnapPoint
59
- get isMobile(): boolean
60
- get snapPointPx(): number
61
- }
62
-
63
- class CommerceUIStore implements
64
- RecentActivity,
65
- SelectAndBuy,
66
- CommerceDrawer
67
- {
68
- _vHeight: number = 0
69
-
70
- _currentSkuPath: string | undefined = undefined
71
- _closedByUser: boolean = false
72
- _checkingOut: boolean = false
73
- _ignoreStateChange: boolean = false
74
- _activePoint: SnapPoint | null = null
75
-
76
- _activeItem: LineItem | undefined = undefined
77
- _reactionDisposers: IReactionDisposer[] = []
78
- _service: CommerceService
79
- _pointsConfig: SnapPointsConfig
80
- _points: SnapPoints // points to either this._pointsConfig.md or this._pointsConfig.dt
81
-
82
- constructor(s: CommerceService, conf: SnapPointsConfig) {
83
- this._service = s
84
- this._pointsConfig = conf
85
- this._points = this._pointsConfig.dt
86
-
87
- makeObservable(this, {
88
- _currentSkuPath: observable,
89
- _activeItem: observable.ref,
90
- _closedByUser: observable,
91
- _checkingOut: observable,
92
- _activePoint: observable,
93
- _points: observable.ref,
94
- _vHeight: observable,
95
-
96
- showVariants: action,
97
- hideVariants: action,
98
- quantityChanged: action,
99
- setClosedByUser: action,
100
- setCheckingOut: action,
101
- setActivePoint: action,
102
- setMobile: action,
103
- setViewportHeight: action,
104
- clearActiveItem: action,
105
-
106
- activePoint: computed,
107
- checkingOut: computed,
108
- closedByUser: computed,
109
- currentSkuPath: computed,
110
- item: computed,
111
- microHeight: computed,
112
- modal: computed,
113
- points: computed,
114
- showAdded: computed,
115
- showBuy: computed,
116
- showCheckout: computed,
117
- snapPointPx: computed,
118
- state: computed,
119
- })
120
- }
121
-
122
- initialize = (): void => {
123
-
124
- this._reactionDisposers.push(reaction(
125
- () => ( this.state ),
126
- (s) => {
127
- if (this.ignoreStateChange) {
128
- log(`STATE CHANGE to "${s}" (IGNORED)`) // ===========
129
- this.setIgnoreStateChange(false)
130
- return
131
- }
132
- else {
133
- log(`STATE CHANGE to "${s}" (UI REACTED)`) // ===========
134
- this._syncUIToState(s)
135
- }
136
- }
137
- ))
138
- }
139
-
140
- reset = () => {
141
- this.hideVariants()
142
- this.setClosedByUser(false)
143
- this.clearActiveItem()
144
- // DO NOT reset _checkingOut!
145
- }
146
-
147
- onActivePointChanged = (pt: SnapPoint | null): void => {
148
- log("ON onActivePointChanged: " + pt) // ===========
149
- if (pt === this._points.micro && this.activePoint === this._points.full) {
150
- this.setIgnoreStateChange(true)
151
- this.hideVariants()
152
- }
153
- else if (pt === this._points.full && this.activePoint === this._points.micro) {
154
- this.setIgnoreStateChange(true)
155
- this.showVariants(this.item?.sku ?? '')
156
- }
157
- this.setActivePoint(pt)
158
- }
159
-
160
- showVariants = (skuPath: string): void => {
161
- this._service.setCurrentItem(undefined)
162
- this._currentSkuPath = skuPath
163
- this._closedByUser = false
164
- }
165
-
166
- hideVariants = (): void => { this._currentSkuPath = undefined }
167
-
168
- get currentSkuPath(): string | undefined { return this._currentSkuPath }
169
-
170
- quantityChanged = (sku: string, val: number, oldVal: number): void => {
171
-
172
- if (val === 0) {
173
- if (this._activeItem?.sku === sku) {
174
- this._activeItem = undefined
175
- }
176
- // otherwise ignore
177
- }
178
- else {
179
- if (!this._activeItem || this._activeItem.sku !== sku) {
180
- this._activeItem = this._service.getItemBySku(sku)
181
- }
182
- }
183
- }
184
-
185
- get item(): LineItem | undefined { return this._activeItem }
186
- clearActiveItem = (): void => { this._activeItem = undefined }
187
-
188
- get closedByUser(): boolean { return this._closedByUser }
189
- setClosedByUser = (b: boolean): void => { this._closedByUser = b}
190
-
191
- get ignoreStateChange(): boolean { return this._ignoreStateChange }
192
- setIgnoreStateChange = (b: boolean): void => { this._ignoreStateChange = b}
193
-
194
- get checkingOut(): boolean { return this._checkingOut }
195
- setCheckingOut = (b: boolean): void => { this._checkingOut = b }
196
-
197
- get activePoint(): SnapPoint | null { return this._activePoint }
198
- setActivePoint = (pt: SnapPoint | null): void => { this._activePoint = pt}
199
-
200
- get points(): SnapPoint[] {
201
- if (this.showBuy && !(this.showAdded || this.showCheckout)) {
202
- return [this._points.full]
203
- }
204
- else if (!this.showBuy && !this.showAdded && this.showCheckout) {
205
- return [this._points.micro]
206
- }
207
- return [this._points.micro, this._points.full]
208
- }
209
-
210
- _syncUIToState = (s: DrawerState) => {
211
- log("_syncUIToState: " + s) // ===========
212
- if (s === 'micro') {
213
- this.setActivePoint(this.points[0])
214
- }
215
- else if (s === 'full') {
216
- this.setActivePoint(this.points[this.points.length - 1])
217
- }
218
- }
219
-
220
- get open(): boolean {
221
- return (
222
- !this.closedByUser
223
- &&
224
- (this.showCheckout || this.showAdded || this.showBuy)
225
- )
226
- }
227
-
228
- get state(): DrawerState {
229
- if (this.showBuy) {
230
- return 'full'
231
- }
232
- else if (!this.closedByUser && (this.showAdded || this.showCheckout)) {
233
- return 'micro'
234
- }
235
- return 'closed'
236
- }
237
-
238
- get showBuy(): boolean {return !!this.currentSkuPath}
239
- get showAdded(): boolean { return !this._checkingOut && !!this.item}
240
- get showCheckout(): boolean { return !this._checkingOut && !this._service.cartEmpty}
241
- get modal(): boolean { return this.state !== 'micro'}
242
-
243
- get microHeight(): SnapPoint {
244
- return this._points.micro
245
- }
246
-
247
- get isMobile(): boolean { return this._pointsConfig.mb === this._points }
248
- setMobile = (b: boolean): void => {
249
- log("setMobile: " + b) // ===========
250
- this._points = b ? this._pointsConfig.mb : this._pointsConfig.dt
251
- }
252
-
253
- setViewportHeight = (v: number) => {this._vHeight = v}
254
- get snapPointPx(): number {
255
- if (!this._activePoint || this._vHeight === 0) return 0
256
-
257
- if (typeof this._activePoint === 'string') {
258
- return parseInt(this._activePoint)
259
- }
260
-
261
- return this._vHeight * this._activePoint as number
262
- }
263
-
264
- dispose = () => {
265
- this._reactionDisposers.forEach((d) => {d()})
266
- }
267
- }
268
-
269
- export {
270
- CommerceUIStore,
271
- type CommerceDrawer,
272
- type RecentActivity,
273
- type SelectAndBuy,
274
- type SnapPointsConfig,
275
- type SnapPoints,
276
- type SnapPoint
1
+ import {
2
+ action,
3
+ computed,
4
+ makeObservable,
5
+ observable,
6
+ reaction,
7
+ type IReactionDisposer,
8
+ } from 'mobx'
9
+
10
+ import type { CommerceService, LineItem, ObsLineItemRef } from '@hanzo/commerce/types'
11
+
12
+ const logOn = false
13
+ const log = (s: string) => {
14
+ if (logOn) {
15
+ console.log('COMMERCE_UI ' + s)
16
+ }
17
+ }
18
+
19
+ type SnapPoint = number | string
20
+
21
+ type SnapPoints = {
22
+ full: SnapPoint
23
+ micro: SnapPoint
24
+ }
25
+
26
+ type SnapPointsConfig = {
27
+ mb: SnapPoints
28
+ dt: SnapPoints
29
+ }
30
+
31
+ type DrawerState = 'closed' | 'micro' | 'full'
32
+
33
+ interface RecentActivity extends ObsLineItemRef {
34
+ quantityChanged(sku: string, val: number, prevVal: number): void
35
+ }
36
+
37
+ interface SelectAndBuy {
38
+ showVariants: (skuPath: string) => void
39
+ hideVariants: () => void
40
+ get currentSkuPath(): string | undefined
41
+ }
42
+
43
+ interface CommerceDrawer {
44
+
45
+ get open(): boolean
46
+ get state(): DrawerState
47
+ get closedByUser(): boolean
48
+ setClosedByUser(b: boolean): void
49
+ get modal(): boolean
50
+ get points(): SnapPoint[]
51
+ get activePoint(): SnapPoint | null
52
+ // Called by UI Gesture
53
+ onActivePointChanged: (p: SnapPoint | null) => void
54
+ get showCheckout(): boolean
55
+ get showAdded(): boolean
56
+ get showBuy(): boolean
57
+
58
+ get microHeight(): SnapPoint
59
+ get isMobile(): boolean
60
+ get snapPointPx(): number
61
+ }
62
+
63
+ class CommerceUIStore implements
64
+ RecentActivity,
65
+ SelectAndBuy,
66
+ CommerceDrawer
67
+ {
68
+ _vHeight: number = 0
69
+
70
+ _currentSkuPath: string | undefined = undefined
71
+ _closedByUser: boolean = false
72
+ _checkingOut: boolean = false
73
+ _ignoreStateChange: boolean = false
74
+ _activePoint: SnapPoint | null = null
75
+
76
+ _activeItem: LineItem | undefined = undefined
77
+ _reactionDisposers: IReactionDisposer[] = []
78
+ _service: CommerceService
79
+ _pointsConfig: SnapPointsConfig
80
+ _points: SnapPoints // points to either this._pointsConfig.md or this._pointsConfig.dt
81
+
82
+ constructor(s: CommerceService, conf: SnapPointsConfig) {
83
+ this._service = s
84
+ this._pointsConfig = conf
85
+ this._points = this._pointsConfig.dt
86
+
87
+ makeObservable(this, {
88
+ _currentSkuPath: observable,
89
+ _activeItem: observable.ref,
90
+ _closedByUser: observable,
91
+ _checkingOut: observable,
92
+ _activePoint: observable,
93
+ _points: observable.ref,
94
+ _vHeight: observable,
95
+
96
+ showVariants: action,
97
+ hideVariants: action,
98
+ quantityChanged: action,
99
+ setClosedByUser: action,
100
+ setCheckingOut: action,
101
+ setActivePoint: action,
102
+ setMobile: action,
103
+ setViewportHeight: action,
104
+ clearActiveItem: action,
105
+
106
+ activePoint: computed,
107
+ checkingOut: computed,
108
+ closedByUser: computed,
109
+ currentSkuPath: computed,
110
+ item: computed,
111
+ microHeight: computed,
112
+ modal: computed,
113
+ points: computed,
114
+ showAdded: computed,
115
+ showBuy: computed,
116
+ showCheckout: computed,
117
+ snapPointPx: computed,
118
+ state: computed,
119
+ })
120
+ }
121
+
122
+ initialize = (): void => {
123
+
124
+ this._reactionDisposers.push(reaction(
125
+ () => ( this.state ),
126
+ (s) => {
127
+ if (this.ignoreStateChange) {
128
+ log(`STATE CHANGE to "${s}" (IGNORED)`) // ===========
129
+ this.setIgnoreStateChange(false)
130
+ return
131
+ }
132
+ else {
133
+ log(`STATE CHANGE to "${s}" (UI REACTED)`) // ===========
134
+ this._syncUIToState(s)
135
+ }
136
+ }
137
+ ))
138
+ }
139
+
140
+ reset = () => {
141
+ this.hideVariants()
142
+ this.setClosedByUser(false)
143
+ this.clearActiveItem()
144
+ // DO NOT reset _checkingOut!
145
+ }
146
+
147
+ onActivePointChanged = (pt: SnapPoint | null): void => {
148
+ log("ON onActivePointChanged: " + pt) // ===========
149
+ if (pt === this._points.micro && this.activePoint === this._points.full) {
150
+ this.setIgnoreStateChange(true)
151
+ this.hideVariants()
152
+ }
153
+ else if (pt === this._points.full && this.activePoint === this._points.micro) {
154
+ this.setIgnoreStateChange(true)
155
+ this.showVariants(this.item?.sku ?? '')
156
+ }
157
+ this.setActivePoint(pt)
158
+ }
159
+
160
+ showVariants = (skuPath: string): void => {
161
+ this._service.setCurrentItem(undefined)
162
+ this._currentSkuPath = skuPath
163
+ this._closedByUser = false
164
+ }
165
+
166
+ hideVariants = (): void => { this._currentSkuPath = undefined }
167
+
168
+ get currentSkuPath(): string | undefined { return this._currentSkuPath }
169
+
170
+ quantityChanged = (sku: string, val: number, oldVal: number): void => {
171
+
172
+ if (val === 0) {
173
+ if (this._activeItem?.sku === sku) {
174
+ this._activeItem = undefined
175
+ }
176
+ // otherwise ignore
177
+ }
178
+ else {
179
+ if (!this._activeItem || this._activeItem.sku !== sku) {
180
+ this._activeItem = this._service.getItemBySku(sku)
181
+ }
182
+ }
183
+ }
184
+
185
+ get item(): LineItem | undefined { return this._activeItem }
186
+ clearActiveItem = (): void => { this._activeItem = undefined }
187
+
188
+ get closedByUser(): boolean { return this._closedByUser }
189
+ setClosedByUser = (b: boolean): void => { this._closedByUser = b}
190
+
191
+ get ignoreStateChange(): boolean { return this._ignoreStateChange }
192
+ setIgnoreStateChange = (b: boolean): void => { this._ignoreStateChange = b}
193
+
194
+ get checkingOut(): boolean { return this._checkingOut }
195
+ setCheckingOut = (b: boolean): void => { this._checkingOut = b }
196
+
197
+ get activePoint(): SnapPoint | null { return this._activePoint }
198
+ setActivePoint = (pt: SnapPoint | null): void => { this._activePoint = pt}
199
+
200
+ get points(): SnapPoint[] {
201
+ if (this.showBuy && !(this.showAdded || this.showCheckout)) {
202
+ return [this._points.full]
203
+ }
204
+ else if (!this.showBuy && !this.showAdded && this.showCheckout) {
205
+ return [this._points.micro]
206
+ }
207
+ return [this._points.micro, this._points.full]
208
+ }
209
+
210
+ _syncUIToState = (s: DrawerState) => {
211
+ log("_syncUIToState: " + s) // ===========
212
+ if (s === 'micro') {
213
+ this.setActivePoint(this.points[0])
214
+ }
215
+ else if (s === 'full') {
216
+ this.setActivePoint(this.points[this.points.length - 1])
217
+ }
218
+ }
219
+
220
+ get open(): boolean {
221
+ return (
222
+ !this.closedByUser
223
+ &&
224
+ (this.showCheckout || this.showAdded || this.showBuy)
225
+ )
226
+ }
227
+
228
+ get state(): DrawerState {
229
+ if (this.showBuy) {
230
+ return 'full'
231
+ }
232
+ else if (!this.closedByUser && (this.showAdded || this.showCheckout)) {
233
+ return 'micro'
234
+ }
235
+ return 'closed'
236
+ }
237
+
238
+ get showBuy(): boolean {return !!this.currentSkuPath}
239
+ get showAdded(): boolean { return !this._checkingOut && !!this.item}
240
+ get showCheckout(): boolean { return !this._checkingOut && !this._service.cartEmpty}
241
+ get modal(): boolean { return this.state !== 'micro'}
242
+
243
+ get microHeight(): SnapPoint {
244
+ return this._points.micro
245
+ }
246
+
247
+ get isMobile(): boolean { return this._pointsConfig.mb === this._points }
248
+ setMobile = (b: boolean): void => {
249
+ log("setMobile: " + b) // ===========
250
+ this._points = b ? this._pointsConfig.mb : this._pointsConfig.dt
251
+ }
252
+
253
+ setViewportHeight = (v: number) => {this._vHeight = v}
254
+ get snapPointPx(): number {
255
+ if (!this._activePoint || this._vHeight === 0) return 0
256
+
257
+ if (typeof this._activePoint === 'string') {
258
+ return parseInt(this._activePoint)
259
+ }
260
+
261
+ return this._vHeight * this._activePoint as number
262
+ }
263
+
264
+ dispose = () => {
265
+ this._reactionDisposers.forEach((d) => {d()})
266
+ }
267
+ }
268
+
269
+ export {
270
+ CommerceUIStore,
271
+ type CommerceDrawer,
272
+ type RecentActivity,
273
+ type SelectAndBuy,
274
+ type SnapPointsConfig,
275
+ type SnapPoints,
276
+ type SnapPoint
277
277
  }