@fayz-ai/pos 0.20.0 → 0.20.2

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.
@@ -1,8 +1,25 @@
1
1
  import type { PosPosition, PosStaff, PosVocabulary } from '../app/config';
2
- export declare function OpenTableSheet({ position, vocabulary, staff, defaultSeats, seatingName, onCancel, onConfirm, }: {
2
+ export declare function OpenTableSheet({ position, vocabulary, staff, operator, defaultSeats, seatingName, onCancel, onConfirm, }: {
3
3
  position: PosPosition;
4
4
  vocabulary: PosVocabulary;
5
5
  staff: PosStaff[];
6
+ /**
7
+ * Quem está no teclado. Quando o PDV sabe, a mesa abre NO NOME DELE e a
8
+ * lista de atendentes some.
9
+ *
10
+ * Escolher o atendente era uma pergunta cuja resposta o sistema já tem: quem
11
+ * abre a mesa é quem está logado no caixa. A lista transformava isso em um
12
+ * toque a mais no gesto mais repetido do turno — e, pior, num toque ERRÁVEL:
13
+ * o primeiro da lista vinha pré-selecionado, então esquecer de trocar
14
+ * carimbava a comanda no nome de outra pessoa e a gorjeta ia junto.
15
+ *
16
+ * A lista continua existindo para o caso em que o sistema NÃO sabe (um
17
+ * terminal compartilhado, sem login individual).
18
+ */
19
+ operator?: {
20
+ id: string;
21
+ name: string;
22
+ };
6
23
  defaultSeats?: number;
7
24
  /** Set when a reservation is being seated — this sheet is then the CONFIRM
8
25
  * step of that flow, and has to say whose party it is about to seat. */
@@ -1 +1 @@
1
- {"version":3,"file":"OpenTableSheet.d.ts","sourceRoot":"","sources":["../../src/screen/OpenTableSheet.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEzE,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,GAC5E,EAAE;IACD,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,aAAa,CAAA;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;6EACyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1D,+BA+GA"}
1
+ {"version":3,"file":"OpenTableSheet.d.ts","sourceRoot":"","sources":["../../src/screen/OpenTableSheet.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEzE,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,GACtF,EAAE;IACD,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,aAAa,CAAA;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;6EACyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1D,+BAsHA"}
@@ -21,6 +21,15 @@ export interface PosScreenProps {
21
21
  reservations?: PosReservation[];
22
22
  terminalName?: string;
23
23
  operatorName?: string;
24
+ /**
25
+ * O id de quem está logado no caixa.
26
+ *
27
+ * Com ele a mesa abre no nome do operador e o seletor de atendente some —
28
+ * ver `operator` em OpenTableSheet. Sem ele (terminal compartilhado, sem
29
+ * login individual) a lista continua sendo a única forma de saber de quem é
30
+ * a comanda.
31
+ */
32
+ operatorId?: string;
24
33
  connection?: 'online' | 'reconnecting' | 'offline';
25
34
  onAction?: (actionId: string) => void;
26
35
  /** Fired when the operator opens a position, so the app can persist it. */
@@ -76,6 +85,21 @@ export interface PosScreenProps {
76
85
  * the labels would be crushed: there the way out is the host's own corner.
77
86
  */
78
87
  railTop?: ReactNode;
88
+ /**
89
+ * Which unit this till is standing in, beside the view's title.
90
+ *
91
+ * A slot and not a component: knowing about units is the back office's job,
92
+ * and `@fayz-ai/pos` depends on `core` alone — a till that never had units
93
+ * should not ship the tree that models them. The host passes its own control
94
+ * (in the SDK that is `UnitMenuSection` from `@fayz-ai/admin`), and a
95
+ * single-unit shop passes nothing and loses no pixels.
96
+ *
97
+ * In the head band rather than the rail because it answers "where am I
98
+ * standing", which is the same question the view title answers — and in a
99
+ * franchise, reading the wrong unit's till is the most expensive mistake the
100
+ * screen offers. It must be legible without opening anything.
101
+ */
102
+ unitSwitcher?: ReactNode;
79
103
  /**
80
104
  * The wordmark beside the mark. Plain `config.name` unless the host has a
81
105
  * lockup of its own — a product whose name carries two weights ("**Chef**
@@ -89,8 +113,27 @@ export interface PosScreenProps {
89
113
  * — it never accepts a second one.
90
114
  */
91
115
  className?: string;
116
+ /**
117
+ * A MESMA costura do `className`, para o valor que não cabe numa classe.
118
+ *
119
+ * A regra acima — só `--pos-*`, nunca um segundo design system — continua de
120
+ * pé; o que muda é de onde a variável vem. Uma classe serve enquanto a
121
+ * paleta do hospedeiro é conhecida no build; a cor de um INQUILINO não é:
122
+ * ela sai do documento de marca dele em tempo de execução, e não há folha de
123
+ * estilo onde escrevê-la. Sem isto o caixa de um salão azul-marinho abria
124
+ * dourado, porque o dourado é a cor do ChefControl e não a da casa.
125
+ */
126
+ style?: React.CSSProperties;
127
+ /**
128
+ * O app ainda está buscando mesas e cardápio.
129
+ *
130
+ * Sem isto o PDV abria dizendo "nenhuma mesa nesta área" enquanto a consulta
131
+ * corria — e "vazio" e "carregando" são respostas diferentes: a primeira faz
132
+ * o operador ir cadastrar mesa que já existe.
133
+ */
134
+ loading?: boolean;
92
135
  /** Injected in tests so elapsed times are not wall-clock dependent. */
93
136
  now?: number;
94
137
  }
95
- export declare function PosScreen({ config, categories, items, positions, staff, reservations, terminalName, operatorName, connection, onAction, onOpenPosition, onFire, onCloseBill, onDispatch, verifyPin, onAuthorised, initialTickets, notice: appNotice, brandMark, brandName, className, railTop, now, }: PosScreenProps): import("react").JSX.Element;
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;
96
139
  //# 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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"}
@@ -1,6 +1,6 @@
1
1
  import type { PosPaymentMethod, PosPositionStatus, PosVocabulary } from '../app/config';
2
2
  import type { Ticket, TicketTotals } from './session';
3
- export declare function TicketRail({ 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, }: {
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, }: {
4
4
  ticket: Ticket;
5
5
  totals: TicketTotals;
6
6
  vocabulary: PosVocabulary;
@@ -19,6 +19,14 @@ export declare function TicketRail({ ticket, totals, vocabulary, paymentMethods,
19
19
  now?: number;
20
20
  /** Small screens slide this rail in; wide ones ignore it. */
21
21
  open?: boolean;
22
+ /**
23
+ * Fecha a comanda no celular, onde ela ocupa a tela INTEIRA.
24
+ *
25
+ * Numa coluna ao lado do catálogo não há o que fechar — a comanda está
26
+ * sempre à vista. Em tela cheia ela cobre o cardápio, e sem esta seta o
27
+ * único caminho de volta seria o botão do sistema, que sai do app.
28
+ */
29
+ onCollapse?: () => void;
22
30
  /** Lets the screen scope arrow navigation to this column. */
23
31
  containerRef?: React.Ref<HTMLDivElement>;
24
32
  /** An empty ticket's only useful action is going where the items are. */
@@ -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;AAW5E,wBAAgB,UAAU,CAAC,EACzB,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,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,+BAkPA"}
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"}
@@ -5,6 +5,21 @@ export declare function StatusBadge({ status }: {
5
5
  status: PosPositionStatus;
6
6
  }): import("react").JSX.Element;
7
7
  export declare function elapsed(openedAt?: string, now?: number): string | undefined;
8
+ /**
9
+ * O esqueleto do que está vindo, não um spinner.
10
+ *
11
+ * Um spinner diz "espere" e não diz o quê; o esqueleto já desenha a grade que
12
+ * vai aparecer, então a tela não SALTA quando o dado chega — e num PDV que
13
+ * abre com a mão indo para a primeira mesa, o salto é o que faz errar o alvo.
14
+ * `aria-busy` no contêiner conta a mesma coisa para quem não vê o desenho.
15
+ */
16
+ export declare function FloorSkeleton({ count }: {
17
+ count?: number;
18
+ }): import("react").JSX.Element;
19
+ export declare function CatalogSkeleton({ categories, items }: {
20
+ categories?: number;
21
+ items?: number;
22
+ }): import("react").JSX.Element;
8
23
  export declare function EmptyState({ title, hint, Icon, action }: {
9
24
  title: string;
10
25
  hint?: string;
@@ -15,7 +30,7 @@ export declare function EmptyState({ title, hint, Icon, action }: {
15
30
  onClick: () => void;
16
31
  };
17
32
  }): import("react").JSX.Element;
18
- export declare function FloorView({ positions, config, activeId, onSelect, now, picking }: {
33
+ export declare function FloorView({ positions, config, activeId, onSelect, now, picking, layout }: {
19
34
  positions: PosPosition[];
20
35
  config: PosPositionConfig;
21
36
  activeId?: string;
@@ -23,6 +38,16 @@ export declare function FloorView({ positions, config, activeId, onSelect, now,
23
38
  now: number;
24
39
  /** A party is waiting: only the free tables are answers to the question. */
25
40
  picking?: boolean;
41
+ /**
42
+ * Qual das duas formas de ver o salão. Escolha de QUEM OLHA, não do cadastro.
43
+ *
44
+ * A planta responde "onde fica a mesa 6" e a grade responde "o que está
45
+ * acontecendo nas minhas mesas" — a segunda é a pergunta do turno, e a que
46
+ * cabe num telefone: cartão com número, status, quem atende, há quanto tempo
47
+ * e quanto já consumiu, tudo legível sem beliscar para dar zoom. Por isso a
48
+ * grade é o padrão, e a planta é para quando a dúvida é geográfica.
49
+ */
50
+ layout?: 'grid' | 'plan';
26
51
  }): import("react").JSX.Element;
27
52
  /** Two letters is what fits on a table at plan scale, and it is what a floor
28
53
  * manager already reads on a printed roster. */
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/screen/views.tsx"],"names":[],"mappings":"AAOA,OAAO,EACqD,MAAM,EACjE,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAClF,MAAM,eAAe,CAAA;AAWtB,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,+BAQpE;AAED,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,SAAS,CAK/E;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAa,EAAE,MAAM,EAAE,EAAE;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,MAAM,CAAA;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;CAChD,+BAaA;AAMD,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACjF,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,MAAM,EAAE,iBAAiB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,+BAOA;AA8ID;iDACiD;AACjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAuBD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAC1F,EAAE;IACD,UAAU,EAAE,WAAW,EAAE,CAAA;IACzB,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;CACd,+BA2FA;AAID,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;IAC3E,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB,+BAgCA;AAID,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,+BAe9F"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/screen/views.tsx"],"names":[],"mappings":"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"}