@pisell/private-materials 6.12.167 → 6.12.169

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 (231) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +10 -10
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +10 -10
  9. package/es/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
  10. package/es/components/HDLKiosk/app/manifest.js +11 -11
  11. package/es/components/HDLKiosk/app/operations.js +92 -0
  12. package/es/components/HDLKiosk/app/workflow/barcode.js +11 -13
  13. package/es/components/HDLKiosk/app/workflow/index.js +16 -0
  14. package/es/components/HDLKiosk/app/workflow/predicates.js +1 -1
  15. package/es/components/HDLKiosk/app/workflow/quick.js +1 -1
  16. package/es/components/HDLKiosk/app/workflow/registry.js +4 -4
  17. package/es/components/HDLKiosk/app/workflow/scale.js +5 -1
  18. package/es/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
  19. package/es/components/HDLKiosk/docs/01-/346/240/270/345/277/203/350/277/220/350/241/214/346/234/272/345/210/266.md +105 -101
  20. package/es/components/HDLKiosk/docs/03-/344/270/232/345/212/241/346/265/201/347/250/213/344/270/216/344/272/244/344/272/222/350/247/204/345/210/231.md +2 -2
  21. package/es/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
  22. package/es/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
  23. package/es/components/HDLKiosk/docs/07-/345/220/216/347/273/255/345/267/245/344/275/234.md +1 -1
  24. package/es/components/HDLKiosk/docs/08-/346/227/240/345/244/264Application/350/277/220/350/241/214/346/227/266/351/207/215/346/236/204/350/256/276/350/256/241.md +719 -0
  25. package/es/components/HDLKiosk/docs/09-Entry/350/256/276/345/244/207/344/272/213/344/273/266/351/207/215/346/236/204/344/277/256/345/244/215/346/212/245/345/221/212.md +187 -0
  26. package/es/components/HDLKiosk/docs/README.md +6 -2
  27. package/es/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
  28. package/es/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
  29. package/es/components/HDLKiosk/index.js +22 -28
  30. package/es/components/HDLKiosk/index.less +1 -1
  31. package/es/components/HDLKiosk/kernel/README.md +14 -13
  32. package/es/components/HDLKiosk/kernel/application/defineApplication.js +63 -24
  33. package/es/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
  34. package/es/components/HDLKiosk/kernel/application/runtime.js +237 -0
  35. package/es/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
  36. package/es/components/HDLKiosk/kernel/operations/registry.js +3 -3
  37. package/es/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
  38. package/es/components/HDLKiosk/kernel/operations/types.js +7 -3
  39. package/es/components/HDLKiosk/kernel/workflow/actor.js +51 -22
  40. package/es/components/HDLKiosk/kernel/workflow/compiler.js +23 -30
  41. package/es/components/HDLKiosk/runtime/createRuntime.js +238 -0
  42. package/es/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
  43. package/es/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
  44. package/es/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +18 -24
  45. package/es/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
  46. package/es/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
  47. package/es/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
  48. package/es/components/HDLKiosk/runtime/operations/barcode.js +18 -0
  49. package/es/components/HDLKiosk/runtime/operations/cart.js +44 -0
  50. package/es/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
  51. package/es/components/HDLKiosk/{app → runtime}/operations/checkout.js +95 -110
  52. package/es/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
  53. package/es/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
  54. package/es/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
  55. package/es/components/HDLKiosk/runtime/operations/customization.js +70 -0
  56. package/es/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
  57. package/es/components/HDLKiosk/runtime/operations/fulfillment.js +6 -0
  58. package/es/components/HDLKiosk/runtime/operations/identity.js +55 -0
  59. package/es/components/HDLKiosk/runtime/operations/registry.js +34 -0
  60. package/es/components/HDLKiosk/runtime/operations/session.js +29 -0
  61. package/es/components/HDLKiosk/runtime/operations/types.js +13 -0
  62. package/es/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
  63. package/es/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +67 -17
  64. package/es/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
  65. package/es/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
  66. package/es/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
  67. package/es/components/HDLKiosk/runtime/triggers.js +28 -0
  68. package/es/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
  69. package/es/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
  70. package/es/components/HDLKiosk/slices/catalog/slice.js +2 -2
  71. package/es/components/HDLKiosk/slices/customization/Screen/index.js +37 -38
  72. package/es/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
  73. package/es/components/HDLKiosk/slices/customization/slice.js +3 -4
  74. package/es/components/HDLKiosk/slices/fulfillment/slice.js +2 -2
  75. package/es/components/HDLKiosk/slices/fulfillment/view.js +1 -1
  76. package/es/components/HDLKiosk/slices/identity/Screen/index.js +2 -2
  77. package/es/components/HDLKiosk/slices/identity/slice.js +3 -3
  78. package/es/components/HDLKiosk/slices/identity/view.js +1 -1
  79. package/es/components/HDLKiosk/slices/payment/slice.js +3 -3
  80. package/es/components/HDLKiosk/slices/primaryProductPrompt/slice.js +2 -2
  81. package/es/components/HDLKiosk/slices/primaryProductPrompt/view.js +2 -2
  82. package/es/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +45 -131
  83. package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +387 -0
  84. package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
  85. package/es/components/HDLKiosk/{app → ui}/ScreenRenderer.js +7 -7
  86. package/es/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +66 -0
  87. package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
  88. package/es/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +25 -0
  89. package/es/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +53 -0
  90. package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
  91. package/es/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +39 -0
  92. package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
  93. package/es/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
  94. package/es/components/HDLKiosk/ui/scale.js +20 -0
  95. package/es/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -8
  96. package/es/components/HDLKiosk/{app → ui}/views.js +1 -1
  97. package/es/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
  98. package/es/components/HDLKiosk/utils.js +4 -4
  99. package/es/components/bigSale/templates/HDLKiosk/adapter/HDLKioskPaymentRuntime.js +2 -1
  100. package/es/components/bigSale/templates/HDLKiosk/adapter/capabilities.js +1 -1
  101. package/es/components/bigSale/templates/HDLKiosk/adapter/projection.js +21 -11
  102. package/es/components/bigSale/templates/HDLKiosk/adapter/sales.js +21 -3
  103. package/es/components/bigSale/templates/HDLKiosk/adapter/scaleTrigger.js +20 -5
  104. package/es/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +3 -0
  105. package/es/components/bigSale/templates/HDLKiosk/index.js +3 -3
  106. package/lib/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
  107. package/lib/components/HDLKiosk/app/manifest.js +18 -19
  108. package/lib/components/HDLKiosk/app/operations.js +105 -0
  109. package/lib/components/HDLKiosk/app/workflow/barcode.js +11 -13
  110. package/lib/components/HDLKiosk/app/workflow/index.js +16 -0
  111. package/lib/components/HDLKiosk/app/workflow/predicates.js +1 -0
  112. package/lib/components/HDLKiosk/app/workflow/quick.js +1 -1
  113. package/lib/components/HDLKiosk/app/workflow/registry.js +3 -3
  114. package/lib/components/HDLKiosk/app/workflow/scale.js +5 -1
  115. package/lib/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
  116. package/lib/components/HDLKiosk/docs/01-/346/240/270/345/277/203/350/277/220/350/241/214/346/234/272/345/210/266.md +105 -101
  117. package/lib/components/HDLKiosk/docs/03-/344/270/232/345/212/241/346/265/201/347/250/213/344/270/216/344/272/244/344/272/222/350/247/204/345/210/231.md +2 -2
  118. package/lib/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
  119. package/lib/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
  120. package/lib/components/HDLKiosk/docs/07-/345/220/216/347/273/255/345/267/245/344/275/234.md +1 -1
  121. package/lib/components/HDLKiosk/docs/08-/346/227/240/345/244/264Application/350/277/220/350/241/214/346/227/266/351/207/215/346/236/204/350/256/276/350/256/241.md +719 -0
  122. package/lib/components/HDLKiosk/docs/09-Entry/350/256/276/345/244/207/344/272/213/344/273/266/351/207/215/346/236/204/344/277/256/345/244/215/346/212/245/345/221/212.md +187 -0
  123. package/lib/components/HDLKiosk/docs/README.md +6 -2
  124. package/lib/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
  125. package/lib/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
  126. package/lib/components/HDLKiosk/index.js +25 -31
  127. package/lib/components/HDLKiosk/index.less +1 -1
  128. package/lib/components/HDLKiosk/kernel/README.md +14 -13
  129. package/lib/components/HDLKiosk/kernel/application/defineApplication.js +65 -25
  130. package/lib/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
  131. package/lib/components/HDLKiosk/kernel/application/runtime.js +237 -0
  132. package/lib/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
  133. package/lib/components/HDLKiosk/kernel/operations/registry.js +3 -3
  134. package/lib/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
  135. package/lib/components/HDLKiosk/kernel/operations/types.js +8 -3
  136. package/lib/components/HDLKiosk/kernel/workflow/actor.js +51 -22
  137. package/lib/components/HDLKiosk/kernel/workflow/compiler.js +23 -30
  138. package/lib/components/HDLKiosk/runtime/createRuntime.js +239 -0
  139. package/lib/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
  140. package/lib/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
  141. package/lib/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +17 -27
  142. package/lib/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
  143. package/lib/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
  144. package/lib/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
  145. package/lib/components/HDLKiosk/runtime/operations/barcode.js +17 -0
  146. package/lib/components/HDLKiosk/runtime/operations/cart.js +46 -0
  147. package/lib/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
  148. package/lib/components/HDLKiosk/{app → runtime}/operations/checkout.js +97 -112
  149. package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
  150. package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
  151. package/lib/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
  152. package/lib/components/HDLKiosk/runtime/operations/customization.js +73 -0
  153. package/lib/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
  154. package/lib/components/HDLKiosk/runtime/operations/fulfillment.js +5 -0
  155. package/lib/components/HDLKiosk/runtime/operations/identity.js +55 -0
  156. package/lib/components/HDLKiosk/runtime/operations/registry.js +34 -0
  157. package/lib/components/HDLKiosk/runtime/operations/session.js +30 -0
  158. package/lib/components/HDLKiosk/runtime/operations/types.js +14 -0
  159. package/lib/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
  160. package/lib/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +71 -21
  161. package/lib/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
  162. package/lib/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
  163. package/lib/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
  164. package/lib/components/HDLKiosk/runtime/triggers.js +28 -0
  165. package/lib/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
  166. package/lib/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
  167. package/lib/components/HDLKiosk/slices/catalog/slice.js +3 -3
  168. package/lib/components/HDLKiosk/slices/customization/Screen/index.js +38 -39
  169. package/lib/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
  170. package/lib/components/HDLKiosk/slices/customization/slice.js +5 -6
  171. package/lib/components/HDLKiosk/slices/fulfillment/slice.js +3 -3
  172. package/lib/components/HDLKiosk/slices/fulfillment/view.js +1 -1
  173. package/lib/components/HDLKiosk/slices/identity/Screen/index.js +2 -2
  174. package/lib/components/HDLKiosk/slices/identity/slice.js +4 -4
  175. package/lib/components/HDLKiosk/slices/identity/view.js +1 -1
  176. package/lib/components/HDLKiosk/slices/payment/slice.js +5 -5
  177. package/lib/components/HDLKiosk/slices/primaryProductPrompt/slice.js +2 -2
  178. package/lib/components/HDLKiosk/slices/primaryProductPrompt/view.js +2 -2
  179. package/lib/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +46 -132
  180. package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +390 -0
  181. package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
  182. package/lib/components/HDLKiosk/{app → ui}/ScreenRenderer.js +7 -7
  183. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +67 -0
  184. package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
  185. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +26 -0
  186. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +54 -0
  187. package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
  188. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +40 -0
  189. package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
  190. package/lib/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
  191. package/lib/components/HDLKiosk/ui/scale.js +24 -0
  192. package/lib/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -7
  193. package/lib/components/HDLKiosk/{app → ui}/views.js +1 -1
  194. package/lib/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
  195. package/lib/components/HDLKiosk/utils.js +4 -4
  196. package/lib/components/bigSale/templates/HDLKiosk/adapter/HDLKioskPaymentRuntime.js +2 -1
  197. package/lib/components/bigSale/templates/HDLKiosk/adapter/capabilities.js +1 -1
  198. package/lib/components/bigSale/templates/HDLKiosk/adapter/projection.js +21 -10
  199. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales.js +20 -2
  200. package/lib/components/bigSale/templates/HDLKiosk/adapter/scaleTrigger.js +19 -4
  201. package/lib/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +3 -0
  202. package/lib/components/bigSale/templates/HDLKiosk/index.js +4 -4
  203. package/package.json +2 -2
  204. package/es/components/HDLKiosk/app/constants.js +0 -9
  205. package/es/components/HDLKiosk/app/operations/barcode.js +0 -22
  206. package/es/components/HDLKiosk/app/operations/cart.js +0 -60
  207. package/es/components/HDLKiosk/app/operations/fulfillment.js +0 -11
  208. package/es/components/HDLKiosk/app/operations/session.js +0 -41
  209. package/es/components/HDLKiosk/app/operations/types.js +0 -11
  210. package/es/components/HDLKiosk/devices/entryArbiter.js +0 -33
  211. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -75
  212. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -160
  213. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -185
  214. package/es/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -12
  215. package/es/components/HDLKiosk/slices/customization/operation.js +0 -80
  216. package/es/components/HDLKiosk/slices/identity/operation.js +0 -60
  217. package/lib/components/HDLKiosk/app/constants.js +0 -9
  218. package/lib/components/HDLKiosk/app/operations/barcode.js +0 -21
  219. package/lib/components/HDLKiosk/app/operations/cart.js +0 -62
  220. package/lib/components/HDLKiosk/app/operations/fulfillment.js +0 -10
  221. package/lib/components/HDLKiosk/app/operations/session.js +0 -42
  222. package/lib/components/HDLKiosk/app/operations/types.js +0 -12
  223. package/lib/components/HDLKiosk/devices/entryArbiter.js +0 -33
  224. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -76
  225. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -161
  226. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -186
  227. package/lib/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -13
  228. package/lib/components/HDLKiosk/slices/customization/operation.js +0 -83
  229. package/lib/components/HDLKiosk/slices/identity/operation.js +0 -60
  230. /package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
  231. /package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
