@fayz-ai/pos 0.20.5 → 0.21.1

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 (185) hide show
  1. package/dist/app/config.d.ts +216 -4
  2. package/dist/app/config.d.ts.map +1 -1
  3. package/dist/index.d.ts +101 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +10857 -2517
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/useFloorBell.d.ts +21 -0
  8. package/dist/lib/useFloorBell.d.ts.map +1 -0
  9. package/dist/screen/AreaInspector.d.ts +19 -0
  10. package/dist/screen/AreaInspector.d.ts.map +1 -0
  11. package/dist/screen/AreaOutlineSheet.d.ts +15 -0
  12. package/dist/screen/AreaOutlineSheet.d.ts.map +1 -0
  13. package/dist/screen/ArrangeSheet.d.ts +8 -0
  14. package/dist/screen/ArrangeSheet.d.ts.map +1 -0
  15. package/dist/screen/AuthorizeSheet.d.ts +73 -0
  16. package/dist/screen/AuthorizeSheet.d.ts.map +1 -0
  17. package/dist/screen/CancelSheet.d.ts +35 -0
  18. package/dist/screen/CancelSheet.d.ts.map +1 -0
  19. package/dist/screen/ClosedPanel.d.ts +55 -0
  20. package/dist/screen/ClosedPanel.d.ts.map +1 -0
  21. package/dist/screen/ConfirmSheet.d.ts +12 -0
  22. package/dist/screen/ConfirmSheet.d.ts.map +1 -0
  23. package/dist/screen/CourtesySheet.d.ts +23 -0
  24. package/dist/screen/CourtesySheet.d.ts.map +1 -0
  25. package/dist/screen/CoverChargeSheet.d.ts +16 -0
  26. package/dist/screen/CoverChargeSheet.d.ts.map +1 -0
  27. package/dist/screen/DeliveryBoard.d.ts +13 -0
  28. package/dist/screen/DeliveryBoard.d.ts.map +1 -1
  29. package/dist/screen/DiscountSheet.d.ts +85 -0
  30. package/dist/screen/DiscountSheet.d.ts.map +1 -0
  31. package/dist/screen/DispatchRail.d.ts.map +1 -1
  32. package/dist/screen/FloorScopeBanner.d.ts +11 -0
  33. package/dist/screen/FloorScopeBanner.d.ts.map +1 -0
  34. package/dist/screen/GuestBar.d.ts +51 -0
  35. package/dist/screen/GuestBar.d.ts.map +1 -0
  36. package/dist/screen/GuestCountSheet.d.ts +16 -0
  37. package/dist/screen/GuestCountSheet.d.ts.map +1 -0
  38. package/dist/screen/IdentitySheet.d.ts.map +1 -1
  39. package/dist/screen/ModifierSheet.d.ts.map +1 -1
  40. package/dist/screen/OpenTableSheet.d.ts.map +1 -1
  41. package/dist/screen/PinSheet.d.ts.map +1 -1
  42. package/dist/screen/PlanStage.d.ts +130 -0
  43. package/dist/screen/PlanStage.d.ts.map +1 -0
  44. package/dist/screen/PosScreen.d.ts +350 -3
  45. package/dist/screen/PosScreen.d.ts.map +1 -1
  46. package/dist/screen/ServiceChargeSheet.d.ts +98 -0
  47. package/dist/screen/ServiceChargeSheet.d.ts.map +1 -0
  48. package/dist/screen/SheetLayer.d.ts +8 -0
  49. package/dist/screen/SheetLayer.d.ts.map +1 -0
  50. package/dist/screen/ShiftPanel.d.ts +45 -0
  51. package/dist/screen/ShiftPanel.d.ts.map +1 -0
  52. package/dist/screen/ShortcutsOverlay.d.ts.map +1 -1
  53. package/dist/screen/SplitSheet.d.ts.map +1 -1
  54. package/dist/screen/TableInspector.d.ts +22 -0
  55. package/dist/screen/TableInspector.d.ts.map +1 -0
  56. package/dist/screen/TicketRail.d.ts +175 -2
  57. package/dist/screen/TicketRail.d.ts.map +1 -1
  58. package/dist/screen/TransferHistorySheet.d.ts +17 -0
  59. package/dist/screen/TransferHistorySheet.d.ts.map +1 -0
  60. package/dist/screen/TransferSheet.d.ts +65 -0
  61. package/dist/screen/TransferSheet.d.ts.map +1 -0
  62. package/dist/screen/UnassignedTables.d.ts +14 -0
  63. package/dist/screen/UnassignedTables.d.ts.map +1 -0
  64. package/dist/screen/WaitlistEntrySheet.d.ts +23 -0
  65. package/dist/screen/WaitlistEntrySheet.d.ts.map +1 -0
  66. package/dist/screen/WaitlistView.d.ts +41 -0
  67. package/dist/screen/WaitlistView.d.ts.map +1 -0
  68. package/dist/screen/ZoneDrawLayer.d.ts +11 -0
  69. package/dist/screen/ZoneDrawLayer.d.ts.map +1 -0
  70. package/dist/screen/ZoneHandles.d.ts +18 -0
  71. package/dist/screen/ZoneHandles.d.ts.map +1 -0
  72. package/dist/screen/ZoneInspector.d.ts +27 -0
  73. package/dist/screen/ZoneInspector.d.ts.map +1 -0
  74. package/dist/screen/accountFit.d.ts +17 -0
  75. package/dist/screen/accountFit.d.ts.map +1 -0
  76. package/dist/screen/accountPick.d.ts +16 -0
  77. package/dist/screen/accountPick.d.ts.map +1 -0
  78. package/dist/screen/areaOutline.d.ts +59 -0
  79. package/dist/screen/areaOutline.d.ts.map +1 -0
  80. package/dist/screen/arrangePlan.d.ts +109 -0
  81. package/dist/screen/arrangePlan.d.ts.map +1 -0
  82. package/dist/screen/arrangeTables.d.ts +69 -0
  83. package/dist/screen/arrangeTables.d.ts.map +1 -0
  84. package/dist/screen/billPrint.d.ts +66 -0
  85. package/dist/screen/billPrint.d.ts.map +1 -0
  86. package/dist/screen/cancelCheck.d.ts +31 -0
  87. package/dist/screen/cancelCheck.d.ts.map +1 -0
  88. package/dist/screen/cardBrand.d.ts +44 -0
  89. package/dist/screen/cardBrand.d.ts.map +1 -0
  90. package/dist/screen/cashGate.d.ts +31 -0
  91. package/dist/screen/cashGate.d.ts.map +1 -0
  92. package/dist/screen/catalogEmpty.d.ts +13 -0
  93. package/dist/screen/catalogEmpty.d.ts.map +1 -0
  94. package/dist/screen/categoryIcon.d.ts +4 -0
  95. package/dist/screen/categoryIcon.d.ts.map +1 -0
  96. package/dist/screen/channelSlot.d.ts +93 -0
  97. package/dist/screen/channelSlot.d.ts.map +1 -0
  98. package/dist/screen/comandaChannel.d.ts +49 -0
  99. package/dist/screen/comandaChannel.d.ts.map +1 -0
  100. package/dist/screen/courtesyGate.d.ts +31 -0
  101. package/dist/screen/courtesyGate.d.ts.map +1 -0
  102. package/dist/screen/coverQuantities.d.ts +46 -0
  103. package/dist/screen/coverQuantities.d.ts.map +1 -0
  104. package/dist/screen/deliveryColumns.d.ts +54 -0
  105. package/dist/screen/deliveryColumns.d.ts.map +1 -0
  106. package/dist/screen/discardCheck.d.ts +8 -0
  107. package/dist/screen/discardCheck.d.ts.map +1 -0
  108. package/dist/screen/discountBook.d.ts +40 -0
  109. package/dist/screen/discountBook.d.ts.map +1 -0
  110. package/dist/screen/discountCap.d.ts +9 -0
  111. package/dist/screen/discountCap.d.ts.map +1 -0
  112. package/dist/screen/discountSelectable.d.ts +20 -0
  113. package/dist/screen/discountSelectable.d.ts.map +1 -0
  114. package/dist/screen/dockScope.d.ts +9 -0
  115. package/dist/screen/dockScope.d.ts.map +1 -0
  116. package/dist/screen/fiscalSeal.d.ts +40 -0
  117. package/dist/screen/fiscalSeal.d.ts.map +1 -0
  118. package/dist/screen/floorEmpty.d.ts +20 -0
  119. package/dist/screen/floorEmpty.d.ts.map +1 -0
  120. package/dist/screen/floorGeometry.d.ts +295 -0
  121. package/dist/screen/floorGeometry.d.ts.map +1 -0
  122. package/dist/screen/floorScope.d.ts +49 -0
  123. package/dist/screen/floorScope.d.ts.map +1 -0
  124. package/dist/screen/floorStale.d.ts +5 -0
  125. package/dist/screen/floorStale.d.ts.map +1 -0
  126. package/dist/screen/guestCount.d.ts +28 -0
  127. package/dist/screen/guestCount.d.ts.map +1 -0
  128. package/dist/screen/guestCountOnClose.d.ts +11 -0
  129. package/dist/screen/guestCountOnClose.d.ts.map +1 -0
  130. package/dist/screen/ledgerMethod.d.ts +11 -0
  131. package/dist/screen/ledgerMethod.d.ts.map +1 -0
  132. package/dist/screen/menuFreshness.d.ts +18 -0
  133. package/dist/screen/menuFreshness.d.ts.map +1 -0
  134. package/dist/screen/menuSearch.d.ts +55 -0
  135. package/dist/screen/menuSearch.d.ts.map +1 -0
  136. package/dist/screen/modifierCheck.d.ts +23 -0
  137. package/dist/screen/modifierCheck.d.ts.map +1 -0
  138. package/dist/screen/openChannelCounts.d.ts +26 -0
  139. package/dist/screen/openChannelCounts.d.ts.map +1 -0
  140. package/dist/screen/orderRef.d.ts +17 -0
  141. package/dist/screen/orderRef.d.ts.map +1 -0
  142. package/dist/screen/paymentList.d.ts +26 -0
  143. package/dist/screen/paymentList.d.ts.map +1 -0
  144. package/dist/screen/pinGate.d.ts +28 -0
  145. package/dist/screen/pinGate.d.ts.map +1 -0
  146. package/dist/screen/reopen.d.ts +36 -0
  147. package/dist/screen/reopen.d.ts.map +1 -0
  148. package/dist/screen/searchSubject.d.ts +22 -0
  149. package/dist/screen/searchSubject.d.ts.map +1 -0
  150. package/dist/screen/serviceChargeCheck.d.ts +29 -0
  151. package/dist/screen/serviceChargeCheck.d.ts.map +1 -0
  152. package/dist/screen/serviceChargeGuard.d.ts +145 -0
  153. package/dist/screen/serviceChargeGuard.d.ts.map +1 -0
  154. package/dist/screen/servicePreview.d.ts +35 -0
  155. package/dist/screen/servicePreview.d.ts.map +1 -0
  156. package/dist/screen/session.d.ts +207 -0
  157. package/dist/screen/session.d.ts.map +1 -1
  158. package/dist/screen/sheetSubtitle.d.ts +8 -0
  159. package/dist/screen/sheetSubtitle.d.ts.map +1 -0
  160. package/dist/screen/shift.d.ts +97 -0
  161. package/dist/screen/shift.d.ts.map +1 -0
  162. package/dist/screen/specialReuse.d.ts +45 -0
  163. package/dist/screen/specialReuse.d.ts.map +1 -0
  164. package/dist/screen/svgDrag.d.ts +24 -0
  165. package/dist/screen/svgDrag.d.ts.map +1 -0
  166. package/dist/screen/tableTone.d.ts +64 -0
  167. package/dist/screen/tableTone.d.ts.map +1 -0
  168. package/dist/screen/transferDone.d.ts +12 -0
  169. package/dist/screen/transferDone.d.ts.map +1 -0
  170. package/dist/screen/transferGuestBlock.d.ts +30 -0
  171. package/dist/screen/transferGuestBlock.d.ts.map +1 -0
  172. package/dist/screen/transferPick.d.ts +51 -0
  173. package/dist/screen/transferPick.d.ts.map +1 -0
  174. package/dist/screen/views.d.ts +139 -4
  175. package/dist/screen/views.d.ts.map +1 -1
  176. package/dist/screen/waitlist.d.ts +211 -0
  177. package/dist/screen/waitlist.d.ts.map +1 -0
  178. package/dist/screen/writeFailure.d.ts +22 -0
  179. package/dist/screen/writeFailure.d.ts.map +1 -0
  180. package/dist/screen/zoneDraft.d.ts +75 -0
  181. package/dist/screen/zoneDraft.d.ts.map +1 -0
  182. package/dist/screen/zoneEditing.d.ts +56 -0
  183. package/dist/screen/zoneEditing.d.ts.map +1 -0
  184. package/dist/styles.css +2697 -200
  185. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceChargeSheet.d.ts","sourceRoot":"","sources":["../../src/screen/ServiceChargeSheet.tsx"],"names":[],"mappings":"AAqCA,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAC5F,YAAY,EAAE,QAAQ,EAAE,SAAS,EACjC,QAAQ,EAAE,OAAO,GAClB,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5G,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;0DACsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACjD,+BA0OA"}
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function SheetLayer({ children, ...rest }: {
3
+ children: ReactNode;
4
+ role?: string;
5
+ 'aria-modal'?: boolean | 'true' | 'false';
6
+ 'aria-label'?: string;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=SheetLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SheetLayer.d.ts","sourceRoot":"","sources":["../../src/screen/SheetLayer.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;IAChD,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,+BAmBA"}
@@ -0,0 +1,45 @@
1
+ import { type ShiftAssignment, type ShiftRole } from './shift';
2
+ export interface ShiftTargetPick {
3
+ kind: 'area' | 'table';
4
+ id: string;
5
+ label: string;
6
+ }
7
+ export interface ShiftPerson {
8
+ id: string;
9
+ name: string;
10
+ }
11
+ /**
12
+ * A escala NA COLUNA da direita, e não numa folha por cima.
13
+ *
14
+ * Em modal ela cobria a planta — e a planta é de onde se escolhe o alvo. O
15
+ * gesto do V1 é "toque a praça, escolha quem atende", e um diálogo no meio
16
+ * obriga a fechar, olhar, reabrir. Na coluna os dois convivem: a mesa fica
17
+ * visível enquanto se escala alguém para ela.
18
+ */
19
+ export declare function ShiftPanel({ assignments, people, areas, target, cutoff, loading, error, saving, onPickCleared, onAssign, onUnassign, onRetry, onClose, onSaveDayCut, }: {
20
+ assignments: ShiftAssignment[];
21
+ people: ShiftPerson[];
22
+ /** Quantas praças a unidade tem — muda a frase do vazio. */
23
+ areas: number;
24
+ /** O que o gerente tocou na planta enquanto o painel está aberto. */
25
+ target: ShiftTargetPick | null;
26
+ cutoff?: string | null;
27
+ loading?: boolean;
28
+ error?: string;
29
+ saving?: boolean;
30
+ /**
31
+ * Gravar o corte do dia. Ausente = o rodapé só informa, sem «mudar» — um app
32
+ * que não deixa mudar não deve oferecer o link.
33
+ */
34
+ onSaveDayCut?: (hhmm: string) => void | Promise<void>;
35
+ onPickCleared: () => void;
36
+ onAssign: (input: {
37
+ personId: string;
38
+ role: ShiftRole;
39
+ untilEndOfDay: boolean;
40
+ }) => void;
41
+ onUnassign: (id: string) => void;
42
+ onRetry?: () => void;
43
+ onClose: () => void;
44
+ }): import("react").JSX.Element;
45
+ //# sourceMappingURL=ShiftPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShiftPanel.d.ts","sourceRoot":"","sources":["../../src/screen/ShiftPanel.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAEL,KAAK,eAAe,EAAE,KAAK,SAAS,EACrC,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAClE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GACpE,EAAE;IACD,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACxF,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BA4MA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShortcutsOverlay.d.ts","sourceRoot":"","sources":["../../src/screen/ShortcutsOverlay.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAW9C,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACrD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAsDA"}
1
+ {"version":3,"file":"ShortcutsOverlay.d.ts","sourceRoot":"","sources":["../../src/screen/ShortcutsOverlay.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAY9C,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACrD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAsDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitSheet.d.ts","sourceRoot":"","sources":["../../src/screen/SplitSheet.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAIrD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACrC,+BA6IA"}
1
+ {"version":3,"file":"SplitSheet.d.ts","sourceRoot":"","sources":["../../src/screen/SplitSheet.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAKrD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACrC,+BA6IA"}
@@ -0,0 +1,22 @@
1
+ import { type TableShape } from './floorGeometry';
2
+ export interface InspectorTable {
3
+ id: string;
4
+ number: number;
5
+ name?: string | null;
6
+ seats: number;
7
+ shape: TableShape;
8
+ widthM: number;
9
+ heightM: number;
10
+ diameterM: number;
11
+ rotation: number;
12
+ }
13
+ export type TablePatch = Partial<Omit<InspectorTable, 'id'>>;
14
+ export declare function TableInspector({ table, areaName, onSave, onZoom, onDetach }: {
15
+ table: InspectorTable;
16
+ /** `null` = a mesa não está na planta. */
17
+ areaName?: string | null;
18
+ onSave: (patch: TablePatch) => void;
19
+ onZoom?: () => void;
20
+ onDetach?: () => void;
21
+ }): import("react").JSX.Element;
22
+ //# sourceMappingURL=TableInspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableInspector.d.ts","sourceRoot":"","sources":["../../src/screen/TableInspector.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMnE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAA;AAQ5D,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC5E,KAAK,EAAE,cAAc,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,+BA0KA"}
@@ -1,6 +1,44 @@
1
1
  import type { PosPaymentMethod, PosPositionStatus, PosVocabulary } from '../app/config';
2
+ import { type PaymentRow } from './paymentList';
3
+ import { type GuestDraft } from './GuestBar';
4
+ import { type TicketGuest } from './session';
2
5
  import type { Ticket, TicketTotals } from './session';
3
- export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, paymentMethods, selectedPaymentId, onSelectPayment, onChangeQuantity, selectedLineId, onSelectLine, onClose, closeShortcut, guests, status, open, zoneLabel, request, now, containerRef, onBrowseCatalog, onEditLine, onEditIdentity, alias, customerPhone, onFire, fireShortcut, }: {
6
+ import { type ClosedTicket } from './ClosedPanel';
7
+ import type { FiscalSeal } from './fiscalSeal';
8
+ /** Uma linha de couvert na conta. */
9
+ export interface OrderCover {
10
+ id: string;
11
+ name: string;
12
+ unitAmount: number;
13
+ guestCount: number;
14
+ total: number;
15
+ discount: number;
16
+ /**
17
+ * Quantos couverts cada participante levou, quando a casa já repartiu.
18
+ *
19
+ * Ausente quer dizer «nunca foi repartido» — e aí a folha começa com 1 em
20
+ * cada um, que é a conta que a RPC aplicou. Ausente NÃO é zero: zero é uma
21
+ * decisão que alguém tomou.
22
+ */
23
+ guestQuantities?: Array<{
24
+ guestId: string;
25
+ qty: number;
26
+ }>;
27
+ /**
28
+ * Quantos couverts a POLÍTICA cobra de quem tem nome e de quem não tem.
29
+ *
30
+ * O adapter já devolvia os dois (`qty_identified`/`qty_unidentified` da
31
+ * cobrança) e este tipo não os declarava, então o `openingCoverQty` do app
32
+ * não COMPILAVA: TS2559, «não tem nada em comum com a política». Em runtime a
33
+ * folha abria certa — o Pertinho cobra 2 de quem tem nome, e era 2 que
34
+ * aparecia, porque o objeto carrega os campos que o tipo omitia. O defeito
35
+ * era de compilação, e ficou escondido porque o Vite não confere tipo e o
36
+ * typecheck do app apontava para OUTRA árvore do SDK.
37
+ */
38
+ qtyIdentified?: number;
39
+ qtyUnidentified?: number;
40
+ }
41
+ export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, paymentMethods, selectedPaymentId, onSelectPayment, onChangeQuantity, selectedLineId, onSelectLine, onClose, closeShortcut, guests, status, open, zoneLabel, request, now, containerRef, onBrowseCatalog, onEditLine, onEditIdentity, alias, customerPhone, onFire, fireShortcut, moreActions, onMoreAction, onPrint, onDiscount, party, selectedGuestId, sharedLabel, serviceChargePercent, guestPaidCents, payments, guestCount, onEditGuestCount, closedChannel, closed, closedIsCounter, closedLoading, closedSeals, closedSealsFailed, onOpenClosed, onReopenClosed, panel, hasOpenOrder, covers, onEditCover, settling, onServiceCharge, receivingAccounts, selectedAccountId, onSelectAccount, selectedInstallments, onSelectInstallments, selectedCardBrand, onSelectCardBrand, onSelectGuest, onAddGuest, onIdentifyGuest, onRemoveGuest, onLookupPhone, }: {
4
42
  ticket: Ticket;
5
43
  totals: TicketTotals;
6
44
  vocabulary: PosVocabulary;
@@ -10,7 +48,30 @@ export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, pay
10
48
  onChangeQuantity: (lineId: string, delta: number) => void;
11
49
  selectedLineId?: string;
12
50
  onSelectLine: (lineId: string) => void;
13
- onClose: () => void;
51
+ /** As contas que podem receber a forma escolhida. */
52
+ receivingAccounts?: Array<{
53
+ id: string;
54
+ name: string;
55
+ kind: string;
56
+ }>;
57
+ /** A bandeira escolhida — «Visa», «Alelo». Ver `brandList`. */
58
+ selectedCardBrand?: string;
59
+ onSelectCardBrand?: (brand: string | undefined) => void;
60
+ selectedAccountId?: string;
61
+ onSelectAccount?: (id?: string) => void;
62
+ /** Em quantas vezes. Só o crédito parcela. */
63
+ selectedInstallments?: number;
64
+ onSelectInstallments?: (n: number) => void;
65
+ /** Fechar a conta. Leva QUEM está pagando e QUANTO — nunca só o gesto. */
66
+ onClose: (cobranca?: {
67
+ guestIds: string[];
68
+ /** O que se cobra NESTE gesto. */
69
+ amountCents: number;
70
+ /** O que a comanda ainda deve, no total. */
71
+ outstandingCents: number;
72
+ /** Para ONDE o dinheiro vai. Sem isto o razão não sabe onde creditar. */
73
+ accountId?: string;
74
+ }) => void;
14
75
  closeShortcut?: string;
15
76
  guests?: number;
16
77
  status?: PosPositionStatus;
@@ -31,6 +92,118 @@ export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, pay
31
92
  containerRef?: React.Ref<HTMLDivElement>;
32
93
  /** An empty ticket's only useful action is going where the items are. */
33
94
  onBrowseCatalog?: () => void;
95
+ /**
96
+ * O que mais se pode fazer com ESTA comanda — transferir, dar desconto,
97
+ * cancelar item, encerrar como cortesia.
98
+ *
99
+ * Vive num `…` ao lado de "Fechar conta" e não em botões soltos: durante o
100
+ * serviço só dois gestos se repetem (lançar e fechar), e uma fileira de seis
101
+ * botões faz o operador mirar. O V1 resolveu assim e a leitura está certa.
102
+ *
103
+ * `disabledReason` é obrigatório para desabilitar: uma linha apagada que não
104
+ * diz por quê vira chamado para o suporte. É o detalhe do V1 que mais
105
+ * economiza pergunta — "Disponível após enviar itens" responde sozinho.
106
+ */
107
+ /**
108
+ * As pessoas desta comanda.
109
+ *
110
+ * Vazio quer dizer "ninguém identificado", e aí a comanda é uma lista só —
111
+ * é o caso comum do balcão. Com gente dentro, a conta passa a ser repartida
112
+ * na tela, e o operador consegue responder "quanto é o da Ana" sem somar de
113
+ * cabeça.
114
+ */
115
+ party?: TicketGuest[];
116
+ /** `null` = a pastilha compartilhada. É o DESTINO dos próximos itens. */
117
+ selectedGuestId?: string | null;
118
+ /** "Mesa" no salão, "Balcão" no balcão — vocabulário do canal. */
119
+ sharedLabel?: string;
120
+ /** A taxa da mesa, para o participante que não tem a sua. */
121
+ serviceChargePercent?: number;
122
+ /** Quanto cada um JÁ PAGOU. A chave do compartilhado é `mesa`. */
123
+ guestPaidCents?: Record<string, number>;
124
+ /** O que já entrou nesta comanda, um por pagamento. */
125
+ payments?: PaymentRow[];
126
+ /**
127
+ * Quantas pessoas SENTARAM — o fato de hoje.
128
+ *
129
+ * Separado de `guests` de propósito: aquele é a CAPACIDADE, e é ele que diz
130
+ * quantas cadeiras a `GuestBar` desenha. O cabeçalho mostrava a capacidade
131
+ * escrita «4 pessoas» numa mesa onde duas sentaram — e é esse número que o
132
+ * couvert cobra, então o cabeçalho contradizia a conta.
133
+ */
134
+ guestCount?: number;
135
+ /** Abrir «Número de Pessoas». Ausente = o número não se muda daqui. */
136
+ onEditGuestCount?: () => void;
137
+ /** Qual canal o painel de fechadas está mostrando — ele nomeia as frases. */
138
+ closedChannel?: string;
139
+ /**
140
+ * As contas fechadas hoje. `undefined` mantém o estado vazio de sempre —
141
+ * o app decide se esta coluna tem esse papel.
142
+ */
143
+ closed?: ClosedTicket[];
144
+ /**
145
+ * Um painel que TOMA a coluna — hoje a «Escala de hoje».
146
+ *
147
+ * Substitui a comanda enquanto está aberto, em vez de cobrir a tela com um
148
+ * diálogo: a planta continua à vista, e é dela que se escolhe o alvo.
149
+ */
150
+ panel?: React.ReactNode;
151
+ /**
152
+ * Há comanda ABERTA nesta posição?
153
+ *
154
+ * Diferente de «a comanda tem itens». Sem isto o rail confundia as duas e
155
+ * trocava a comanda recém-aberta pelo histórico do dia. Ausente, cai no
156
+ * comportamento antigo.
157
+ */
158
+ hasOpenOrder?: boolean;
159
+ /** O couvert aplicado — linhas da conta, não itens do cardápio. */
160
+ covers?: OrderCover[];
161
+ /** Abrir a folha que reparte o couvert por participante — o lápis do V1. */
162
+ onEditCover?: (cover: OrderCover) => void;
163
+ /** A escrita do fechamento está correndo — o «Finalizando…» do V1. */
164
+ settling?: boolean;
165
+ /** Abre a folha da taxa de serviço a partir da linha dela no rodapé. */
166
+ /** Recebe DE QUEM é a taxa: a pastilha do participante manda o id dele, e a
167
+ * linha do rodapé não manda nada (é a da mesa). */
168
+ onServiceCharge?: (guestId?: string) => void;
169
+ /** No balcão o título é "Histórico do balcão": lá não há mesa. */
170
+ closedIsCounter?: boolean;
171
+ closedLoading?: boolean;
172
+ /** Saiu nota? Por conta fechada — é o que faz a lista valer mais que um
173
+ * histórico: emitir nota se cobra depois, e a mesa sem nota só aparece
174
+ * quando já é tarde. */
175
+ closedSeals?: Record<string, FiscalSeal>;
176
+ /** A leitura fiscal falhou. Diferente de "nenhuma tem nota". */
177
+ closedSealsFailed?: boolean;
178
+ onOpenClosed?: (id: string) => void;
179
+ /** REABRIR uma conta fechada. Ausente = a tela não oferece. Ver `reopen.ts`. */
180
+ onReopenClosed?: (t: ClosedTicket) => void;
181
+ onSelectGuest?: (id: string | null) => void;
182
+ onAddGuest?: (draft: GuestDraft) => void | Promise<void>;
183
+ onIdentifyGuest?: (id: string, draft: GuestDraft) => void | Promise<void>;
184
+ onRemoveGuest?: (id: string) => void | Promise<void>;
185
+ onLookupPhone?: (phone: string) => Promise<{
186
+ id: string;
187
+ name: string;
188
+ } | null>;
189
+ moreActions?: Array<{
190
+ id: string;
191
+ label: string;
192
+ disabledReason?: string;
193
+ danger?: boolean;
194
+ separator?: boolean;
195
+ }>;
196
+ onMoreAction?: (id: string) => void;
197
+ /**
198
+ * `Imprimir` e `% Desconto`, ao lado do `…`.
199
+ *
200
+ * No V1 os três dividem a mesma linha acima de "Fechar Comanda", e não é
201
+ * arbitrário: são as ações que se usam com a conta NA MÃO, no minuto em que
202
+ * o cliente pede para fechar. Enterrá-las no menu custa um toque em cada
203
+ * fechamento — e o fechamento é o que mais se repete na noite.
204
+ */
205
+ onPrint?: () => void;
206
+ onDiscount?: () => void;
34
207
  /** Reopens a line for its options and note. */
35
208
  onEditLine?: (lineId: string) => void;
36
209
  /** Names the ticket and takes the customer's phone. */
@@ -1 +1 @@
1
- {"version":3,"file":"TicketRail.d.ts","sourceRoot":"","sources":["../../src/screen/TicketRail.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEvF,OAAO,KAAK,EAAa,MAAM,EAAc,YAAY,EAAE,MAAM,WAAW,CAAA;AAmD5E,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAC9E,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EACtE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAgB,EAC1D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAC/E,MAAM,EAAE,YAAY,GACrB,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,EAAE,aAAa,CAAA;IACzB,cAAc,EAAE,gBAAgB,EAAE,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACxC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,+BAmRA"}
1
+ {"version":3,"file":"TicketRail.d.ts","sourceRoot":"","sources":["../../src/screen/TicketRail.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface TransferLog {
2
+ id: string;
3
+ kind: 'table' | 'guest' | 'items';
4
+ fromLabel?: string;
5
+ toLabel?: string;
6
+ guestLabel?: string;
7
+ itemCount: number;
8
+ authorizedByName?: string;
9
+ note?: string;
10
+ createdAt: string;
11
+ }
12
+ export declare function TransferHistorySheet({ logs, loading, onClose }: {
13
+ logs: TransferLog[];
14
+ loading?: boolean;
15
+ onClose: () => void;
16
+ }): import("react").JSX.Element;
17
+ //# sourceMappingURL=TransferHistorySheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferHistorySheet.d.ts","sourceRoot":"","sources":["../../src/screen/TransferHistorySheet.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAoBD,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC/D,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAyEA"}
@@ -0,0 +1,65 @@
1
+ import type { Ticket } from './session';
2
+ export type TransferKind = 'table' | 'guest' | 'items';
3
+ export interface TransferTarget {
4
+ id: string;
5
+ label: string;
6
+ /**
7
+ * A mesa já tem comanda aberta.
8
+ *
9
+ * Não é o mesmo que indisponível, e é por isso que a marca existe em vez de
10
+ * um filtro só: **mudar a comanda INTEIRA** para uma mesa ocupada juntaria
11
+ * duas contas que ninguém pediu para juntar, e o V1 nem oferece
12
+ * (`fetchAvailableTables(true)`); **mudar UMA PESSOA** para uma mesa ocupada
13
+ * é o caso normal — «o Fabiano foi sentar com o pessoal da 11» — e lá a
14
+ * lista vem inteira (`fetchAvailableTables(false)`).
15
+ *
16
+ * Oferecer só mesa vazia nos dois casos fecha justamente o mais comum dos
17
+ * dois.
18
+ */
19
+ occupied?: boolean;
20
+ }
21
+ export interface TransferGuest {
22
+ id: string;
23
+ label: string;
24
+ /** Quitado: aparece marcado e não se transfere. */
25
+ settled?: boolean;
26
+ /**
27
+ * Quanto ele já pôs, em centavos.
28
+ *
29
+ * O V1 bloqueia por PAGAMENTO, não por quitação — ver
30
+ * `guestTransferBlocked`. Quem pagou R$ 20 de R$ 50 não está quitado e
31
+ * também não se muda de mesa.
32
+ */
33
+ paidCents?: number;
34
+ }
35
+ export interface TransferIntent {
36
+ kind: TransferKind;
37
+ toTableId?: string;
38
+ guestId?: string;
39
+ toGuestId?: string | null;
40
+ lineIds?: string[];
41
+ }
42
+ export declare function TransferSheet({ ticket, positionLabel, tables, guests, authorizers, error, onCancel, onConfirm, }: {
43
+ ticket: Ticket;
44
+ /** A mesa de onde se sai — o V1 mostra "Mesa atual:". */
45
+ positionLabel?: string;
46
+ /** As mesas para onde se pode ir. */
47
+ tables: TransferTarget[];
48
+ guests: TransferGuest[];
49
+ authorizers: Array<{
50
+ id: string;
51
+ name: string;
52
+ }>;
53
+ /**
54
+ * A recusa do SERVIDOR — PIN errado, alçada estourada, comanda travada.
55
+ *
56
+ * Vive na folha, e não num aviso atrás dela: a folha cobre a tela, e um
57
+ * recado que aparece por baixo não existe. Foi o que aconteceu ao portar a
58
+ * conferência de PIN — a autorização era recusada corretamente e o operador
59
+ * via a tela parada, sem uma palavra.
60
+ */
61
+ error?: string;
62
+ onCancel: () => void;
63
+ onConfirm: (intent: TransferIntent) => void;
64
+ }): import("react").JSX.Element;
65
+ //# sourceMappingURL=TransferSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferSheet.d.ts","sourceRoot":"","sources":["../../src/screen/TransferSheet.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,WAAW,CAAA;AASnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AA2CD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAC/E,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CAC5C,+BA6OA"}
@@ -0,0 +1,14 @@
1
+ export interface UnassignedTable {
2
+ id: string;
3
+ /** Ausente ou 0 = a mesa não tem número, e o NOME identifica. */
4
+ number?: number | null;
5
+ name?: string | null;
6
+ seats?: number | null;
7
+ }
8
+ export declare function UnassignedTables({ tables, targetName, onPlace }: {
9
+ tables: UnassignedTable[];
10
+ /** O ambiente que vai receber a mesa. `null` desabilita o botão. */
11
+ targetName?: string | null;
12
+ onPlace: (table: UnassignedTable) => void;
13
+ }): import("react").JSX.Element | null;
14
+ //# sourceMappingURL=UnassignedTables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnassignedTables.d.ts","sourceRoot":"","sources":["../../src/screen/UnassignedTables.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CAC1C,sCAqCA"}
@@ -0,0 +1,23 @@
1
+ import { type NewWaitlistEntry } from './waitlist';
2
+ export declare function WaitlistEntrySheet({ zones, onCancel, onConfirm, onLookupPhone, saving }: {
3
+ /** Os ambientes da casa. Vazio: a pergunta não aparece, como no V1. */
4
+ zones?: Array<{
5
+ id: string;
6
+ label: string;
7
+ }>;
8
+ onCancel: () => void;
9
+ onConfirm: (entry: NewWaitlistEntry) => void;
10
+ /**
11
+ * O telefone JÁ é de alguém?
12
+ *
13
+ * Regra do V1: se o número casa com uma ficha que existe, o walk-in entra no
14
+ * histórico daquela pessoa — e o nome se preenche sozinho. Se NÃO casa, nada
15
+ * é criado: quem passou na porta uma vez não vira cadastro sem querer.
16
+ */
17
+ onLookupPhone?: (digits: string) => Promise<{
18
+ id: string;
19
+ name: string;
20
+ } | null>;
21
+ saving?: boolean;
22
+ }): import("react").JSX.Element;
23
+ //# sourceMappingURL=WaitlistEntrySheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitlistEntrySheet.d.ts","sourceRoot":"","sources":["../../src/screen/WaitlistEntrySheet.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AAEnB,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACxF,uEAAuE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC5C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAChF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,+BAuLA"}
@@ -0,0 +1,41 @@
1
+ import type { PosReservation } from '../app/config';
2
+ import { type WaitlistEntry } from './waitlist';
3
+ export declare function WaitlistView({ entries, reservations, zones, now, canSeat, onAdd, onCall, onSeat, onNoShow, onSeatReservation, onMarkArrived, busyId, query, }: {
4
+ entries: WaitlistEntry[];
5
+ /**
6
+ * As reservas do dia que ainda não sentaram.
7
+ *
8
+ * Elas entram NA MESMA lista, acima da fila: a casa já prometeu aquela mesa,
9
+ * e quem chegou sem reserva disputa o que sobrou. Duas listas em duas telas
10
+ * era o anfitrião cruzando as duas na cabeça — e errando quando o salão
11
+ * enche.
12
+ */
13
+ reservations?: PosReservation[];
14
+ /** Os ambientes, só para nomear o «ambiente preferido» da linha. */
15
+ zones?: Array<{
16
+ id: string;
17
+ label: string;
18
+ }>;
19
+ now: number;
20
+ /**
21
+ * Existe mesa livre que comporta este grupo AGORA?
22
+ *
23
+ * A pergunta é feita por linha porque a resposta muda por linha: a mesa de
24
+ * dois que acabou de vagar serve o casal e não serve a família. Quem sabe é
25
+ * a tela que tem o salão inteiro, não esta lista.
26
+ */
27
+ canSeat: (entry: WaitlistEntry) => boolean;
28
+ onAdd: () => void;
29
+ onCall: (entry: WaitlistEntry) => void;
30
+ onSeat: (entry: WaitlistEntry) => void;
31
+ onNoShow: (entry: WaitlistEntry) => void;
32
+ /** Acomodar a reserva — mesmo gesto do grupo da fila. */
33
+ onSeatReservation?: (reservation: PosReservation) => void;
34
+ /** O CHECK-IN: o grupo da reserva se apresentou na recepção. */
35
+ onMarkArrived?: (reservation: PosReservation) => void;
36
+ /** A linha que está esperando o servidor — só ela desliga. */
37
+ busyId?: string;
38
+ /** O termo da caixa de busca da coluna. Filtra os DOIS grupos. */
39
+ query?: string;
40
+ }): import("react").JSX.Element;
41
+ //# sourceMappingURL=WaitlistView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitlistView.d.ts","sourceRoot":"","sources":["../../src/screen/WaitlistView.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD,OAAO,EAGoB,KAAK,aAAa,EAC5C,MAAM,YAAY,CAAA;AAEnB,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EAAE,YAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAChF,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,KAAU,GACrD,EAAE;IACD,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAA;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAAA;IACzD,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAAA;IACrD,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,+BAkMA"}
@@ -0,0 +1,11 @@
1
+ import type { Box, Point } from './floorGeometry';
2
+ import type { ZoneTool } from './zoneDraft';
3
+ export declare function ZoneDrawLayer({ tool, color, box, stroke }: {
4
+ tool: ZoneTool;
5
+ color: string;
6
+ /** Retângulo/elipse: a caixa do arrasto. */
7
+ box: Box | null;
8
+ /** Mão livre: o traço cru, em metros. */
9
+ stroke: Point[];
10
+ }): import("react").JSX.Element | null;
11
+ //# sourceMappingURL=ZoneDrawLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoneDrawLayer.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneDrawLayer.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1D,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IACf,yCAAyC;IACzC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,sCAyCA"}
@@ -0,0 +1,18 @@
1
+ import { type Point } from './floorGeometry';
2
+ import { type ZoneGeometry } from './zoneEditing';
3
+ export declare function ZoneHandles<T extends ZoneGeometry & {
4
+ name: string;
5
+ }>({ zone, ppm, toWorld, onPreview, onCommit, onRefuse, }: {
6
+ /** A praça COMO ESTÁ NO BANCO — a base de todo delta do gesto. */
7
+ zone: T;
8
+ /** Pixels por metro do enquadramento: as alças têm tamanho de tela. */
9
+ ppm: number;
10
+ toWorld: (clientX: number, clientY: number) => Point;
11
+ /** Durante o gesto: a praça como ela FICARÁ, para o desenho acompanhar. */
12
+ onPreview: (z: T | null) => void;
13
+ /** Ao soltar: só os campos que mudaram. */
14
+ onCommit: (patch: Partial<ZoneGeometry>) => void;
15
+ /** A recusa, com a frase que explica qual regra foi encostada. */
16
+ onRefuse: (reason: string) => void;
17
+ }): import("react").JSX.Element | null;
18
+ //# sourceMappingURL=ZoneHandles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoneHandles.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneHandles.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAEkD,KAAK,KAAK,EAClE,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAgE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAS/G,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACrE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAClD,EAAE;IACD,kEAAkE;IAClE,IAAI,EAAE,CAAC,CAAA;IACP,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAA;IACpD,2EAA2E;IAC3E,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAA;IAChD,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,sCA4KA"}
@@ -0,0 +1,27 @@
1
+ import { type ZoneGeometry } from './zoneEditing';
2
+ export interface InspectorZone extends ZoneGeometry {
3
+ id: string;
4
+ name: string;
5
+ color?: string | null;
6
+ }
7
+ /** A mesa como a ficha a lista. */
8
+ export interface InspectorZoneTable {
9
+ id: string;
10
+ label: string;
11
+ name?: string | null;
12
+ /** Os nomes das OUTRAS praças a que ela pertence — o «também em:». */
13
+ alsoIn?: string[];
14
+ }
15
+ export declare function ZoneInspector({ zone, tables, picking, onPick, onRename, onRecolor, onDropTable, onZoom, onDelete, }: {
16
+ zone: InspectorZone;
17
+ tables: InspectorZoneTable[];
18
+ /** O modo «escolher na planta» está ligado? */
19
+ picking: boolean;
20
+ onPick: (v: boolean) => void;
21
+ onRename: (name: string) => void;
22
+ onRecolor: (color: string) => void;
23
+ onDropTable: (tableId: string) => void;
24
+ onZoom?: () => void;
25
+ onDelete?: () => void;
26
+ }): import("react").JSX.Element;
27
+ //# sourceMappingURL=ZoneInspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoneInspector.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneInspector.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAE7D,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AASD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAClF,EAAE;IACD,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,+BAgJA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Esta forma PERGUNTA a conta?
3
+ *
4
+ * Dinheiro não. `financial_receive_payment` ignora `p_account_id` quando o
5
+ * método é `cash` e liquida na sessão de caixa ABERTA do operador — a conta
6
+ * escolhida não vai a lugar nenhum.
7
+ *
8
+ * E perguntar mesmo assim não era só inútil: o `allowed_account_types` do
9
+ * `cash` inclui `cash_session`, e o cluster do Pertinho tem 118 delas. O
10
+ * seletor listava **26 sessões de outros dias e de outras pessoas** —
11
+ * «Caixa 04/05/2026 - SILVIO MAIA GMAIL» entre elas. Escolher uma afirmava ao
12
+ * operador que o dinheiro ia para o caixa de outra pessoa, num dia que já
13
+ * fechou. Um campo que mente é pior que um campo ausente.
14
+ */
15
+ export declare function methodAsksAccount(transactionType: string | null | undefined): boolean;
16
+ export declare function accountFitsMethod(transactionType: string | null | undefined, accountKind: string | null | undefined): boolean;
17
+ //# sourceMappingURL=accountFit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountFit.d.ts","sourceRoot":"","sources":["../../src/screen/accountFit.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAErF;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,OAAO,CAQT"}
@@ -0,0 +1,16 @@
1
+ export interface PickableAccount {
2
+ id: string;
3
+ name: string;
4
+ kind: string;
5
+ /** A unidade dona. `null`/ausente = conta da conta inteira. */
6
+ unitId?: string | null;
7
+ }
8
+ /**
9
+ * Resolve o empate por nome, preferindo a unidade ativa.
10
+ *
11
+ * Sem unidade ativa — ou quando nenhuma das homônimas é dela — a primeira
12
+ * sobrevive, e a ordem de entrada manda. Nunca some com um nome inteiro: o
13
+ * seletor perde a linha repetida, não a opção.
14
+ */
15
+ export declare function dedupeAccountsByName<T extends PickableAccount>(accounts: readonly T[], activeUnitId?: string | null): T[];
16
+ //# sourceMappingURL=accountPick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountPick.d.ts","sourceRoot":"","sources":["../../src/screen/accountPick.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,eAAe,EAC5D,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,CAAC,EAAE,CAcL"}