@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
@@ -0,0 +1,621 @@
1
+ .pisell-hdl-kiosk {
2
+ .hdl-entry-brand-mark {
3
+ appearance: none;
4
+ padding: 0;
5
+ cursor: pointer;
6
+ transition: transform 160ms ease, filter 160ms ease;
7
+ }
8
+
9
+ .hdl-entry-brand-mark:hover {
10
+ filter: brightness(1.12);
11
+ transform: rotate(-7deg) scale(1.035);
12
+ }
13
+
14
+ .hdl-entry-brand-mark:active {
15
+ transform: rotate(-7deg) scale(0.97);
16
+ }
17
+
18
+ .hdl-scale-simulator-gate {
19
+ position: fixed;
20
+ z-index: 90;
21
+ inset: 0;
22
+ display: grid;
23
+ place-items: center;
24
+ padding: 28px;
25
+ background: radial-gradient(circle at 50% 40%, rgba(51, 176, 151, 0.12), transparent 38%), rgba(4, 8, 12, 0.76);
26
+ backdrop-filter: blur(18px) saturate(0.8);
27
+ }
28
+
29
+ .hdl-scale-simulator-gate__card {
30
+ position: relative;
31
+ display: grid;
32
+ width: min(520px, calc(100vw - 48px));
33
+ overflow: hidden;
34
+ border: 1px solid rgba(255, 255, 255, 0.14);
35
+ border-radius: 32px;
36
+ padding: 40px;
37
+ background: linear-gradient(145deg, rgba(25, 34, 42, 0.98), rgba(8, 13, 18, 0.99));
38
+ color: #f8fbfc;
39
+ box-shadow: 0 36px 100px rgba(0, 0, 0, 0.58), inset 0 1px 0 rgba(255, 255, 255, 0.08);
40
+ }
41
+
42
+ .hdl-scale-simulator-gate__card::before {
43
+ position: absolute;
44
+ top: -140px;
45
+ right: -120px;
46
+ width: 330px;
47
+ height: 330px;
48
+ border-radius: 50%;
49
+ background: rgba(50, 205, 167, 0.09);
50
+ content: '';
51
+ pointer-events: none;
52
+ }
53
+
54
+ .hdl-scale-simulator-gate__icon {
55
+ position: relative;
56
+ display: grid;
57
+ width: 76px;
58
+ height: 76px;
59
+ place-items: center;
60
+ border: 1px solid rgba(104, 235, 203, 0.26);
61
+ border-radius: 24px;
62
+ background: linear-gradient(145deg, rgba(47, 201, 166, 0.2), rgba(47, 201, 166, 0.05));
63
+ color: #6ee8c9;
64
+ box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24);
65
+ }
66
+
67
+ .hdl-scale-simulator-gate__icon svg,
68
+ .hdl-scale-simulator-panel__brand svg {
69
+ width: 45px;
70
+ fill: none;
71
+ stroke: currentColor;
72
+ stroke-width: 1.8;
73
+ stroke-linecap: round;
74
+ stroke-linejoin: round;
75
+ }
76
+
77
+ .hdl-scale-simulator-gate__copy {
78
+ position: relative;
79
+ margin-top: 26px;
80
+ }
81
+
82
+ .hdl-scale-simulator-gate__copy small,
83
+ .hdl-scale-simulator-panel__title small,
84
+ .hdl-scale-simulator-section__heading small {
85
+ color: #66dfc1;
86
+ font-size: 11px;
87
+ font-weight: 900;
88
+ letter-spacing: 0.18em;
89
+ }
90
+
91
+ .hdl-scale-simulator-gate__copy h2 {
92
+ margin: 7px 0 8px;
93
+ color: #fff;
94
+ font-size: 30px;
95
+ line-height: 1.15;
96
+ font-weight: 900;
97
+ }
98
+
99
+ .hdl-scale-simulator-gate__copy p {
100
+ margin: 0;
101
+ color: rgba(232, 242, 246, 0.58);
102
+ font-size: 15px;
103
+ }
104
+
105
+ .hdl-scale-simulator-gate__card > label {
106
+ display: grid;
107
+ gap: 9px;
108
+ margin-top: 28px;
109
+ color: rgba(236, 244, 247, 0.72);
110
+ font-size: 13px;
111
+ font-weight: 800;
112
+ }
113
+
114
+ .hdl-scale-simulator-gate__card > label input {
115
+ width: 100%;
116
+ height: 58px;
117
+ border: 1px solid rgba(255, 255, 255, 0.14);
118
+ border-radius: 16px;
119
+ outline: 0;
120
+ padding: 0 18px;
121
+ background: rgba(255, 255, 255, 0.06);
122
+ color: #fff;
123
+ font-size: 26px;
124
+ font-weight: 800;
125
+ letter-spacing: 0.42em;
126
+ }
127
+
128
+ .hdl-scale-simulator-gate__card > label input:focus {
129
+ border-color: rgba(104, 235, 203, 0.7);
130
+ box-shadow: 0 0 0 4px rgba(104, 235, 203, 0.1);
131
+ }
132
+
133
+ .hdl-scale-simulator-gate__card > label.is-error input {
134
+ border-color: rgba(255, 104, 104, 0.8);
135
+ }
136
+
137
+ .hdl-scale-simulator-gate__error {
138
+ margin: 9px 0 0;
139
+ color: #ff9999;
140
+ font-size: 13px;
141
+ font-weight: 700;
142
+ }
143
+
144
+ .hdl-scale-simulator-gate__actions {
145
+ display: grid;
146
+ grid-template-columns: 1fr 1.45fr;
147
+ gap: 12px;
148
+ margin-top: 28px;
149
+ }
150
+
151
+ .hdl-scale-simulator-gate__actions button {
152
+ min-height: 52px;
153
+ border: 1px solid rgba(255, 255, 255, 0.13);
154
+ border-radius: 15px;
155
+ background: rgba(255, 255, 255, 0.05);
156
+ color: rgba(255, 255, 255, 0.76);
157
+ font-size: 15px;
158
+ font-weight: 850;
159
+ cursor: pointer;
160
+ }
161
+
162
+ .hdl-scale-simulator-gate__actions button.is-primary {
163
+ border-color: transparent;
164
+ background: linear-gradient(135deg, #3ed0ad, #159b7e);
165
+ color: #04130f;
166
+ box-shadow: 0 12px 28px rgba(26, 178, 143, 0.22);
167
+ }
168
+
169
+ .hdl-scale-simulator-panel {
170
+ position: fixed;
171
+ z-index: 80;
172
+ width: min(720px, calc(100vw - 24px));
173
+ max-height: calc(100vh - 20px);
174
+ overflow: hidden;
175
+ border: 1px solid rgba(255, 255, 255, 0.13);
176
+ border-radius: 25px;
177
+ background: #0c1218;
178
+ color: #edf5f6;
179
+ box-shadow: 0 34px 90px rgba(0, 0, 0, 0.58), inset 0 1px 0 rgba(255, 255, 255, 0.06);
180
+ }
181
+
182
+ .hdl-scale-simulator-panel.is-minimized {
183
+ width: min(420px, calc(100vw - 24px));
184
+ }
185
+
186
+ .hdl-scale-simulator-panel__header {
187
+ display: grid;
188
+ min-height: 76px;
189
+ grid-template-columns: 45px minmax(0, 1fr) max-content max-content;
190
+ align-items: center;
191
+ gap: 13px;
192
+ padding: 12px 14px 12px 17px;
193
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
194
+ background: radial-gradient(circle at 8% 0%, rgba(55, 213, 175, 0.13), transparent 34%), linear-gradient(180deg, #182129, #111820);
195
+ cursor: grab;
196
+ touch-action: none;
197
+ user-select: none;
198
+ }
199
+
200
+ .hdl-scale-simulator-panel__brand {
201
+ display: grid;
202
+ width: 45px;
203
+ height: 45px;
204
+ place-items: center;
205
+ border: 1px solid rgba(83, 224, 190, 0.2);
206
+ border-radius: 14px;
207
+ background: rgba(64, 208, 174, 0.1);
208
+ color: #65e0c2;
209
+ }
210
+
211
+ .hdl-scale-simulator-panel__brand svg {
212
+ width: 29px;
213
+ }
214
+
215
+ .hdl-scale-simulator-panel__title {
216
+ display: grid;
217
+ min-width: 0;
218
+ gap: 2px;
219
+ }
220
+
221
+ .hdl-scale-simulator-panel__title strong {
222
+ color: #f7fbfc;
223
+ font-size: 17px;
224
+ font-weight: 900;
225
+ }
226
+
227
+ .hdl-scale-simulator-panel__availability {
228
+ display: inline-flex;
229
+ min-height: 30px;
230
+ align-items: center;
231
+ gap: 7px;
232
+ border: 1px solid rgba(255, 255, 255, 0.08);
233
+ border-radius: 999px;
234
+ padding: 5px 10px;
235
+ background: rgba(255, 255, 255, 0.04);
236
+ color: rgba(255, 255, 255, 0.6);
237
+ font-size: 11px;
238
+ font-weight: 800;
239
+ white-space: nowrap;
240
+ }
241
+
242
+ .hdl-scale-simulator-panel__availability i {
243
+ width: 7px;
244
+ height: 7px;
245
+ border-radius: 50%;
246
+ background: #ff7a7a;
247
+ }
248
+
249
+ .hdl-scale-simulator-panel__availability.is-online i {
250
+ background: #56e4bd;
251
+ box-shadow: 0 0 10px rgba(86, 228, 189, 0.62);
252
+ }
253
+
254
+ .hdl-scale-simulator-panel__window-actions {
255
+ display: inline-flex;
256
+ gap: 5px;
257
+ }
258
+
259
+ .hdl-scale-simulator-panel__window-actions button {
260
+ display: grid;
261
+ width: 38px;
262
+ height: 38px;
263
+ place-items: center;
264
+ border: 0;
265
+ border-radius: 12px;
266
+ background: transparent;
267
+ color: rgba(255, 255, 255, 0.62);
268
+ cursor: pointer;
269
+ }
270
+
271
+ .hdl-scale-simulator-panel__window-actions button:hover {
272
+ background: rgba(255, 255, 255, 0.08);
273
+ color: #fff;
274
+ }
275
+
276
+ .hdl-scale-simulator-panel__window-actions button:last-child:hover {
277
+ background: rgba(234, 69, 78, 0.18);
278
+ color: #ff9da3;
279
+ }
280
+
281
+ .hdl-scale-simulator-panel__window-actions svg {
282
+ width: 20px;
283
+ fill: none;
284
+ stroke: currentColor;
285
+ stroke-width: 2;
286
+ stroke-linecap: round;
287
+ }
288
+
289
+ .hdl-scale-simulator-panel__body {
290
+ max-height: calc(100vh - 106px);
291
+ overflow: auto;
292
+ padding: 18px;
293
+ background: radial-gradient(circle at 100% 0%, rgba(64, 202, 171, 0.055), transparent 34%), #0c1218;
294
+ scrollbar-color: rgba(104, 235, 203, 0.28) transparent;
295
+ }
296
+
297
+ .hdl-scale-simulator-panel__unavailable {
298
+ display: grid;
299
+ min-height: 270px;
300
+ place-items: center;
301
+ align-content: center;
302
+ border: 1px dashed rgba(255, 255, 255, 0.13);
303
+ border-radius: 19px;
304
+ padding: 34px;
305
+ background: rgba(255, 255, 255, 0.025);
306
+ text-align: center;
307
+ }
308
+
309
+ .hdl-scale-simulator-panel__unavailable p {
310
+ max-width: 390px;
311
+ margin: 10px 0 20px;
312
+ color: rgba(255, 255, 255, 0.5);
313
+ font-size: 13px;
314
+ line-height: 1.6;
315
+ }
316
+
317
+ .hdl-scale-simulator-panel__unavailable button,
318
+ .hdl-scale-simulator-section__heading button {
319
+ min-height: 34px;
320
+ border: 1px solid rgba(255, 255, 255, 0.12);
321
+ border-radius: 10px;
322
+ padding: 5px 13px;
323
+ background: rgba(255, 255, 255, 0.05);
324
+ color: rgba(255, 255, 255, 0.72);
325
+ font-size: 12px;
326
+ font-weight: 800;
327
+ cursor: pointer;
328
+ }
329
+
330
+ .hdl-scale-simulator-readout {
331
+ display: grid;
332
+ grid-template-columns: minmax(250px, 0.86fr) minmax(280px, 1.14fr);
333
+ gap: 14px;
334
+ }
335
+
336
+ .hdl-scale-simulator-readout__screen {
337
+ display: grid;
338
+ min-height: 174px;
339
+ grid-template-columns: 1fr auto;
340
+ align-content: center;
341
+ overflow: hidden;
342
+ border: 1px solid rgba(92, 238, 201, 0.24);
343
+ border-radius: 18px;
344
+ padding: 21px 22px;
345
+ background: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0 1px, transparent 1px 4px), linear-gradient(145deg, #102c29, #071815);
346
+ box-shadow: inset 0 0 34px rgba(69, 231, 190, 0.05), 0 13px 28px rgba(0, 0, 0, 0.22);
347
+ }
348
+
349
+ .hdl-scale-simulator-readout__screen > span {
350
+ display: inline-flex;
351
+ align-items: center;
352
+ gap: 7px;
353
+ grid-column: 1 / -1;
354
+ color: rgba(114, 239, 208, 0.52);
355
+ font: 900 10px ui-monospace, SFMono-Regular, Menlo, monospace;
356
+ letter-spacing: 0.17em;
357
+ }
358
+
359
+ .hdl-scale-simulator-readout__screen > span i {
360
+ width: 7px;
361
+ height: 7px;
362
+ border-radius: 50%;
363
+ background: #62e6c5;
364
+ box-shadow: 0 0 9px rgba(81, 239, 200, 0.55);
365
+ }
366
+
367
+ .hdl-scale-simulator-readout__screen strong {
368
+ color: #7af3d4;
369
+ font: 500 47px/1.1 ui-monospace, SFMono-Regular, Menlo, monospace;
370
+ letter-spacing: -0.06em;
371
+ text-shadow: 0 0 22px rgba(81, 239, 200, 0.24);
372
+ }
373
+
374
+ .hdl-scale-simulator-readout__screen b {
375
+ align-self: end;
376
+ margin: 0 0 7px 9px;
377
+ color: rgba(122, 243, 212, 0.62);
378
+ font: 14px ui-monospace, SFMono-Regular, Menlo, monospace;
379
+ }
380
+
381
+ .hdl-scale-simulator-readout__screen small {
382
+ grid-column: 1 / -1;
383
+ color: rgba(122, 243, 212, 0.38);
384
+ font: 11px ui-monospace, SFMono-Regular, Menlo, monospace;
385
+ }
386
+
387
+ .hdl-scale-simulator-readout__telemetry {
388
+ display: grid;
389
+ grid-template-columns: 1fr 1fr;
390
+ gap: 9px;
391
+ }
392
+
393
+ .hdl-scale-simulator-readout__telemetry > span {
394
+ display: grid;
395
+ min-height: 80px;
396
+ align-content: center;
397
+ gap: 7px;
398
+ border: 1px solid rgba(255, 255, 255, 0.07);
399
+ border-radius: 15px;
400
+ padding: 13px 15px;
401
+ background: rgba(255, 255, 255, 0.03);
402
+ }
403
+
404
+ .hdl-scale-simulator-readout__telemetry small {
405
+ color: rgba(255, 255, 255, 0.38);
406
+ font-size: 11px;
407
+ }
408
+
409
+ .hdl-scale-simulator-readout__telemetry strong {
410
+ color: rgba(255, 255, 255, 0.84);
411
+ font-size: 14px;
412
+ }
413
+
414
+ .hdl-scale-simulator-readout__telemetry strong.is-connected { color: #61e6c4; }
415
+ .hdl-scale-simulator-readout__telemetry strong.is-connecting { color: #f1c96d; }
416
+ .hdl-scale-simulator-readout__telemetry strong.is-disconnected { color: #ff8b91; }
417
+
418
+ .hdl-scale-simulator-panel__notice,
419
+ .hdl-scale-simulator-panel__error {
420
+ margin: 12px 0 0;
421
+ border: 1px solid rgba(240, 190, 91, 0.14);
422
+ border-radius: 12px;
423
+ padding: 10px 13px;
424
+ background: rgba(240, 190, 91, 0.06);
425
+ color: rgba(250, 218, 149, 0.76);
426
+ font-size: 11px;
427
+ font-weight: 700;
428
+ line-height: 1.5;
429
+ }
430
+
431
+ .hdl-scale-simulator-section {
432
+ margin-top: 16px;
433
+ border: 1px solid rgba(255, 255, 255, 0.075);
434
+ border-radius: 18px;
435
+ padding: 16px;
436
+ background: rgba(255, 255, 255, 0.022);
437
+ }
438
+
439
+ .hdl-scale-simulator-section__heading {
440
+ display: flex;
441
+ align-items: center;
442
+ justify-content: space-between;
443
+ gap: 14px;
444
+ margin-bottom: 14px;
445
+ }
446
+
447
+ .hdl-scale-simulator-section__heading > span {
448
+ display: grid;
449
+ gap: 2px;
450
+ }
451
+
452
+ .hdl-scale-simulator-section__heading strong {
453
+ color: rgba(255, 255, 255, 0.9);
454
+ font-size: 16px;
455
+ }
456
+
457
+ .hdl-scale-simulator-section__heading button.is-stop {
458
+ border-color: rgba(255, 102, 112, 0.18);
459
+ background: rgba(255, 73, 86, 0.08);
460
+ color: #ff9ca3;
461
+ }
462
+
463
+ .hdl-scale-simulator-manual {
464
+ display: grid;
465
+ grid-template-columns: minmax(150px, 0.85fr) minmax(250px, 1.35fr) 105px;
466
+ align-items: end;
467
+ gap: 10px;
468
+ }
469
+
470
+ .hdl-scale-simulator-manual label,
471
+ .hdl-scale-simulator-manual fieldset {
472
+ display: grid;
473
+ min-width: 0;
474
+ gap: 7px;
475
+ border: 0;
476
+ margin: 0;
477
+ padding: 0;
478
+ color: rgba(255, 255, 255, 0.42);
479
+ font-size: 10px;
480
+ font-weight: 800;
481
+ }
482
+
483
+ .hdl-scale-simulator-manual legend { margin-bottom: 7px; padding: 0; }
484
+
485
+ .hdl-scale-simulator-manual__input {
486
+ display: grid;
487
+ height: 44px;
488
+ grid-template-columns: minmax(0, 1fr) 34px;
489
+ align-items: center;
490
+ overflow: hidden;
491
+ border: 1px solid rgba(255, 255, 255, 0.1);
492
+ border-radius: 11px;
493
+ background: rgba(255, 255, 255, 0.04);
494
+ }
495
+
496
+ .hdl-scale-simulator-manual__input input {
497
+ width: 100%;
498
+ height: 42px;
499
+ border: 0;
500
+ outline: 0;
501
+ padding: 0 11px;
502
+ background: transparent;
503
+ color: #fff;
504
+ font: 800 15px ui-monospace, SFMono-Regular, Menlo, monospace;
505
+ }
506
+
507
+ .hdl-scale-simulator-manual__input b {
508
+ color: rgba(255, 255, 255, 0.38);
509
+ font-size: 11px;
510
+ }
511
+
512
+ .hdl-scale-simulator-manual fieldset > span {
513
+ display: grid;
514
+ height: 44px;
515
+ grid-template-columns: repeat(4, 1fr);
516
+ gap: 3px;
517
+ border: 1px solid rgba(255, 255, 255, 0.08);
518
+ border-radius: 11px;
519
+ padding: 3px;
520
+ background: rgba(0, 0, 0, 0.16);
521
+ }
522
+
523
+ .hdl-scale-simulator-manual fieldset button {
524
+ border: 0;
525
+ border-radius: 8px;
526
+ background: transparent;
527
+ color: rgba(255, 255, 255, 0.45);
528
+ font-size: 11px;
529
+ font-weight: 800;
530
+ cursor: pointer;
531
+ }
532
+
533
+ .hdl-scale-simulator-manual fieldset button.is-active {
534
+ background: rgba(83, 224, 190, 0.14);
535
+ color: #71e8cb;
536
+ }
537
+
538
+ .hdl-scale-simulator-manual__apply {
539
+ height: 44px;
540
+ border: 0;
541
+ border-radius: 11px;
542
+ background: linear-gradient(135deg, #42d4b0, #189c80);
543
+ color: #041511;
544
+ font-size: 12px;
545
+ font-weight: 900;
546
+ cursor: pointer;
547
+ }
548
+
549
+ .hdl-scale-simulator-presets {
550
+ display: grid;
551
+ grid-template-columns: repeat(4, minmax(0, 1fr));
552
+ gap: 8px;
553
+ }
554
+
555
+ .hdl-scale-simulator-presets > button {
556
+ position: relative;
557
+ display: grid;
558
+ min-height: 92px;
559
+ align-content: center;
560
+ gap: 4px;
561
+ overflow: hidden;
562
+ border: 1px solid rgba(255, 255, 255, 0.075);
563
+ border-radius: 13px;
564
+ padding: 12px;
565
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015));
566
+ color: #fff;
567
+ text-align: left;
568
+ cursor: pointer;
569
+ transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
570
+ }
571
+
572
+ .hdl-scale-simulator-presets > button:hover {
573
+ border-color: rgba(92, 230, 197, 0.25);
574
+ background: rgba(68, 214, 178, 0.07);
575
+ transform: translateY(-1px);
576
+ }
577
+
578
+ .hdl-scale-simulator-presets > button > span {
579
+ position: absolute;
580
+ top: 8px;
581
+ right: 9px;
582
+ color: rgba(105, 231, 200, 0.2);
583
+ font: 900 18px ui-monospace, SFMono-Regular, Menlo, monospace;
584
+ }
585
+
586
+ .hdl-scale-simulator-presets strong {
587
+ position: relative;
588
+ color: rgba(255, 255, 255, 0.85);
589
+ font-size: 12px;
590
+ }
591
+
592
+ .hdl-scale-simulator-presets small {
593
+ position: relative;
594
+ color: rgba(255, 255, 255, 0.34);
595
+ font-size: 9px;
596
+ line-height: 1.35;
597
+ }
598
+
599
+ .hdl-scale-simulator-panel__error {
600
+ border-color: rgba(255, 94, 106, 0.18);
601
+ background: rgba(255, 70, 83, 0.07);
602
+ color: #ff9aa1;
603
+ }
604
+ }
605
+
606
+ @media (max-width: 760px) {
607
+ .pisell-hdl-kiosk {
608
+ .hdl-scale-simulator-panel__availability { display: none; }
609
+ .hdl-scale-simulator-panel__header { grid-template-columns: 45px minmax(0, 1fr) max-content; }
610
+ .hdl-scale-simulator-readout { grid-template-columns: 1fr; }
611
+ .hdl-scale-simulator-manual { grid-template-columns: 1fr; }
612
+ .hdl-scale-simulator-presets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
613
+ }
614
+ }
615
+
616
+ @media (prefers-reduced-motion: reduce) {
617
+ .pisell-hdl-kiosk .hdl-entry-brand-mark,
618
+ .pisell-hdl-kiosk .hdl-scale-simulator-presets > button {
619
+ transition: none;
620
+ }
621
+ }
@@ -3,11 +3,11 @@ import { BlockingNotice } from "../components/common/BlockingNotice/index.js";
3
3
  import { resolveHDLKioskView } from "./views.js";
4
4
  import React from "react";
5
5
  import { locales } from "@pisell/utils";
6
- //#region src/components/HDLKiosk/app/ScreenRenderer.tsx
6
+ //#region src/components/HDLKiosk/ui/ScreenRenderer.tsx
7
7
  /**
8
8
  * 文件角色:把当前 Workflow Node 交给其 Slice 自有 View 渲染。
9
- * 运行机制:从应用 View 注册表按 Activity 读取同步组件;Modal 节点先渲染 base
10
- * Slice,再叠加当前 Slice View。
9
+ * 运行机制:从应用 View 注册表按 Activity 读取同步组件;先渲染 Actor
10
+ * Surface 保留的 Page,再按顺序叠加 Modal Slice View。
11
11
  * 边界:只组装 View Context,不调用 Host、不创建 ViewModel、不决定下一节点。
12
12
  */
13
13
  function ScreenRenderer({ definition, snapshot, sales, send, commandState = { busy: false }, resetting, capabilities, businessMode = "prototype", scaleMinimumWeightKg = .01, renderIdentityAuth, memberAction = {
@@ -22,10 +22,10 @@ function ScreenRenderer({ definition, snapshot, sales, send, commandState = { bu
22
22
  methods: [],
23
23
  loading: false
24
24
  } }) {
25
- var _activeNode$presentat, _commandState$error;
25
+ var _definition$nodes$sna, _commandState$error;
26
26
  const activeNode = definition.nodes[snapshot.nodeId];
27
- const modalBaseNodeId = ((_activeNode$presentat = activeNode.presentation) === null || _activeNode$presentat === void 0 ? void 0 : _activeNode$presentat.mode) === "modal" ? activeNode.presentation.base : void 0;
28
- const renderedNode = definition.nodes[modalBaseNodeId !== null && modalBaseNodeId !== void 0 ? modalBaseNodeId : snapshot.nodeId];
27
+ const pageNode = (_definition$nodes$sna = definition.nodes[snapshot.surface.pageStepId]) !== null && _definition$nodes$sna !== void 0 ? _definition$nodes$sna : activeNode;
28
+ const overlayNodes = snapshot.surface.overlays.map((stepId) => definition.nodes[stepId]).filter((node) => Boolean(node));
29
29
  const bindActivity = (activityId) => (action) => {
30
30
  send(action.kind === "intent" || action.kind === "navigation" ? _objectSpread2(_objectSpread2({}, action), {}, { activityId }) : action);
31
31
  };
@@ -64,7 +64,7 @@ function ScreenRenderer({ definition, snapshot, sales, send, commandState = { bu
64
64
  };
65
65
  return /* @__PURE__ */ React.createElement(SliceView, context);
66
66
  };
67
- return /* @__PURE__ */ React.createElement(React.Fragment, null, renderNode(renderedNode), modalBaseNodeId ? renderNode(activeNode) : null);
67
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, renderNode(pageNode), overlayNodes.map((node) => /* @__PURE__ */ React.createElement(React.Fragment, { key: node.id }, renderNode(node))));
68
68
  }
69
69
  //#endregion
70
70
  export { ScreenRenderer };