@@ -1,5 +1,8 @@
1
1
  .pisell-hdl-kiosk {
2
2
  .hdl-catalog-screen {
3
+ --hdl-catalog-menu-font-level-1: 24px;
4
+ --hdl-catalog-menu-font-level-2: 20px;
5
+ --hdl-catalog-menu-font-level-3: 18px;
3
6
  position: relative;
4
7
  width: 100%;
5
8
  height: 100%;
@@ -9,16 +12,14 @@
9
12
  }
10
13
 
11
14
  .hdl-catalog-layout {
12
- display: grid;
15
+ display: flex;
13
16
  width: 100%;
14
17
  height: 100%;
15
18
  min-height: 0;
16
- grid-template-columns: clamp(96px, 18vw, 180px) minmax(0, 1fr);
17
19
  overflow: hidden;
18
20
  }
19
21
 
20
22
  .hdl-catalog-layout > .pisell-kiosk-category-sidebar {
21
- width: 100%;
22
23
  border-right-color: rgba(255, 255, 255, 0.1);
23
24
  background: #202735;
24
25
  --pisell-kiosk-cart-capsule-reserved-space: max(
@@ -49,14 +50,17 @@
49
50
  .pisell-kiosk-category-sidebar__tabbar
50
51
  .text-card {
51
52
  box-sizing: border-box;
53
+ min-height: 80px !important;
52
54
  justify-content: flex-start !important;
55
+ gap: 10px !important;
53
56
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
54
57
  border-radius: 14px !important;
58
+ padding: 10px 16px !important;
55
59
  background: rgba(255, 255, 255, 0.06) !important;
56
60
  color: rgba(255, 255, 255, 0.78) !important;
57
- font-size: 29px;
58
- font-weight: 950;
59
- line-height: 1.05;
61
+ font-size: var(--hdl-catalog-menu-font-level-1);
62
+ font-weight: 850;
63
+ line-height: 1.15;
60
64
  text-align: left;
61
65
  }
62
66
 
@@ -65,9 +69,9 @@
65
69
  .text-card
66
70
  .text-card__content {
67
71
  color: rgba(255, 255, 255, 0.78) !important;
68
- font-size: 29px !important;
69
- font-weight: 950 !important;
70
- line-height: 1.05;
72
+ font-size: var(--hdl-catalog-menu-font-level-1) !important;
73
+ font-weight: 850 !important;
74
+ line-height: 1.15;
71
75
  text-align: left !important;
72
76
  }
73
77
 
@@ -84,6 +88,16 @@
84
88
  .text-card
85
89
  .anticon {
86
90
  color: rgba(255, 255, 255, 0.86) !important;
91
+ font-size: 24px !important;
92
+ }
93
+
94
+ .hdl-catalog-layout
95
+ .pisell-kiosk-category-sidebar__tabbar
96
+ .text-card
97
+ .text-card__icon
98
+ img {
99
+ width: 24px !important;
100
+ height: 24px !important;
87
101
  }
88
102
 
89
103
  .hdl-catalog-layout
@@ -130,10 +144,14 @@
130
144
  .pisell-kiosk-category-sidebar__tabbar
131
145
  .pisell-tabbar__level--2
132
146
  .text-card {
147
+ min-height: 68px !important;
148
+ gap: 8px !important;
133
149
  border-radius: 12px !important;
150
+ padding: 8px 14px !important;
134
151
  background: transparent !important;
135
- font-size: 21px;
152
+ font-size: var(--hdl-catalog-menu-font-level-2);
136
153
  font-weight: 850;
154
+ line-height: 1.15;
137
155
  }
138
156
 
139
157
  .hdl-catalog-layout
@@ -141,18 +159,23 @@
141
159
  .pisell-tabbar__level--2
142
160
  .text-card
143
161
  .text-card__content {
144
- font-size: 21px !important;
162
+ font-size: var(--hdl-catalog-menu-font-level-2) !important;
145
163
  font-weight: 850 !important;
164
+ line-height: 1.15;
146
165
  }
147
166
 
148
167
  .hdl-catalog-layout
149
168
  .pisell-kiosk-category-sidebar__tabbar
150
169
  .pisell-tabbar__level--3
151
170
  .text-card {
171
+ min-height: 60px !important;
172
+ gap: 8px !important;
152
173
  border-radius: 10px !important;
174
+ padding: 7px 12px !important;
153
175
  background: transparent !important;
154
- font-size: 18px;
176
+ font-size: var(--hdl-catalog-menu-font-level-3);
155
177
  font-weight: 800;
178
+ line-height: 1.15;
156
179
  }
157
180
 
158
181
  .hdl-catalog-layout
@@ -160,8 +183,45 @@
160
183
  .pisell-tabbar__level--3
161
184
  .text-card
162
185
  .text-card__content {
163
- font-size: 18px !important;
186
+ font-size: var(--hdl-catalog-menu-font-level-3) !important;
164
187
  font-weight: 800 !important;
188
+ line-height: 1.15;
189
+ }
190
+
191
+ .hdl-catalog-layout
192
+ .pisell-kiosk-category-sidebar__tabbar
193
+ .pisell-tabbar__level--2
194
+ .text-card
195
+ :is(.pisell-icon, .iconfont, .anticon) {
196
+ font-size: 20px !important;
197
+ }
198
+
199
+ .hdl-catalog-layout
200
+ .pisell-kiosk-category-sidebar__tabbar
201
+ .pisell-tabbar__level--2
202
+ .text-card
203
+ .text-card__icon
204
+ img {
205
+ width: 20px !important;
206
+ height: 20px !important;
207
+ }
208
+
209
+ .hdl-catalog-layout
210
+ .pisell-kiosk-category-sidebar__tabbar
211
+ .pisell-tabbar__level--3
212
+ .text-card
213
+ :is(.pisell-icon, .iconfont, .anticon) {
214
+ font-size: 18px !important;
215
+ }
216
+
217
+ .hdl-catalog-layout
218
+ .pisell-kiosk-category-sidebar__tabbar
219
+ .pisell-tabbar__level--3
220
+ .text-card
221
+ .text-card__icon
222
+ img {
223
+ width: 18px !important;
224
+ height: 18px !important;
165
225
  }
166
226
 
167
227
  .hdl-catalog-layout
@@ -206,6 +266,7 @@
206
266
  .hdl-catalog-main {
207
267
  position: relative;
208
268
  display: flex;
269
+ flex: 1 1 0;
209
270
  min-width: 0;
210
271
  min-height: 0;
211
272
  flex-direction: column;
@@ -1,10 +1,10 @@
1
1
  import { defineSlice, intentPrecondition } from "../../kernel/application/defineSlice.js";
2
- import { cartAddProductOperation } from "../../app/operations/cart.js";
2
+ import { cartAddProductOperation } from "../../app/operations.js";
3
3
  //#region src/components/HDLKiosk/slices/catalog/slice.ts
4
4
  /** Catalog Slice:声明补充商品加购;商品浏览动作不进入 Workflow。 */
5
5
  const catalogSlice = defineSlice({
6
6
  id: "catalog",
7
- screen: { id: "catalog" },
7
+ surface: { id: "catalog" },
8
8
  commands: { addProduct: cartAddProductOperation },
9
9
  intents: { complete: intentPrecondition("cart.notEmpty", { navigate: "next" }) }
10
10
  });
@@ -1,11 +1,11 @@
1
1
  import { _objectSpread2 } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
2
2
  import { _asyncToGenerator } from "../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
3
- import { useHDLScaleSnapshot } from "../../../devices/scale/runtime.js";
4
3
  import { useHDLKioskBottomBar, useHDLKioskBottomBarController } from "../../../components/shell/HDLKioskBottomBarHost/index.js";
5
4
  import { HDLKioskOrderSummary } from "../../../components/shell/HDLKioskOrderSummary/index.js";
6
5
  import { createHDLKioskSkuValue, readHDLKioskProductOptionGroups, readHDLKioskProductOptionItems } from "../../../components/common/HDLKioskSkuOptionsSelection/model.js";
7
6
  import HDLKioskSkuOptionsSelection from "../../../components/common/HDLKioskSkuOptionsSelection/index.js";
8
7
  import { resolveHDLWeightedProduct } from "../../../product.js";
8
+ import { useHDLScaleRuntime, useHDLScaleSnapshot } from "../../../ui/scale.js";
9
9
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { STANDARD_WEIGHT_UNIT, formatAmount, getWeightUnitSymbol, locales } from "@pisell/utils";
11
11
  import Decimal from "decimal.js";
@@ -27,13 +27,10 @@ function getScaleStatusText(scale) {
27
27
  if (scale.error) return locales.getText("pisell2.hdl-kiosk.scale-reading-error");
28
28
  if (scale.connectionState === "disconnected") return locales.getText("pisell2.hdl-kiosk.scale-disconnected");
29
29
  if (scale.connectionState !== "connected" || !scale.isListening) return locales.getText("pisell2.hdl-kiosk.scale-connecting");
30
- switch (scale.status) {
31
- case "stable": return locales.getText("pisell2.hdl-kiosk.scale-stable");
32
- case "overload": return locales.getText("pisell2.hdl-kiosk.scale-overload");
33
- case "negative": return locales.getText("pisell2.hdl-kiosk.scale-negative");
34
- case "unstable":
35
- case null: return locales.getText("pisell2.hdl-kiosk.scale-unstable");
36
- }
30
+ if (scale.status === "overload") return locales.getText("pisell2.hdl-kiosk.scale-overload");
31
+ if (scale.status === "negative") return locales.getText("pisell2.hdl-kiosk.scale-negative");
32
+ if (!scale.hasLiveSample) return locales.getText("pisell2.hdl-kiosk.scale-connecting");
33
+ return locales.getText(scale.status === "stable" ? "pisell2.hdl-kiosk.scale-stable" : "pisell2.hdl-kiosk.scale-unstable");
37
34
  }
38
35
  function initialSelections(product) {
39
36
  if (!product) return [];
@@ -71,6 +68,19 @@ function formatMoney(value, currencySymbol) {
71
68
  const amount = value.toDecimalPlaces(2).toNumber();
72
69
  return String(formatAmount(amount, 2, currencySymbol || ""));
73
70
  }
71
+ function resolveScaleMeasurement(scale, productFacts, minimumWeightKg) {
72
+ var _scale$grossWeightKg, _productFacts$fixedTa, _productFacts$fixedTa2;
73
+ const gross = new Decimal((_scale$grossWeightKg = scale.grossWeightKg) !== null && _scale$grossWeightKg !== void 0 ? _scale$grossWeightKg : NaN);
74
+ const tare = (_productFacts$fixedTa = productFacts === null || productFacts === void 0 || (_productFacts$fixedTa2 = productFacts.fixedTare) === null || _productFacts$fixedTa2 === void 0 ? void 0 : _productFacts$fixedTa2.valueKg) !== null && _productFacts$fixedTa !== void 0 ? _productFacts$fixedTa : new Decimal(0);
75
+ const numbersValid = gross.isFinite() && tare.isFinite() && !gross.isNegative() && !tare.isNegative();
76
+ const net = numbersValid ? Decimal.max(gross.minus(tare), 0) : new Decimal(0);
77
+ return {
78
+ gross,
79
+ tare,
80
+ net,
81
+ valid: numbersValid && scale.active && scale.hasLiveSample && scale.isListening && scale.connectionState === "connected" && scale.status === "stable" && !scale.error && net.greaterThanOrEqualTo(minimumWeightKg) && (productFacts === null || productFacts === void 0 ? void 0 : productFacts.available) === true
82
+ };
83
+ }
74
84
  function BackIcon() {
75
85
  return /* @__PURE__ */ React.createElement("svg", {
76
86
  viewBox: "0 0 24 24",
@@ -159,6 +169,7 @@ function ProductFallback() {
159
169
  }
160
170
  function CustomizationScreen({ product, loading, errorReference, errorMessage, busy, syncing, canGoBack, minimumWeightKg, orderBar, send }) {
161
171
  var _productFacts$product, _orderBar$primaryLine, _orderBar$primaryLine2, _orderBar$primaryLine3, _orderBar$primaryLine4, _orderBar$primaryLine7, _productFacts$unitPri, _orderBar$primaryLine9, _orderBar$primaryLine11;
172
+ const scaleRuntime = useHDLScaleRuntime();
162
173
  const scale = useHDLScaleSnapshot();
163
174
  const skuOptionsRef = useRef(null);
164
175
  const hydratedDraftKeyRef = useRef();
@@ -179,30 +190,21 @@ function CustomizationScreen({ product, loading, errorReference, errorMessage, b
179
190
  (_orderBar$primaryLine7 = orderBar.primaryLine) === null || _orderBar$primaryLine7 === void 0 ? void 0 : _orderBar$primaryLine7.skuValue,
180
191
  product
181
192
  ]);
182
- const measurement = useMemo(() => {
183
- var _scale$grossWeightKg, _productFacts$fixedTa, _productFacts$fixedTa2;
184
- const gross = new Decimal((_scale$grossWeightKg = scale.grossWeightKg) !== null && _scale$grossWeightKg !== void 0 ? _scale$grossWeightKg : NaN);
185
- const tare = (_productFacts$fixedTa = productFacts === null || productFacts === void 0 || (_productFacts$fixedTa2 = productFacts.fixedTare) === null || _productFacts$fixedTa2 === void 0 ? void 0 : _productFacts$fixedTa2.valueKg) !== null && _productFacts$fixedTa !== void 0 ? _productFacts$fixedTa : new Decimal(0);
186
- const numbersValid = gross.isFinite() && tare.isFinite() && !gross.isNegative() && !tare.isNegative();
187
- const net = numbersValid ? Decimal.max(gross.minus(tare), 0) : new Decimal(0);
188
- return {
189
- gross,
190
- tare,
191
- net,
192
- valid: numbersValid && scale.active && scale.isListening && scale.connectionState === "connected" && scale.status === "stable" && !scale.error && net.greaterThanOrEqualTo(minimumWeightKg) && (productFacts === null || productFacts === void 0 ? void 0 : productFacts.available) === true
193
- };
194
- }, [
193
+ const measurement = useMemo(() => resolveScaleMeasurement(scale, productFacts, minimumWeightKg), [
195
194
  minimumWeightKg,
196
195
  productFacts,
197
196
  scale
198
197
  ]);
199
198
  const statusText = getScaleStatusText(scale);
200
- const stable = scale.status === "stable" && scale.connectionState === "connected" && scale.isListening && !scale.error;
199
+ const readingInvalid = scale.status === "overload" || scale.status === "negative";
200
+ const stable = scale.status === "stable" && scale.hasLiveSample && scale.connectionState === "connected" && scale.isListening && !scale.error;
201
201
  const unitPricePerStandardWeight = (_productFacts$unitPri = productFacts === null || productFacts === void 0 ? void 0 : productFacts.unitPricePerKg) !== null && _productFacts$unitPri !== void 0 ? _productFacts$unitPri : new Decimal(0);
202
202
  const amountText = orderBar.confirmedAmount !== void 0 ? formatMoney(new Decimal(orderBar.confirmedAmount), orderBar.currencySymbol) : "—";
203
203
  const submit = useCallback(_asyncToGenerator(function* () {
204
- var _skuOptionsRef$curren2, _skuOptionsRef$curren3, _orderBar$primaryLine8, _scale$updatedAt;
205
- if (!productFacts || !measurement.valid || busy || syncing) return;
204
+ var _skuOptionsRef$curren2, _skuOptionsRef$curren3, _orderBar$primaryLine8, _currentScale$updated;
205
+ const currentScale = scaleRuntime.getSnapshot();
206
+ const currentMeasurement = resolveScaleMeasurement(currentScale, productFacts, minimumWeightKg);
207
+ if (!productFacts || !currentMeasurement.valid || busy || syncing) return;
206
208
  try {
207
209
  var _skuOptionsRef$curren;
208
210
  yield (_skuOptionsRef$curren = skuOptionsRef.current) === null || _skuOptionsRef$curren === void 0 ? void 0 : _skuOptionsRef$curren.validate();
@@ -219,33 +221,30 @@ function CustomizationScreen({ product, loading, errorReference, errorMessage, b
219
221
  existingLineId: (_orderBar$primaryLine8 = orderBar.primaryLine) === null || _orderBar$primaryLine8 === void 0 ? void 0 : _orderBar$primaryLine8.lineId,
220
222
  skuValue: submittedSkuValue,
221
223
  measurement: {
222
- grossWeightKg: formatWeight(measurement.gross),
223
- tareWeightKg: formatWeight(measurement.tare),
224
- netWeightKg: formatWeight(measurement.net),
224
+ grossWeightKg: formatWeight(currentMeasurement.gross),
225
+ tareWeightKg: formatWeight(currentMeasurement.tare),
226
+ netWeightKg: formatWeight(currentMeasurement.net),
225
227
  source: "auto",
226
228
  status: "stable",
227
- measuredAt: (_scale$updatedAt = scale.updatedAt) !== null && _scale$updatedAt !== void 0 ? _scale$updatedAt : Date.now()
229
+ measuredAt: (_currentScale$updated = currentScale.updatedAt) !== null && _currentScale$updated !== void 0 ? _currentScale$updated : Date.now()
228
230
  }
229
231
  }
230
232
  });
231
233
  }), [
232
234
  busy,
233
- measurement.valid,
234
- measurement.gross,
235
- measurement.net,
236
- measurement.tare,
235
+ minimumWeightKg,
237
236
  (_orderBar$primaryLine9 = orderBar.primaryLine) === null || _orderBar$primaryLine9 === void 0 ? void 0 : _orderBar$primaryLine9.lineId,
238
237
  productFacts,
239
- scale.updatedAt,
238
+ scaleRuntime,
240
239
  skuValue,
241
240
  send,
242
241
  syncing
243
242
  ]);
244
- const skipPrimaryProduct = useCallback(() => {
243
+ const omitPrimaryProduct = useCallback(() => {
245
244
  var _orderBar$primaryLine10;
246
245
  send({
247
246
  kind: "intent",
248
- intent: "skip",
247
+ intent: "omit",
249
248
  operationInput: { lineId: (_orderBar$primaryLine10 = orderBar.primaryLine) === null || _orderBar$primaryLine10 === void 0 ? void 0 : _orderBar$primaryLine10.lineId }
250
249
  });
251
250
  }, [(_orderBar$primaryLine11 = orderBar.primaryLine) === null || _orderBar$primaryLine11 === void 0 ? void 0 : _orderBar$primaryLine11.lineId, send]);
@@ -314,9 +313,9 @@ function CustomizationScreen({ product, loading, errorReference, errorMessage, b
314
313
  src: productFacts.imageUrl,
315
314
  alt: ""
316
315
  }) : /* @__PURE__ */ React.createElement(ProductFallback, null)), /* @__PURE__ */ React.createElement("div", { className: "hdl-customization-product__copy" }, /* @__PURE__ */ React.createElement("p", null, locales.getText("pisell2.hdl-kiosk.customization-product-eyebrow")), /* @__PURE__ */ React.createElement("h1", { id: "hdl-customization-title" }, (productFacts === null || productFacts === void 0 ? void 0 : productFacts.name) || locales.getText("pisell2.hdl-kiosk.weighted-product-loading")), /* @__PURE__ */ React.createElement("strong", null, productFacts ? formatMoney(unitPricePerStandardWeight, orderBar.currencySymbol) : "—", " ", /* @__PURE__ */ React.createElement("small", null, "/", STANDARD_WEIGHT_UNIT_LABEL)))), /* @__PURE__ */ React.createElement("aside", { className: "hdl-customization-weight" }, /* @__PURE__ */ React.createElement("div", { className: "hdl-customization-weight__status" }, /* @__PURE__ */ React.createElement("span", {
317
- className: `hdl-customization-weight__dot${stable ? " is-stable" : ""}`,
316
+ className: `hdl-customization-weight__dot${readingInvalid ? " is-error" : stable ? " is-stable" : ""}`,
318
317
  "aria-hidden": "true"
319
- }), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("strong", null, locales.getText("pisell2.hdl-kiosk.customization-weighing")), /* @__PURE__ */ React.createElement("small", null, statusText)), /* @__PURE__ */ React.createElement(ScaleIcon, null)), /* @__PURE__ */ React.createElement("dl", null, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.customization-unit-price")), /* @__PURE__ */ React.createElement("dd", null, productFacts ? formatMoney(unitPricePerStandardWeight, orderBar.currencySymbol) : "—", " ", /* @__PURE__ */ React.createElement("small", null, "/", STANDARD_WEIGHT_UNIT_LABEL))), /* @__PURE__ */ React.createElement("div", { className: "is-featured" }, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.gross-weight")), /* @__PURE__ */ React.createElement("dd", null, measurement.gross.isFinite() ? formatWeight(measurement.gross) : "—", " ", "kg")), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.tare-weight")), /* @__PURE__ */ React.createElement("dd", null, formatWeight(measurement.tare), " kg")), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.net-weight")), /* @__PURE__ */ React.createElement("dd", null, formatWeight(measurement.net), " kg"))))), /* @__PURE__ */ React.createElement("div", { className: "hdl-customization-options" }, product && productFacts ? /* @__PURE__ */ React.createElement(HDLKioskSkuOptionsSelection, {
318
+ }), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("strong", null, locales.getText("pisell2.hdl-kiosk.customization-weighing")), /* @__PURE__ */ React.createElement("small", null, statusText)), /* @__PURE__ */ React.createElement(ScaleIcon, null)), /* @__PURE__ */ React.createElement("dl", null, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.customization-unit-price")), /* @__PURE__ */ React.createElement("dd", null, productFacts ? formatMoney(unitPricePerStandardWeight, orderBar.currencySymbol) : "—", " ", /* @__PURE__ */ React.createElement("small", null, "/", STANDARD_WEIGHT_UNIT_LABEL))), /* @__PURE__ */ React.createElement("div", { className: "is-featured" }, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.gross-weight")), /* @__PURE__ */ React.createElement("dd", null, readingInvalid ? "Err." : `${measurement.gross.isFinite() ? formatWeight(measurement.gross) : "—"} kg`)), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.tare-weight")), /* @__PURE__ */ React.createElement("dd", null, formatWeight(measurement.tare), " kg")), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("dt", null, locales.getText("pisell2.hdl-kiosk.net-weight")), /* @__PURE__ */ React.createElement("dd", null, readingInvalid ? "Err." : `${formatWeight(measurement.net)} kg`))))), /* @__PURE__ */ React.createElement("div", { className: "hdl-customization-options" }, product && productFacts ? /* @__PURE__ */ React.createElement(HDLKioskSkuOptionsSelection, {
320
319
  ref: skuOptionsRef,
