@fayz-ai/pos 0.20.5 → 0.21.0

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 +10849 -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 +25 -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,130 @@
1
+ import { type FloorArea, type FloorTable, type Point } from './floorGeometry';
2
+ import { type ZoneDraft, type ZoneTool } from './zoneDraft';
3
+ import { type ZoneGeometry, type ZoneMembershipAction } from './zoneEditing';
4
+ import { type TableTone } from './tableTone';
5
+ export interface PlanTableView extends FloorTable {
6
+ label: string;
7
+ name?: string | null;
8
+ tone: TableTone;
9
+ seats?: number | null;
10
+ /** O cliente pediu a conta — ganha o anel sólido, por cima do tom. */
11
+ billRequested?: boolean;
12
+ /**
13
+ * Escalada DIRETAMENTE para quem está logado.
14
+ *
15
+ * O V1 desenha uma bolinha no canto e acrescenta «, escalada para você» ao
16
+ * rótulo. A razão está no comentário dele: *«a mesa aparece para os dois,
17
+ * esta é "a sua"»* — dentro da praça que o garçom atende, esta foi dada a
18
+ * ele por nome. Sem o ponto, as duas coisas se parecem.
19
+ */
20
+ assignedToMe?: boolean;
21
+ /** Quantas pessoas sentaram, no chip de cima. */
22
+ guests?: number | null;
23
+ /** O que o chip de baixo diz — o total, o tempo. */
24
+ info?: string | null;
25
+ }
26
+ /** Uma PRAÇA desenhada — a região de um garçom. */
27
+ export interface PlanZone {
28
+ id: string;
29
+ name: string;
30
+ color?: string | null;
31
+ /** Retângulo, elipse ou mão livre — o desenho que a criou. */
32
+ shape?: 'rect' | 'rectangle' | 'ellipse' | 'polygon' | null;
33
+ posX?: number | null;
34
+ posY?: number | null;
35
+ widthM?: number | null;
36
+ heightM?: number | null;
37
+ polygon?: Array<{
38
+ x: number;
39
+ y: number;
40
+ }> | null;
41
+ /** As mesas que caem nela. */
42
+ tableIds?: string[];
43
+ }
44
+ export type PlanFocus = {
45
+ level: 'macro';
46
+ } | {
47
+ level: 'area';
48
+ id: string;
49
+ };
50
+ export declare function PlanStage({ areas, zones, tables, activeId, onSelect, dimmedIds, focusAreaId, editing, onMoveTable, tool, onDrawZone, draftColor, selectedZoneId, onSelectZone, onUpdateZone, onRefuseZone, pickingZone, onToggleTableInZone, selectedAreaId, onSelectArea, aspect }: {
51
+ /** Os AMBIENTES — o chão. */
52
+ areas: FloorArea[];
53
+ /**
54
+ * As PRAÇAS — a região que cada garçom atende, por cima do chão.
55
+ *
56
+ * Irmãs do ambiente, não filhas: uma praça CRUZA ambientes, e por isso a
57
+ * geometria dela é absoluta. Translúcidas, para as mesas continuarem
58
+ * legíveis por baixo — a praça diz DE QUEM é a mesa, não o que ela é.
59
+ */
60
+ zones?: PlanZone[];
61
+ tables: PlanTableView[];
62
+ activeId?: string;
63
+ onSelect?: (t: PlanTableView) => void;
64
+ /** Fora do ambiente em foco: translúcidas, mas ainda clicáveis. */
65
+ dimmedIds?: ReadonlySet<string>;
66
+ /**
67
+ * O foco vem DE FORA — do filtro que já mora no rodapé do salão.
68
+ *
69
+ * Ele tinha trilha própria aqui em cima, e eram dois controles para a mesma
70
+ * pergunta: "que parte do salão eu estou vendo?". Quem manda é o de baixo,
71
+ * onde o polegar já está.
72
+ */
73
+ focusAreaId?: string;
74
+ /**
75
+ * MODO EDIÇÃO: a mesa passa a se arrastar em vez de abrir a comanda.
76
+ *
77
+ * O mesmo glifo, o mesmo palco e o mesmo toque — o que muda é o que o gesto
78
+ * significa. Duas telas separadas para ver e para mover fariam o operador
79
+ * conferir numa e corrigir na outra, comparando de memória.
80
+ */
81
+ editing?: boolean;
82
+ /** Ao soltar a mesa: o novo centro, em metros, já arredondado ao cm. */
83
+ onMoveTable?: (id: string, to: Point) => void;
84
+ /**
85
+ * A ferramenta de praça ARMADA, vinda da barra.
86
+ *
87
+ * Com ela ligada o palco muda de assunto: as mesas e os ambientes param de
88
+ * ouvir o ponteiro e uma folha transparente por cima captura o gesto. É o
89
+ * mesmo palco — o que muda é o que o dedo significa.
90
+ */
91
+ tool?: ZoneTool | null;
92
+ /** O resultado do gesto: a praça montada, ou a recusa com as palavras dela. */
93
+ onDrawZone?: (draft: ZoneDraft) => void;
94
+ /** Nome e cor com que a praça VAI nascer — o contorno já sai na cor certa. */
95
+ draftColor?: string;
96
+ /**
97
+ * A praça ESCOLHIDA para mexer — a que ganha as alças.
98
+ *
99
+ * Separada do foco do rodapé de propósito: aquele responde "que parte do
100
+ * salão eu estou vendo", este responde "em qual eu estou mexendo". Foram a
101
+ * mesma coisa por um momento, e aproximar numa praça punha alças nela sem
102
+ * ninguém ter pedido.
103
+ */
104
+ selectedZoneId?: string | null;
105
+ onSelectZone?: (id: string | null) => void;
106
+ /** Grava a geometria da praça ao fim do gesto. */
107
+ onUpdateZone?: (id: string, patch: Partial<ZoneGeometry>) => void;
108
+ /** A recusa do contorno, com a frase que explica a regra. */
109
+ onRefuseZone?: (reason: string) => void;
110
+ /**
111
+ * MODO «escolher mesas na planta».
112
+ *
113
+ * O palco apaga tudo menos a praça e o toque na mesa deixa de arrastar:
114
+ * ele inclui ou exclui. É o mesmo glifo com um terceiro significado, e o
115
+ * que decide é o modo — nunca o gesto.
116
+ */
117
+ pickingZone?: boolean;
118
+ onToggleTableInZone?: (tableId: string, how: ZoneMembershipAction) => void;
119
+ /**
120
+ * O AMBIENTE escolhido para mexer.
121
+ *
122
+ * Em edição o clique no chão deixa de aproximar e passa a SELECIONAR: o
123
+ * mesmo gesto, e o modo decide — como na mesa e na praça. Fora da edição
124
+ * ele continua aproximando, que é o que o garçom quer.
125
+ */
126
+ selectedAreaId?: string | null;
127
+ onSelectArea?: (id: string | null) => void;
128
+ aspect?: number;
129
+ }): import("react").JSX.Element;
130
+ //# sourceMappingURL=PlanStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanStage.d.ts","sourceRoot":"","sources":["../../src/screen/PlanStage.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,19 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type TablePatch } from './TableInspector';
2
3
  import type { DispatchStatus, PosAppConfig, PosCategory, PosItem, PosPosition, PosReservation, PosStaff } from '../app/config';