321
320
  product,
322
321
  value: skuValue,
@@ -332,7 +331,7 @@ function CustomizationScreen({ product, loading, errorReference, errorMessage, b
332
331
  type: "button",
333
332
  className: "hdl-customization-skip",
334
333
  disabled: busy || syncing,
335
- onClick: skipPrimaryProduct
334
+ onClick: omitPrimaryProduct
336
335
  }, locales.getText("pisell2.hdl-kiosk.customization-skip")));
337
336
  }
338
337
  //#endregion
@@ -122,6 +122,11 @@
122
122
  box-shadow: 0 0 0 5px rgba(18, 183, 106, 0.16);
123
123
  }
124
124
 
125
+ .hdl-customization-weight__dot.is-error {
126
+ background: #f04438;
127
+ box-shadow: 0 0 0 5px rgba(240, 68, 56, 0.16);
128
+ }
129
+
125
130
  .hdl-customization-weight__status > div {
126
131
  min-width: 0;
127
132
  flex: 1;
@@ -1,15 +1,14 @@
1
1
  import { defineSlice, effect } from "../../kernel/application/defineSlice.js";
2
- import { cartRemoveLineOperation } from "../../app/operations/cart.js";
3
- import { productRemovePrimaryProductOperation, productSyncPrimaryWeightedProductOperation } from "./operation.js";
2
+ import { cartRemoveLineOperation, productRemovePrimaryProductOperation, productSyncPrimaryWeightedProductOperation } from "../../app/operations.js";
4
3
  //#region src/components/HDLKiosk/slices/customization/slice.ts
5
4
  /** Customization Slice:Next 时才提交本地称重草稿;加购成功后才离开。 */
6
5
  const customizationSlice = defineSlice({
7
6
  id: "customization",
8
- screen: { id: "customization" },
7
+ surface: { id: "customization" },
9
8
  commands: { removePrimaryProduct: cartRemoveLineOperation },
10
9
  intents: {
11
10
  complete: effect(productSyncPrimaryWeightedProductOperation, { navigate: "next" }),
12
- skip: effect(productRemovePrimaryProductOperation, { navigate: "next" })
11
+ omit: effect(productRemovePrimaryProductOperation, { navigate: "next" })
13
12
  }
14
13
  });
15
14
  //#endregion
@@ -1,10 +1,10 @@
1
1
  import { defineSlice, effect } from "../../kernel/application/defineSlice.js";
2
- import { setFulfillmentOperation } from "../../app/operations/fulfillment.js";
2
+ import { setFulfillmentOperation } from "../../app/operations.js";
3
3
  //#region src/components/HDLKiosk/slices/fulfillment/slice.ts
4
4
  /** Fulfillment Slice:声明就餐方式完成条件与回退语义;不依赖 React 或 Host 实现。 */
5
5
  const fulfillmentSlice = defineSlice({
6
6
  id: "fulfillment",
7
- screen: { id: "fulfillment" },
7
+ surface: { id: "fulfillment" },
8
8
  intents: { complete: effect(setFulfillmentOperation, {
9
9
  precondition: "fulfillment.selected",
10
10
  navigate: "next"
@@ -4,7 +4,7 @@ import React from "react";
4
4
  //#region src/components/HDLKiosk/slices/fulfillment/view.tsx
5
5
  /** Fulfillment 展示装配:组合页面、订单摘要与购物车投影;不执行订单写入。 */
6
6
  const renderFulfillment = ({ node, viewSnapshot, sales, businessMode, send }) => /* @__PURE__ */ React.createElement(FulfillmentScreen, {
7
- model: createActivityScreenModel(node.screenId, viewSnapshot, node, sales, businessMode),
7
+ model: createActivityScreenModel(node.surfaceId, viewSnapshot, node, sales, businessMode),
8
8
  orderBar: createOrderBarModel(sales),
9
9
  send
10
10
  });
@@ -8,7 +8,7 @@ const QR_CELLS = Object.freeze(Array.from({ length: 49 }, (_, index) => index *
8
8
  * Quick Order 的前置会员提示页。
9
9
  *
10
10
  * 宿主可注入认证 UI;未注入时保留 QR / SMS 视觉 fallback。Skip 继续产生
11
- * identity.skip Intent,由本地 Exit Policy 同步访客后进入下一步。
11
+ * identity.omit Intent,由本地 Exit Policy 同步访客后进入下一步。
12
12
  */
13
13
  function IdentityScreen({ model, orderBar, send, renderIdentityAuth }) {
14
14
  const [authBusy, setAuthBusy] = useState(false);
@@ -80,7 +80,7 @@ function IdentityScreen({ model, orderBar, send, renderIdentityAuth }) {
80
80
  disabled: busy,
81
81
  onClick: () => send({
82
82
  kind: "intent",
83
- intent: "skip",
83
+ intent: "omit",
84
84
  operationInput: {}
85
85
  })
86
86
  }, locales.getText("pisell2.hdl-kiosk.skip")), model.errorReference ? /* @__PURE__ */ React.createElement("div", {
@@ -1,13 +1,13 @@
1
1
  import { defineSlice, effect } from "../../kernel/application/defineSlice.js";
2
- import { identitySyncOperation } from "./operation.js";
2
+ import { identitySyncOperation } from "../../app/operations.js";
3
3
  //#region src/components/HDLKiosk/slices/identity/slice.ts
4
4
  /** Identity Slice:声明身份节点的 Intent 与客户同步 Effect;不依赖 React 或 Host 实现。 */
5
5
  const identitySlice = defineSlice({
6
6
  id: "identity",
7
- screen: { id: "identity" },
7
+ surface: { id: "identity" },
8
8
  intents: {
9
9
  complete: effect(identitySyncOperation, { navigate: "next" }),
10
- skip: effect(identitySyncOperation, { navigate: "next" })
10
+ omit: effect(identitySyncOperation, { navigate: "next" })
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -4,7 +4,7 @@ import React from "react";
4
4
  //#region src/components/HDLKiosk/slices/identity/view.tsx
5
5
  /** Identity 展示装配:把统一 View Context 转为本 Slice Screen props;不决定流程目标。 */
6
6
  const renderIdentity = ({ node, viewSnapshot, sales, businessMode, renderIdentityAuth, send }) => /* @__PURE__ */ React.createElement(IdentityScreen, {
7
- model: createActivityScreenModel(node.screenId, viewSnapshot, node, sales, businessMode),
7
+ model: createActivityScreenModel(node.surfaceId, viewSnapshot, node, sales, businessMode),
8
8
  orderBar: createOrderBarModel(sales),
9
9
  send,
10
10
  renderIdentityAuth
@@ -1,10 +1,10 @@
1
1
  import { defineSlice, intentPrecondition } from "../../kernel/application/defineSlice.js";
2
- import { checkoutPayEftposOperation, checkoutRequestStaffPaymentApprovalOperation } from "../../app/operations/checkout.js";
2
+ import { checkoutPayEftposOperation, checkoutRequestStaffPaymentApprovalOperation } from "../../app/operations.js";
3
3
  //#region src/components/HDLKiosk/slices/payment/slice.ts
4
4
  /** Payment Slice:声明卡/现金选择、支付派发与 Host 成功确认;支付不确定不作成功处理。 */
5
5
  const paymentMethodSlice = defineSlice({
6
6
  id: "paymentMethod",
7
- screen: { id: "checkout" },
7
+ surface: { id: "checkout" },
8
8
  commands: {
9
9
  payEftpos: checkoutPayEftposOperation,
10
10
  requestStaffPaymentApproval: checkoutRequestStaffPaymentApprovalOperation
@@ -14,7 +14,7 @@ const paymentMethodSlice = defineSlice({
14
14
  /** 支付完成仍复用 Checkout Screen,仅作为 Workflow 的成功终态。 */
15
15
  const paymentCompletedSlice = defineSlice({
16
16
  id: "paymentCompleted",
17
- screen: { id: "checkout" },
17
+ surface: { id: "checkout" },
18
18
  intents: {}
19
19
  });
20
20
  //#endregion
@@ -3,11 +3,11 @@ import { defineSlice, intentPrecondition } from "../../kernel/application/define
3
3
  /** 主商品询问 Slice:只表达是否进入称重定制,不承担 Catalog 页面职责。 */
4
4
  const primaryProductPromptSlice = defineSlice({
5
5
  id: "primaryProductPrompt",
6
- screen: { id: "primaryProductPrompt" },
6
+ surface: { id: "primaryProductPrompt" },
7
7
  presentation: "modal",
8
8
  intents: {
9
9
  complete: intentPrecondition("cart.notEmpty", { navigate: "next" }),
10
- skip: intentPrecondition("cart.notEmpty")
10
+ omit: intentPrecondition("cart.notEmpty")
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -1,13 +1,13 @@
1
1
  import { PrimaryProductPromptDialog } from "../catalog/PrimaryProductPromptDialog/index.js";
2
2
  import React from "react";
3
3
  //#region src/components/HDLKiosk/slices/primaryProductPrompt/view.tsx
4
- /** 主商品询问展示:将用户选择转换为标准 completed/skipped 结果。 */
4
+ /** 主商品询问展示:将用户选择转换为标准 complete/omit 结果。 */
5
5
  function PrimaryProductPromptView({ busy, send }) {
6
6
  return /* @__PURE__ */ React.createElement(PrimaryProductPromptDialog, {
7
7
  busy,
8
8
  onDecline: () => send({
9
9
  kind: "intent",
10
- intent: "skip"
10
+ intent: "omit"
11
11
  }),
12
12
  onAccept: () => send({
13
13
  kind: "intent",