3
- import { type Ticket, type TicketLine, type TicketTotals } from './session';
4
+ import { type Ticket, type TicketGuest, type TicketLine, type TicketTotals } from './session';
5
+ import type { PaymentRow } from './paymentList';
6
+ import { type OrderCover } from './TicketRail';
7
+ import type { GuestDraft } from './GuestBar';
8
+ import type { ClosedTicket } from './ClosedPanel';
9
+ import type { FiscalSeal } from './fiscalSeal';
10
+ import { type NewWaitlistEntry, type WaitlistEntry } from './waitlist';
4
11
  import { type PosNotice } from './Notice';
12
+ import { type ZoneFields } from './zoneDraft';
13
+ import type { ZoneGeometry } from './zoneEditing';
14
+ import { type FloorScope } from './floorScope';
15
+ import type { OutlinePatch } from './areaOutline';
16
+ import type { ArrangementPlan } from './arrangePlan';
5
17
  /**
6
18
  * A bill at the moment the operator confirms it. Everything the app needs to
7
19
  * settle it is here, so the handler never has to reach back into the screen.
@@ -11,6 +23,56 @@ export interface PosBill {
11
23
  totals: TicketTotals;
12
24
  /** Which of `config.paymentMethods` was chosen. Never guessed. */
13
25
  paymentMethodId: string;
26
+ /**
27
+ * QUEM está pagando agora. Vazio = a comanda inteira.
28
+ *
29
+ * A tela de fechamento deixa marcar uma parte das contas, e essa escolha
30
+ * mudava o total À VISTA e mais nada: o gesto terminava com `onClose()` sem
31
+ * argumento, e quem recebia a conta cobrava sempre o valor cheio. Marcar um
32
+ * de quatro mostrava R$ 40 e fechava R$ 160 — sem aviso.
33
+ */
34
+ guestIds?: string[];
35
+ /**
36
+ * O que se está cobrando NESTE gesto, em centavos.
37
+ *
38
+ * `totals.totalCents` é a comanda inteira e continua aqui: quem fecha
39
+ * precisa saber as duas coisas — quanto a mesa deve e quanto entrou agora —
40
+ * para decidir se a conta zerou. Confundir as duas é fechar mesa com saldo.
41
+ */
42
+ amountCents: number;
43
+ /**
44
+ * O que a comanda AINDA DEVE, em centavos — o total menos o que já entrou.
45
+ *
46
+ * Não é `totals.totalCents`: uma mesa que já recebeu R$ 179,67 deve menos
47
+ * do que soma. Comparar a cobrança com o total BRUTO acusa de parcial um
48
+ * pagamento que na verdade quita a conta — foi o primeiro jeito que eu
49
+ * escrevi esta regra, e ele recusava o fechamento correto.
50
+ */
51
+ outstandingCents: number;
52
+ /**
53
+ * Para ONDE o dinheiro vai — a gaveta, o banco, o recebível do cartão.
54
+ *
55
+ * O razão precisa de um lado de débito, e ele é esta conta. Sem ela,
56
+ * `financial_receive_payment` recusa com "an account is required for
57
+ * method %" — e a recusa é justa: dinheiro que entra sem dizer onde é
58
+ * dinheiro que ninguém concilia.
59
+ */
60
+ accountId?: string;
61
+ /**
62
+ * Em quantas vezes. `1` é à vista, e é o que o débito sempre é.
63
+ *
64
+ * Vai ao razão junto com a forma: uma venda de 3× não é a mesma coisa que
65
+ * três vendas, e o recebível do cartão só bate com a maquininha se souber
66
+ * em quantas parcelas saiu.
67
+ */
68
+ installments?: number;
69
+ /**
70
+ * A bandeira — «Visa», «Alelo».
71
+ *
72
+ * Vai ao razão junto com a forma: a conciliação do mês separa Visa de
73
+ * Mastercard, e sem ela o extrato da adquirente não bate linha a linha.
74
+ */
75
+ cardBrand?: string;
14
76
  }
15
77
  export interface PosScreenProps {
16
78
  config: PosAppConfig;
@@ -19,6 +81,35 @@ export interface PosScreenProps {
19
81
  positions: PosPosition[];
20
82
  staff?: PosStaff[];
21
83
  reservations?: PosReservation[];
84
+ /**
85
+ * A fila de espera — quem chegou sem reserva.
86
+ *
87
+ * Só os ATIVOS (`waiting` e `called`). Quem sentou ou saiu não é fila: é
88
+ * histórico, e ele não disputa a atenção de quem está com o salão cheio.
89
+ */
90
+ waitlist?: WaitlistEntry[];
91
+ /** Pôr alguém na fila. Ausente, o botão «Novo» não aparece. */
92
+ onWaitlistAdd?: (entry: NewWaitlistEntry) => Promise<void> | void;
93
+ /** Chamar (e rechamar) — o banco carimba o prazo de tolerância. */
94
+ onWaitlistCall?: (entryId: string) => Promise<void> | void;
95
+ /** O grupo sentou na mesa `positionId`, na comanda `orderId`. */
96
+ onWaitlistSeat?: (entryId: string, positionId: string) => Promise<void> | void;
97
+ /** Não compareceu ao chamado. Quem decide é o anfitrião, nunca o relógio. */
98
+ onWaitlistNoShow?: (entryId: string) => Promise<void> | void;
99
+ /** O telefone já é de alguém? Ver `WaitlistEntrySheet.onLookupPhone`. */
100
+ onWaitlistLookupPhone?: (digits: string) => Promise<{
101
+ id: string;
102
+ name: string;
103
+ } | null>;
104
+ /**
105
+ * O check-in da reserva, GRAVADO.
106
+ *
107
+ * Sem ele o estado «Chegou» continua existindo, só que na memória deste
108
+ * terminal — que é como a tela de reservas já se comporta. Com ele, o outro
109
+ * terminal do balcão também vê que o grupo se apresentou, e é essa a razão
110
+ * de o gesto existir: duas pessoas atendendo a mesma porta.
111
+ */
112
+ onReservationArrived?: (reservationId: string) => Promise<void> | void;
22
113
  terminalName?: string;
23
114
  operatorName?: string;
24
115
  /**
@@ -31,7 +122,203 @@ export interface PosScreenProps {
31
122
  */
32
123
  operatorId?: string;
33
124
  connection?: 'online' | 'reconnecting' | 'offline';
34
- onAction?: (actionId: string) => void;
125
+ /**
126
+ * Uma ação que o pacote não resolve sozinho.
127
+ *
128
+ * Vai com o CONTEXTO: sem saber de qual comanda a ação partiu, o app abriria
129
+ * a folha de desconto sobre "a comanda atual" e acertaria por sorte — o
130
+ * operador troca de mesa entre tocar o botão e a folha subir.
131
+ */
132
+ /** `guestId` só vem quando a ação foi pedida a partir de UM participante —
133
+ * a pastilha de taxa ao lado do nome dele. */
134
+ onAction?: (actionId: string, ctx: {
135
+ positionId?: string;
136
+ ticket: Ticket;
137
+ guestId?: string;
138
+ }) => void;
139
+ /**
140
+ * Descartar uma comanda vazia, pela régua do rodapé.
141
+ *
142
+ * O pacote só oferece o gesto onde ele é seguro (comanda de R$ 0,00 e sem
143
+ * mesa); quem apaga no banco é o app.
144
+ */
145
+ onDiscardTicket?: (positionId: string) => void;
146
+ /**
147
+ * As pessoas da comanda ativa.
148
+ *
149
+ * Por posição, porque a seleção é DESTA mesa: escolher a Ana na mesa 3 e
150
+ * andar até a 5 não pode continuar lançando na Ana.
151
+ *
152
+ * O app é quem sabe: no salão são os participantes da mesa; no balcão
153
+ * costuma não haver nenhum, e aí a comanda volta a ser uma lista só — que é
154
+ * o comportamento do V1 e o certo para a fila do caixa.
155
+ */
156
+ /**
157
+ * Um painel que toma a COLUNA da direita — hoje a «Escala de hoje».
158
+ *
159
+ * Aberto, ele substitui a comanda e a planta continua à vista: é dela que se
160
+ * escolhe a praça ou a mesa a escalar. Em diálogo, o gesto exigia fechar,
161
+ * olhar e reabrir.
162
+ */
163
+ railPanel?: React.ReactNode;
164
+ /** O couvert aplicado a cada comanda — linhas da conta, por posição. */
165
+ coversByPosition?: Record<string, OrderCover[]>;
166
+ /**
167
+ * Repartir o couvert por participante — o lápis do V1 na linha dos totais.
168
+ *
169
+ * Recebe a comanda junto porque o escritor precisa saber em qual delas
170
+ * mexer, e o cartão do couvert só carrega o próprio id.
171
+ */
172
+ onEditCover?: (positionId: string, cover: OrderCover) => void;
173
+ /** O que já entrou em cada comanda, por pagamento. */
174
+ paymentsByPosition?: Record<string, PaymentRow[]>;
175
+ /** Abrir «Número de Pessoas» da comanda corrente. */
176
+ onEditGuestCount?: (positionId: string) => void;
177
+ /**
178
+ * Uma posição OCUPADA acabou de ser escolhida.
179
+ *
180
+ * Existe para o app buscar o que ainda não trouxe: a comanda de canal
181
+ * avulsa entra na bandeja com valor e idade, e as LINHAS dela só valem a
182
+ * consulta quando alguém a toca — carregar as onze abertas no boot custaria
183
+ * seis consultas cada.
184
+ */
185
+ onActivatePosition?: (positionId: string) => void;
186
+ /** As contas fechadas hoje — o que a coluna mostra sem comanda aberta. */
187
+ closedTickets?: ClosedTicket[];
188
+ /** Reabrir uma conta fechada — ver `reopen.ts`. */
189
+ onReopenClosed?: (t: ClosedTicket) => void;
190
+ closedLoading?: boolean;
191
+ /** Saiu nota? Por conta fechada — ver `fiscalSeal.ts`. */
192
+ closedSeals?: Record<string, FiscalSeal>;
193
+ /** A leitura fiscal falhou. O painel diz isso em vez de pintar tudo de
194
+ * "sem nota": num painel que existe para apontar o que falta emitir, não
195
+ * saber e saber que não são coisas diferentes. */
196
+ closedSealsFailed?: boolean;
197
+ onOpenClosed?: (id: string) => void;
198
+ /**
199
+ * O gesto de SAIR, em dois estágios.
200
+ *
201
+ * O ✕ do canto pertence ao hospedeiro e fecha o PDV inteiro. Mas quem está
202
+ * com a mesa 12 aberta e toca ali quase nunca quer sair do PDV: quer largar
203
+ * a mesa. O PDV registra aqui uma função que CONSOME o gesto quando há o que
204
+ * largar, e devolve `false` quando não há — e aí o hospedeiro fecha, como
205
+ * antes. Sem isto, um toque no canto tira o operador do caixa no meio do
206
+ * serviço, e voltar custa dois gestos e uma tela de carregamento.
207
+ */
208
+ registerEscape?: (fn: () => boolean) => void;
209
+ /**
210
+ * Mover uma mesa na planta. Sem isto não há «Editar planta» — o botão que
211
+ * abre um modo sem ação é pior que a ausência dele.
212
+ */
213
+ onMoveTable?: (id: string, to: {
214
+ x: number;
215
+ y: number;
216
+ }) => void | Promise<void>;
217
+ /** Grava um campo da ficha da mesa. Sem isto a ficha não abre. */
218
+ onUpdateTable?: (id: string, patch: TablePatch) => void | Promise<void>;
219
+ /**
220
+ * Cria uma PRAÇA a partir do desenho. Sem isto as três ferramentas somem.
221
+ *
222
+ * Praça não é ambiente: ela é o RECORTE de atendimento, desenhado por cima
223
+ * do chão, e pode cruzar dois ambientes. O vocabulário é contrato — foi
224
+ * chamar uma de outra que fez a casa batizar os ambientes de «Praça 1».
225
+ */
226
+ onCreateZone?: (fields: ZoneFields) => void | Promise<void>;
227
+ /** Grava a geometria de uma praça já desenhada — mover, esticar, reformar. */
228
+ onUpdateZone?: (id: string, patch: Partial<ZoneGeometry>) => void | Promise<void>;
229
+ /** Põe ou tira uma mesa da praça, à mão. */
230
+ onTogglaMesaNaPraca?: (zoneId: string, tableId: string, how: 'include' | 'exclude' | 'reset') => void;
231
+ /** Apaga a praça. As mesas ficam; o que se perde é o recorte. */
232
+ onDeleteZone?: (id: string) => void | Promise<void>;
233
+ /**
234
+ * Aplica o plano de «Organizar automaticamente».
235
+ *
236
+ * Vai em LOTE de propósito: cem mesas em cem chamadas fariam o salão andar
237
+ * a conta-gotas na tela e deixariam o banco num meio-termo se uma falhasse.
238
+ */
239
+ onArrange?: (plan: ArrangementPlan) => void | Promise<void>;
240
+ /**
241
+ * Grava a ficha e o contorno do AMBIENTE — a parede, não o recorte.
242
+ *
243
+ * Nunca leva unidade nem inquilino: o V1 conta que um campo a mais no
244
+ * update carregou um salão inteiro, com as mesas dentro, para a unidade que
245
+ * estava selecionada no topo da tela.
246
+ */
247
+ onUpdateArea?: (id: string, patch: Partial<OutlinePatch>) => void | Promise<void>;
248
+ /**
249
+ * De quem são estas mesas — a escala vigente de quem está logado.
250
+ *
251
+ * Sem ficha de pessoa (`staffId` nulo) a tela não mostra aviso nenhum: não
252
+ * há escala possível, e um aviso em toda tela seria ruído.
253
+ */
254
+ floorScope?: FloorScope | null;
255
+ /**
256
+ * A porta para o CADASTRO de mesas — número, lugares, criar em lote.
257
+ *
258
+ * O V1 a põe ao lado do `Simplificada | Planta baixa`, atrás de
259
+ * `restaurant_tables_admin`. Aqui ela só existe quando o app manda o
260
+ * atalho: quem decide a permissão é quem a conhece, e um botão que aparece
261
+ * para negar depois é pior que a ausência dele.
262
+ *
263
+ * É diferente de «Editar planta»: lá se ARRUMA o salão desenhado, aqui se
264
+ * CADASTRA a mesa que ainda não existe.
265
+ */
266
+ onConfigureTables?: () => void;
267
+ /**
268
+ * Um controle do app na barra da PLANTA — hoje o "Escala de hoje".
269
+ *
270
+ * Vive aqui e não numa ação da comanda porque a pergunta é do salão, não da
271
+ * conta: "de quem é aquela mesa?" se responde olhando a planta.
272
+ */
273
+ floorTool?: React.ReactNode;
274
+ /**
275
+ * A planta vira um SELETOR.
276
+ *
277
+ * Com a escala aberta, tocar uma mesa escolhe o alvo em vez de abrir a
278
+ * comanda — é o gesto do V1, e é mais direto do que procurar um nome entre
279
+ * duzentos numa lista.
280
+ */
281
+ shiftMode?: boolean;
282
+ onPickTarget?: (t: {
283
+ kind: 'area' | 'table';
284
+ id: string;
285
+ label: string;
286
+ }) => void;
287
+ /** Chamado quando a tela sai do modo em que o painel da escala faz sentido. */
288
+ onCloseShift?: () => void;
289
+ parties?: Record<string, TicketGuest[]>;
290
+ /**
291
+ * A taxa DESTA comanda, quando ela difere da política da casa.
292
+ *
293
+ * A casa tem uma taxa; a mesa pode ter a sua, combinada na hora. O rodapé
294
+ * precisa da taxa da MESA — com a da casa ele mostrava R$ 74,00 numa conta
295
+ * que o banco já tinha fechado em R$ 83,62, e a diferença é o que o cliente
296
+ * vê na maquininha.
297
+ */
298
+ serviceChargeByPosition?: Record<string, number>;
299
+ /** Sobrepõe o rótulo da pastilha compartilhada ("Mesa"/"Balcão"/"Pedido"). */
300
+ sharedLabel?: string;
301
+ /** Quanto já foi pago em cada comanda, por participante (chave `mesa` = o
302
+ * compartilhado). O rail recebe o da comanda ativa. */
303
+ paidByPosition?: Record<string, Record<string, number>>;
304
+ /**
305
+ * Senta mais uma pessoa. A POSIÇÃO vem junto: o app não tem como saber
306
+ * sozinho em que mesa o operador está — quem sabe isso é esta tela.
307
+ */
308
+ /**
309
+ * O cliente da comanda foi identificado.
310
+ *
311
+ * O app decide o que fazer com isso — gravar o nome na comanda e, quando a
312
+ * primeira cadeira ainda não tem dono, dar o nome a ela também.
313
+ */
314
+ onIdentify?: (positionId: string, alias: string, phone?: string) => void | Promise<void>;
315
+ onAddGuest?: (draft: GuestDraft, positionId: string) => void | Promise<void>;
316
+ onIdentifyGuest?: (id: string, draft: GuestDraft) => void | Promise<void>;
317
+ onRemoveGuest?: (id: string) => void | Promise<void>;
318
+ onLookupPhone?: (phone: string) => Promise<{
319
+ id: string;
320
+ name: string;
321
+ } | null>;
35
322
  /** Fired when the operator opens a position, so the app can persist it. */
36
323
  onOpenPosition?: (positionId: string, guests: number, attendantId?: string) => void;
37
324
  /**
@@ -57,6 +344,24 @@ export interface PosScreenProps {
57
344
  verifyPin?: (pin: string, actionId: string) => PosStaff | null | Promise<PosStaff | null>;
58
345
  /** Called after a gated action is authorised, with who released it. */
59
346
  onAuthorised?: (actionId: string, by: PosStaff) => void;
347
+ /**
348
+ * Por que ESTA ação não pode agora — a regra de NEGÓCIO, que é do app.
349
+ *
350
+ * O pacote sabe que "não se cancela o que a cozinha não viu": isso é sobre a
351
+ * comanda e vale em qualquer casa. Mas "cortesia não existe em retirada nem
352
+ * em delivery, porque esses canais têm jornada própria de pagamento e
353
+ * repasse" é política do produto — e enfiá-la aqui faria o PDV carregar a
354
+ * regra fiscal de um país dentro de um componente de tela.
355
+ *
356
+ * O que o app devolve VENCE o padrão do pacote: uma casa pode proibir o que
357
+ * o pacote permitiria, e nunca o contrário.
358
+ */
359
+ actionGate?: (actionId: string, ctx: {
360
+ /** O menu aberto — é dele que sai o canal da venda. */
361
+ menuId?: string;
362
+ position?: PosPosition;
363
+ ticket: Ticket;
364
+ }) => string | undefined | false;
60
365
  /** Orders already open when the screen mounts, keyed by position id. */
61
366
  initialTickets?: Record<string, TicketLine[]>;
62
367
  /**
@@ -66,6 +371,22 @@ export interface PosScreenProps {
66
371
  * one that did not).
67
372
  */
68
373
  notice?: PosNotice;
374
+ /**
375
+ * O mapa do salão não carregou — a mesa «livre» pode não estar.
376
+ *
377
+ * Faixa FIXA enquanto durar, com a frase do V1. Ver `floorStale.ts`.
378
+ */
379
+ /**
380
+ * Há CAIXA ABERTO para quem está no teclado?
381
+ *
382
+ * O sexto motivo do V1 para a cortesia estar bloqueada — «Abra seu caixa para
383
+ * usar a cortesia». `undefined` quer dizer «não sei» e não bloqueia: o app que
384
+ * não lê sessão de caixa não deve negar por um caixa que ninguém conferiu.
385
+ */
386
+ cashOpen?: boolean;
387
+ floorStale?: boolean;
388
+ /** O «Tentar novamente» da faixa. Sem ele, o botão não aparece. */
389
+ onRetryFloor?: () => void;
69
390
  /**
70
391
  * The product's own mark, in the operator plate.
71
392
  *
@@ -113,6 +434,19 @@ export interface PosScreenProps {
113
434
  * — it never accepts a second one.
114
435
  */
115
436
  className?: string;
437
+ /**
438
+ * Sob que luz esta tela abre.
439
+ *
440
+ * `'dark'` (o padrão) é o terminal dedicado: ele vive sozinho num balcão, a
441
+ * noite inteira, e o carvão é o fundo certo. `'light'` é o PDV aberto POR
442
+ * CIMA de uma retaguarda clara — ali o operador estava numa tela de papel
443
+ * meio segundo antes, e trocar o fundo faria a chave de modo parecer troca
444
+ * de programa em vez de troca de lado da mesma casa.
445
+ *
446
+ * Não é um segundo design system: as duas peles declaram o MESMO conjunto
447
+ * de `--pos-*`, e toque, ritmo, raio e tempo não mudam entre elas.
448
+ */
449
+ theme?: 'dark' | 'light';
116
450
  /**
117
451
  * A MESMA costura do `className`, para o valor que não cabe numa classe.
118
452
  *
@@ -132,8 +466,21 @@ export interface PosScreenProps {
132
466
  * o operador ir cadastrar mesa que já existe.
133
467
  */
134
468
  loading?: boolean;
469
+ /**
470
+ * Quando esta cópia do cardápio saiu do banco (epoch ms).
471
+ *
472
+ * O cardápio do PDV não se relê a cada gesto — ver `catalog-cache` no
473
+ * plugin-menu. O preço disso é que o operador não sabe de quando é o que
474
+ * está vendo, e estes três campos são a resposta: a idade, a revalidação em
475
+ * curso e o gesto de forçar. Sem `onRefreshMenu` nada disso aparece.
476
+ */
477
+ menuFetchedAt?: number;
478
+ menuRefreshing?: boolean;
479
+ /** A última revalidação falhou; o que está na tela é a cópia anterior. */
480
+ menuStale?: boolean;
481
+ onRefreshMenu?: () => void;
135
482
  /** Injected in tests so elapsed times are not wall-clock dependent. */
136
483
  now?: number;
137
484
  }
138
- export declare function PosScreen({ config, categories, items, positions, staff, reservations, terminalName, operatorName, connection, operatorId, onAction, onOpenPosition, onFire, onCloseBill, onDispatch, verifyPin, onAuthorised, initialTickets, notice: appNotice, brandMark, brandName, className, style, railTop, unitSwitcher, loading, now, }: PosScreenProps): import("react").JSX.Element;
485
+ export declare function PosScreen({ config, categories, items, positions, staff, reservations, terminalName, operatorName, waitlist, onWaitlistAdd, onWaitlistCall, onWaitlistSeat, onWaitlistNoShow, onWaitlistLookupPhone, onReservationArrived, connection, operatorId, onAction, onOpenPosition, onFire, onCloseBill, onDispatch, verifyPin, onAuthorised, actionGate, onDiscardTicket, initialTickets, notice: appNotice, cashOpen, floorStale, onRetryFloor, brandMark, brandName, className, theme, style, railTop, parties, sharedLabel, paidByPosition, serviceChargeByPosition, floorTool, shiftMode, onPickTarget, onCloseShift, registerEscape, onMoveTable: onMoveTableProp, onUpdateTable, onCreateZone, onUpdateZone, onTogglaMesaNaPraca, onDeleteZone, onArrange, onUpdateArea, floorScope, onConfigureTables, closedTickets, closedLoading, closedSeals, closedSealsFailed, onOpenClosed, onReopenClosed, railPanel, coversByPosition, onEditCover, paymentsByPosition, onEditGuestCount, onActivatePosition, onIdentify, onAddGuest, onIdentifyGuest, onRemoveGuest, onLookupPhone, unitSwitcher, loading, menuFetchedAt, menuRefreshing, menuStale, onRefreshMenu, now, }: PosScreenProps): import("react").JSX.Element;
139
486
  //# sourceMappingURL=PosScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PosScreen.d.ts","sourceRoot":"","sources":["../../src/screen/PosScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PosScreen.d.ts","sourceRoot":"","sources":["../../src/screen/PosScreen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /** Uma taxa cadastrada pela casa. */
2
+ export interface ServicePreset {
3
+ id: string;
4
+ label: string;
5
+ percent: number;
6
+ isDefault?: boolean;
7
+ }
8
+ /** Um participante da comanda, para o percentual dele. */
9
+ export interface ServiceGuest {
10
+ id: string;
11
+ label: string;
12
+ /** `null` = usa a taxa da mesa. Vazio NÃO é zero. */
13
+ percent?: number | null;
14
+ /** Quem já quitou não entra: a parte paga fica congelada. */
15
+ settled?: boolean;
16
+ /**
17
+ * A taxa que ESTE participante já pagou, em centavos — do `settledBill` que
18
+ * o banco gravou na hora do pagamento, não do que a tela somaria agora.
19
+ * Ver `SettledService` em `servicePreview`.
20
+ */
21
+ settledServiceCents?: number;
22
+ }
23
+ export interface ServiceChargeIntent {
24
+ percent: number;
25
+ /** Só os participantes cujo percentual MUDOU. */
26
+ guestOverrides: Array<{
27
+ guestId: string;
28
+ percent: number | null;
29
+ }>;
30
+ }
31
+ export declare function ServiceChargeSheet({ currentPercent, eligibleCents, lines, presets, guests, guestsUnavailable, authorizers, error, focusGuestId, onCancel, onConfirm, waivable, onWaive, }: {
32
+ currentPercent: number;
33
+ /** A base ELEGÍVEL, já sem as isenções — não o subtotal. */
34
+ eligibleCents: number;
35
+ /**
36
+ * As linhas ELEGÍVEIS, com o dono de cada uma.
37
+ *
38
+ * Sem elas a prévia inventava a sua própria conta de taxa — a TERCEIRA no
39
+ * PDV, depois da tela e do papel. Ver `previewServiceCents`.
40
+ */
41
+ lines?: Array<{
42
+ unitPriceCents: number;
43
+ quantity: number;
44
+ discountCents?: number;
45
+ guestId?: string | null;
46
+ }>;
47
+ presets: ServicePreset[];
48
+ /**
49
+ * A saída de emergência está aberta?
50
+ *
51
+ * Só depois de o servidor RECUSAR a mudança por pagamento sem dono, e só
52
+ * quando a intenção era BAIXAR a taxa — é o `offersWaive` do
53
+ * `serviceChargeGuard`. Não é item de menu: é o que resta quando o caminho
54
+ * normal fechou, e oferecê-la antes convidaria a usá-la como atalho para
55
+ * não cobrar.
56
+ */
57
+ waivable?: boolean;
58
+ /**
59
+ * A lista de participantes NÃO pôde ser lida.
60
+ *
61
+ * O V1 avisa e **trava o salvar** (`loadFailed` entra no `disabled` e no
62
+ * early return do confirm). A regra é sobre dinheiro: a taxa incide por
63
+ * participante, e sem saber quem já quitou a folha oferece como disponível
64
+ * quem fechou a conta — mexer no percentual dele mexe num total que alguém
65
+ * já pagou.
66
+ */
67
+ guestsUnavailable?: boolean;
68
+ /** Quem executa a retirada. Sem ele o aviso não aparece — um botão que não
69
+ * tem para onde ir é pior do que a ausência dele. */
70
+ onWaive?: () => void;
71
+ guests: ServiceGuest[];
72
+ authorizers: Array<{
73
+ id: string;
74
+ name: string;
75
+ }>;
76
+ /**
77
+ * A recusa do SERVIDOR — PIN errado, alçada estourada, comanda travada.
78
+ *
79
+ * Vive na folha, e não num aviso atrás dela: a folha cobre a tela, e um
80
+ * recado que aparece por baixo não existe. Foi o que aconteceu ao portar a
81
+ * conferência de PIN — a autorização era recusada corretamente e o operador
82
+ * via a tela parada, sem uma palavra.
83
+ */
84
+ error?: string;
85
+ /**
86
+ * Abrir JÁ NAQUELA pessoa.
87
+ *
88
+ * O `13%` ao lado do nome de cada participante abre esta folha. Sem isto ela
89
+ * abria na taxa da mesa, com a lista de todo mundo embaixo — e numa mesa de
90
+ * vinte e duas pessoas o garçom precisava reencontrar, dentro da folha, a
91
+ * linha em que acabou de tocar. O alvo já disse de quem é: a folha começa
92
+ * ali.
93
+ */
94
+ focusGuestId?: string;
95
+ onCancel: () => void;
96
+ onConfirm: (intent: ServiceChargeIntent) => void;
97
+ }): import("react").JSX.Element;
98
+ //# sourceMappingURL=ServiceChargeSheet.d.ts.map