@tallyui/components 1.0.0 → 3.0.0-next.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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +1113 -83
- package/dist/index.js +4936 -353
- package/package.json +27 -5
- package/src/cart/cart-line-actions.tsx +40 -0
- package/src/cart/cart-line.tsx +18 -32
- package/src/cart/cart-note-input.tsx +46 -0
- package/src/cart/cart-panel.tsx +39 -26
- package/src/cart/cart-total.tsx +43 -47
- package/src/cart/discount-badge.tsx +19 -0
- package/src/cart/index.ts +4 -1
- package/src/checkout/cash-tendered.tsx +101 -0
- package/src/checkout/change-display.tsx +19 -0
- package/src/checkout/index.ts +3 -0
- package/src/checkout/order-summary-line.tsx +7 -8
- package/src/checkout/order-summary.tsx +8 -7
- package/src/checkout/payment-method-card.tsx +10 -9
- package/src/checkout/payment-selector.tsx +5 -5
- package/src/checkout/receipt-preview.tsx +78 -0
- package/src/customer/customer-card.tsx +16 -12
- package/src/customer/customer-form.tsx +72 -0
- package/src/customer/customer-order-history.tsx +34 -0
- package/src/customer/customer-picker.tsx +124 -0
- package/src/customer/customer-select.tsx +80 -31
- package/src/customer/index.ts +3 -0
- package/src/index.ts +114 -1
- package/src/input/filter-chip.tsx +85 -27
- package/src/input/index.ts +1 -0
- package/src/input/quantity-stepper.tsx +64 -0
- package/src/input/search-input.tsx +30 -7
- package/src/layout/checkout-layout.tsx +46 -0
- package/src/layout/index.ts +5 -0
- package/src/layout/live-tab-screen.tsx +54 -0
- package/src/layout/pos-layout.tsx +64 -0
- package/src/layout/settings-layout.tsx +58 -0
- package/src/layout/store-settings-choice-screen.tsx +142 -0
- package/src/order/index.ts +4 -0
- package/src/order/order-card.tsx +48 -0
- package/src/order/order-detail.tsx +82 -0
- package/src/order/order-list.tsx +39 -0
- package/src/order/order-status-badge.tsx +32 -0
- package/src/product/category-nav.tsx +70 -0
- package/src/product/index.ts +3 -0
- package/src/product/product-card.tsx +36 -8
- package/src/product/product-grid.tsx +46 -13
- package/src/product/product-image.tsx +28 -7
- package/src/product/product-list.tsx +44 -0
- package/src/product/product-price.tsx +77 -22
- package/src/product/product-sku.tsx +5 -5
- package/src/product/product-stock-badge.tsx +41 -28
- package/src/product/product-title.tsx +2 -3
- package/src/product/product-variant-picker.tsx +61 -0
- package/src/register/cash-count-input.tsx +85 -0
- package/src/register/closure-sheet.tsx +161 -0
- package/src/register/index.ts +12 -0
- package/src/register/movement-sheet.tsx +118 -0
- package/src/register/open-register-card.tsx +109 -0
- package/src/register/register-bar.helpers.ts +57 -0
- package/src/register/register-bar.tsx +85 -0
- package/src/register/register-column.tsx +117 -0
- package/src/register/register-count.tsx +330 -0
- package/src/register/register-open-close.tsx +52 -0
- package/src/register/register-panel.tsx +151 -0
- package/src/register/register-picker.tsx +60 -0
- package/src/register/register-summary.tsx +72 -0
- package/src/sale/cart-bar.tsx +18 -0
- package/src/sale/cart.tsx +66 -0
- package/src/sale/catalogue.tsx +139 -0
- package/src/sale/discount-form.tsx +85 -0
- package/src/sale/index.ts +9 -0
- package/src/sale/orders-list.tsx +108 -0
- package/src/sale/print-style.ts +11 -0
- package/src/sale/receipt.tsx +62 -0
- package/src/sale/sync-status.tsx +141 -0
- package/src/sale/tender.tsx +38 -0
- package/src/settings/connector-status.tsx +65 -0
- package/src/settings/index.ts +3 -0
- package/src/settings/settings-group.tsx +23 -0
- package/src/settings/settings-row.tsx +23 -0
- package/src/ui/accordion/index.tsx +59 -0
- package/src/ui/alert-dialog/index.tsx +91 -0
- package/src/ui/avatar/index.tsx +50 -0
- package/src/ui/badge/index.tsx +60 -0
- package/src/ui/button/index.tsx +90 -0
- package/src/ui/card/index.tsx +60 -0
- package/src/ui/checkbox/index.tsx +29 -0
- package/src/ui/collapsible/index.tsx +24 -0
- package/src/ui/combobox/index.tsx +98 -0
- package/src/ui/context-menu/index.tsx +159 -0
- package/src/ui/dialog/index.tsx +92 -0
- package/src/ui/dropdown-menu/index.tsx +161 -0
- package/src/ui/hover-card/index.tsx +31 -0
- package/src/ui/hstack/index.tsx +43 -0
- package/src/ui/icon/index.tsx +44 -0
- package/src/ui/icon/search-icon.tsx +9 -0
- package/src/ui/icon/svg-icon.tsx +36 -0
- package/src/ui/icon-button/index.tsx +58 -0
- package/src/ui/index.ts +99 -0
- package/src/ui/input/index.tsx +100 -0
- package/src/ui/label/index.tsx +26 -0
- package/src/ui/loader/index.tsx +37 -0
- package/src/ui/popover/index.tsx +31 -0
- package/src/ui/progress/index.tsx +28 -0
- package/src/ui/radio-group/index.tsx +38 -0
- package/src/ui/select/index.tsx +96 -0
- package/src/ui/separator/index.tsx +29 -0
- package/src/ui/slider/index.tsx +28 -0
- package/src/ui/switch/index.tsx +31 -0
- package/src/ui/table/index.tsx +59 -0
- package/src/ui/tabs/index.tsx +53 -0
- package/src/ui/text/index.tsx +36 -0
- package/src/ui/textarea/index.tsx +29 -0
- package/src/ui/toast/index.tsx +52 -0
- package/src/ui/toggle/index.tsx +69 -0
- package/src/ui/toggle-group/index.tsx +66 -0
- package/src/ui/tooltip/index.tsx +30 -0
- package/src/ui/vstack/index.tsx +43 -0
- package/src/uniwind-env.d.ts +9 -1
- package/src/__tests__/cart-line.test.tsx +0 -53
- package/src/__tests__/cart-panel.test.tsx +0 -55
- package/src/__tests__/cart-total.test.tsx +0 -60
- package/src/__tests__/customer-card.test.tsx +0 -47
- package/src/__tests__/customer-select.test.tsx +0 -33
- package/src/__tests__/filter-chip.test.tsx +0 -40
- package/src/__tests__/helpers.ts +0 -111
- package/src/__tests__/order-summary-line.test.tsx +0 -18
- package/src/__tests__/order-summary.test.tsx +0 -32
- package/src/__tests__/payment-method-card.test.tsx +0 -24
- package/src/__tests__/payment-selector.test.tsx +0 -23
- package/src/__tests__/product-card.test.tsx +0 -31
- package/src/__tests__/product-grid.test.tsx +0 -37
- package/src/__tests__/product-image.test.tsx +0 -54
- package/src/__tests__/product-price.test.tsx +0 -68
- package/src/__tests__/product-sku.test.tsx +0 -47
- package/src/__tests__/product-stock-badge.test.tsx +0 -58
- package/src/__tests__/product-title.test.tsx +0 -38
- package/src/__tests__/search-input.test.tsx +0 -22
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,324 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React$1 from 'react';
|
|
4
|
+
import { ReactNode, JSX } from 'react';
|
|
5
|
+
import * as react_native from 'react-native';
|
|
6
|
+
import { Text as Text$1, ViewProps, View, PressableProps, TextProps as TextProps$1, TextInputProps, TextInput, Pressable, StyleProp, ImageStyle } from 'react-native';
|
|
7
|
+
import { VariantProps } from 'class-variance-authority';
|
|
8
|
+
import { SvgProps } from 'react-native-svg';
|
|
9
|
+
import { Separator as Separator$1, Label as Label$1, Tabs as Tabs$1, Dialog as Dialog$1, AlertDialog as AlertDialog$1, Select as Select$1, Combobox as Combobox$1, DropdownMenu as DropdownMenu$1, ContextMenu as ContextMenu$1, Popover as Popover$1, Tooltip as Tooltip$1, HoverCard as HoverCard$1, Accordion as Accordion$1, Collapsible as Collapsible$1, Checkbox as Checkbox$1, Switch as Switch$1, RadioGroup as RadioGroup$1, Toggle as Toggle$1, ToggleGroup as ToggleGroup$1, Progress as Progress$1, Slider as Slider$1, Image } from '@tallyui/primitives';
|
|
10
|
+
export { TextClassContext } from '@tallyui/primitives';
|
|
11
|
+
import { Money, CustomerTraits, Customer, CustomerInput, ProductTraits, SyncNotice, StoreSettingsChoices, StoreSettingsChoice } from '@tallyui/core';
|
|
12
|
+
import { useRegisterSession, MovementType, useSale, AppliedDiscount, Discount, CatalogueEntry, SentOrder, OutboxState, PosOrder } from '@tallyui/pos';
|
|
13
|
+
|
|
14
|
+
declare const textVariants: (props?: ({
|
|
15
|
+
variant?: "link" | "default" | null | undefined;
|
|
16
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
17
|
+
type TextProps = React$1.ComponentPropsWithoutRef<typeof Text$1> & VariantProps<typeof textVariants> & {
|
|
18
|
+
asChild?: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare function Text({ className, variant, asChild, children, ...props }: TextProps): react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
declare const hstackVariants: (props?: ({
|
|
23
|
+
space?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
24
|
+
reversed?: boolean | null | undefined;
|
|
25
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
26
|
+
type HStackProps = ViewProps & VariantProps<typeof hstackVariants>;
|
|
27
|
+
declare const HStack: React$1.ForwardRefExoticComponent<ViewProps & VariantProps<(props?: ({
|
|
28
|
+
space?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
29
|
+
reversed?: boolean | null | undefined;
|
|
30
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<View>>;
|
|
31
|
+
|
|
32
|
+
declare const vstackVariants: (props?: ({
|
|
33
|
+
space?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
34
|
+
reversed?: boolean | null | undefined;
|
|
35
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
36
|
+
type VStackProps = ViewProps & VariantProps<typeof vstackVariants>;
|
|
37
|
+
declare const VStack: React$1.ForwardRefExoticComponent<ViewProps & VariantProps<(props?: ({
|
|
38
|
+
space?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
39
|
+
reversed?: boolean | null | undefined;
|
|
40
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<View>>;
|
|
41
|
+
|
|
42
|
+
declare const iconVariants: (props?: ({
|
|
43
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
44
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
45
|
+
type IconProps = ViewProps & VariantProps<typeof iconVariants>;
|
|
46
|
+
declare const Icon: React$1.ForwardRefExoticComponent<ViewProps & VariantProps<(props?: ({
|
|
47
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
48
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<View>>;
|
|
49
|
+
|
|
50
|
+
type SvgIconProps = {
|
|
51
|
+
size?: number;
|
|
52
|
+
color?: string;
|
|
53
|
+
strokeWidth?: number;
|
|
54
|
+
accessibilityLabel?: string;
|
|
55
|
+
} & Omit<SvgProps, 'width' | 'height' | 'color'>;
|
|
56
|
+
declare function createSvgIcon(name: string, render: (props: {
|
|
57
|
+
strokeWidth: number;
|
|
58
|
+
}) => React$1.ReactNode): {
|
|
59
|
+
({ size, color, strokeWidth, accessibilityLabel, ...props }: SvgIconProps): react_jsx_runtime.JSX.Element;
|
|
60
|
+
displayName: string;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
declare const SearchIcon: {
|
|
64
|
+
({ size, color, strokeWidth, accessibilityLabel, ...props }: SvgIconProps): react_jsx_runtime.JSX.Element;
|
|
65
|
+
displayName: string;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
declare const loaderVariants: (props?: ({
|
|
69
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
70
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
71
|
+
type LoaderProps = Omit<ViewProps, 'children'> & VariantProps<typeof loaderVariants>;
|
|
72
|
+
declare function Loader({ className, size, ...props }: LoaderProps): react_jsx_runtime.JSX.Element;
|
|
73
|
+
|
|
74
|
+
declare const badgeVariants: (props?: ({
|
|
75
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | null | undefined;
|
|
76
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
77
|
+
declare const badgeTextVariants: (props?: ({
|
|
78
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | null | undefined;
|
|
79
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
80
|
+
type BadgeProps = ViewProps & VariantProps<typeof badgeVariants> & {
|
|
81
|
+
label?: string;
|
|
82
|
+
};
|
|
83
|
+
declare function Badge({ className, variant, label, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
84
|
+
|
|
85
|
+
declare const avatarVariants: (props?: ({
|
|
86
|
+
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
87
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
88
|
+
type AvatarProps = ViewProps & VariantProps<typeof avatarVariants> & {
|
|
89
|
+
src?: string;
|
|
90
|
+
alt?: string;
|
|
91
|
+
fallback?: string;
|
|
92
|
+
};
|
|
93
|
+
declare function Avatar({ className, size, src, alt, fallback, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
94
|
+
|
|
95
|
+
declare const buttonVariants: (props?: ({
|
|
96
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
97
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
98
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
99
|
+
declare const buttonTextVariants: (props?: ({
|
|
100
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
101
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
102
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
103
|
+
type ButtonProps = PressableProps & VariantProps<typeof buttonVariants> & {
|
|
104
|
+
asChild?: boolean;
|
|
105
|
+
};
|
|
106
|
+
declare const Button: React$1.ForwardRefExoticComponent<PressableProps & VariantProps<(props?: ({
|
|
107
|
+
variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
108
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
109
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & {
|
|
110
|
+
asChild?: boolean;
|
|
111
|
+
} & React$1.RefAttributes<react_native.View>>;
|
|
112
|
+
|
|
113
|
+
declare const iconButtonVariants: (props?: ({
|
|
114
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
115
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
116
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
117
|
+
type IconButtonProps = PressableProps & VariantProps<typeof iconButtonVariants> & {
|
|
118
|
+
asChild?: boolean;
|
|
119
|
+
};
|
|
120
|
+
declare const IconButton: React$1.ForwardRefExoticComponent<PressableProps & VariantProps<(props?: ({
|
|
121
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
122
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
123
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & {
|
|
124
|
+
asChild?: boolean;
|
|
125
|
+
} & React$1.RefAttributes<react_native.View>>;
|
|
126
|
+
|
|
127
|
+
declare const Card: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
128
|
+
declare const CardHeader: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
129
|
+
declare const CardTitle: React$1.ForwardRefExoticComponent<TextProps$1 & React$1.RefAttributes<Text$1>>;
|
|
130
|
+
declare const CardDescription: React$1.ForwardRefExoticComponent<TextProps$1 & React$1.RefAttributes<Text$1>>;
|
|
131
|
+
declare const CardContent: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
132
|
+
declare const CardFooter: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
133
|
+
|
|
134
|
+
type SeparatorProps = React$1.ComponentPropsWithoutRef<typeof Separator$1.Root>;
|
|
135
|
+
declare const Separator: React$1.ForwardRefExoticComponent<Omit<Omit<Separator$1.RootProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
136
|
+
|
|
137
|
+
type LabelProps = React$1.ComponentPropsWithoutRef<typeof Label$1.Root>;
|
|
138
|
+
declare const Label: React$1.ForwardRefExoticComponent<Omit<Omit<Label$1.RootProps, "ref"> & React$1.RefAttributes<Text$1>, "ref"> & React$1.RefAttributes<Text$1>>;
|
|
139
|
+
|
|
140
|
+
interface InputContextType {
|
|
141
|
+
focused: boolean;
|
|
142
|
+
disabled: boolean;
|
|
143
|
+
}
|
|
144
|
+
declare function useInputContext(): InputContextType;
|
|
145
|
+
interface InputRootProps extends ViewProps {
|
|
146
|
+
disabled?: boolean;
|
|
147
|
+
}
|
|
148
|
+
declare const InputRoot: React$1.ForwardRefExoticComponent<InputRootProps & React$1.RefAttributes<View>>;
|
|
149
|
+
declare const InputSlot: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
150
|
+
declare const InputField: React$1.ForwardRefExoticComponent<TextInputProps & React$1.RefAttributes<TextInput>>;
|
|
151
|
+
declare const Input: React$1.ForwardRefExoticComponent<InputRootProps & React$1.RefAttributes<View>> & {
|
|
152
|
+
Left: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
153
|
+
Field: React$1.ForwardRefExoticComponent<TextInputProps & React$1.RefAttributes<TextInput>>;
|
|
154
|
+
Right: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
type TextareaProps = TextInputProps & {
|
|
158
|
+
className?: string;
|
|
159
|
+
};
|
|
160
|
+
declare const Textarea: React$1.ForwardRefExoticComponent<TextInputProps & {
|
|
161
|
+
className?: string;
|
|
162
|
+
} & React$1.RefAttributes<TextInput>>;
|
|
163
|
+
|
|
164
|
+
declare const Tabs: typeof Tabs$1.Root;
|
|
165
|
+
declare function TabsList({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof Tabs$1.List>): react_jsx_runtime.JSX.Element;
|
|
166
|
+
declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<Tabs$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
167
|
+
declare function TabsContent({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof Tabs$1.Content>): react_jsx_runtime.JSX.Element;
|
|
168
|
+
|
|
169
|
+
declare const Dialog: typeof Dialog$1.Root;
|
|
170
|
+
declare const DialogTrigger: React$1.ForwardRefExoticComponent<Omit<Dialog$1.TriggerProps, "ref"> & React$1.RefAttributes<View>>;
|
|
171
|
+
declare const DialogPortal: typeof Dialog$1.Portal;
|
|
172
|
+
declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<Dialog$1.CloseProps, "ref"> & React$1.RefAttributes<View>>;
|
|
173
|
+
declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<Omit<Dialog$1.OverlayProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
174
|
+
declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<Omit<Dialog$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
175
|
+
declare function DialogHeader({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof View>): react_jsx_runtime.JSX.Element;
|
|
176
|
+
declare function DialogFooter({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof View>): react_jsx_runtime.JSX.Element;
|
|
177
|
+
declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<Omit<Dialog$1.TitleProps, "ref"> & React$1.RefAttributes<Text$1>, "ref"> & React$1.RefAttributes<Text$1>>;
|
|
178
|
+
declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<Omit<Dialog$1.DescriptionProps, "ref"> & React$1.RefAttributes<Text$1>, "ref"> & React$1.RefAttributes<Text$1>>;
|
|
179
|
+
|
|
180
|
+
declare const AlertDialog: typeof AlertDialog$1.Root;
|
|
181
|
+
declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<Omit<AlertDialog$1.TriggerProps, "ref"> & React$1.RefAttributes<View>>;
|
|
182
|
+
declare const AlertDialogPortal: typeof AlertDialog$1.Portal;
|
|
183
|
+
declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<Omit<AlertDialog$1.OverlayProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
184
|
+
declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<Omit<AlertDialog$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
185
|
+
declare function AlertDialogHeader({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof View>): react_jsx_runtime.JSX.Element;
|
|
186
|
+
declare function AlertDialogFooter({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof View>): react_jsx_runtime.JSX.Element;
|
|
187
|
+
declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<Omit<AlertDialog$1.TitleProps, "ref"> & React$1.RefAttributes<react_native.Text>, "ref"> & React$1.RefAttributes<react_native.Text>>;
|
|
188
|
+
declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<Omit<AlertDialog$1.DescriptionProps, "ref"> & React$1.RefAttributes<react_native.Text>, "ref"> & React$1.RefAttributes<react_native.Text>>;
|
|
189
|
+
declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialog$1.ActionProps, "ref"> & React$1.RefAttributes<View>>;
|
|
190
|
+
declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialog$1.CancelProps, "ref"> & React$1.RefAttributes<View>>;
|
|
191
|
+
|
|
192
|
+
declare const Select: typeof Select$1.Root;
|
|
193
|
+
declare const SelectGroup: React$1.ForwardRefExoticComponent<Omit<Select$1.GroupProps, "ref"> & React$1.RefAttributes<View>>;
|
|
194
|
+
declare const SelectValue: React$1.ForwardRefExoticComponent<Omit<Select$1.ValueProps, "ref"> & React$1.RefAttributes<react_native.Text>>;
|
|
195
|
+
declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<Select$1.TriggerProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
196
|
+
declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<Omit<Select$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
197
|
+
declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<Omit<Select$1.LabelProps, "ref"> & React$1.RefAttributes<react_native.Text>, "ref"> & React$1.RefAttributes<react_native.Text>>;
|
|
198
|
+
declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<Omit<Select$1.ItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
199
|
+
declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<Omit<Select$1.SeparatorProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
200
|
+
|
|
201
|
+
declare const Combobox: typeof Combobox$1.Root;
|
|
202
|
+
declare const ComboboxTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<Combobox$1.TriggerProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
203
|
+
declare const ComboboxInput: React$1.ForwardRefExoticComponent<Omit<Omit<Combobox$1.InputProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
204
|
+
declare const ComboboxContent: React$1.ForwardRefExoticComponent<Omit<Omit<Combobox$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
205
|
+
declare const ComboboxItem: React$1.ForwardRefExoticComponent<Omit<Omit<Combobox$1.ItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
206
|
+
declare const ComboboxEmpty: React$1.ForwardRefExoticComponent<react_native.ViewProps & React$1.RefAttributes<View>>;
|
|
207
|
+
|
|
208
|
+
declare const DropdownMenu: typeof DropdownMenu$1.Root;
|
|
209
|
+
declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenu$1.TriggerProps, "ref"> & React$1.RefAttributes<View>>;
|
|
210
|
+
declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<Omit<DropdownMenu$1.GroupProps, "ref"> & React$1.RefAttributes<View>>;
|
|
211
|
+
declare const DropdownMenuPortal: typeof DropdownMenu$1.Portal;
|
|
212
|
+
declare const DropdownMenuSub: typeof DropdownMenu$1.Sub;
|
|
213
|
+
declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<Omit<DropdownMenu$1.RadioGroupProps, "ref"> & React$1.RefAttributes<View>>;
|
|
214
|
+
declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
215
|
+
declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.ItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & {
|
|
216
|
+
inset?: boolean;
|
|
217
|
+
} & React$1.RefAttributes<View>>;
|
|
218
|
+
declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.CheckboxItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
219
|
+
declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.RadioItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
220
|
+
declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.LabelProps, "ref"> & React$1.RefAttributes<react_native.Text>, "ref"> & {
|
|
221
|
+
inset?: boolean;
|
|
222
|
+
} & React$1.RefAttributes<react_native.Text>>;
|
|
223
|
+
declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.SeparatorProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
224
|
+
declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.SubTriggerProps, "ref"> & React$1.RefAttributes<View>, "ref"> & {
|
|
225
|
+
inset?: boolean;
|
|
226
|
+
} & React$1.RefAttributes<View>>;
|
|
227
|
+
declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<Omit<DropdownMenu$1.SubContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
228
|
+
|
|
229
|
+
declare const ContextMenu: typeof ContextMenu$1.Root;
|
|
230
|
+
declare const ContextMenuTrigger: React$1.ForwardRefExoticComponent<Omit<ContextMenu$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
231
|
+
declare const ContextMenuGroup: React$1.ForwardRefExoticComponent<Omit<ContextMenu$1.GroupProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
232
|
+
declare const ContextMenuPortal: typeof ContextMenu$1.Portal;
|
|
233
|
+
declare const ContextMenuSub: typeof ContextMenu$1.Sub;
|
|
234
|
+
declare const ContextMenuRadioGroup: React$1.ForwardRefExoticComponent<Omit<ContextMenu$1.RadioGroupProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
235
|
+
declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.ContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
236
|
+
declare const ContextMenuItem: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.ItemProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & {
|
|
237
|
+
inset?: boolean;
|
|
238
|
+
} & React$1.RefAttributes<react_native.View>>;
|
|
239
|
+
declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.CheckboxItemProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
240
|
+
declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.RadioItemProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
241
|
+
declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.LabelProps, "ref"> & React$1.RefAttributes<react_native.Text>, "ref"> & {
|
|
242
|
+
inset?: boolean;
|
|
243
|
+
} & React$1.RefAttributes<react_native.Text>>;
|
|
244
|
+
declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.SeparatorProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
245
|
+
declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.SubTriggerProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & {
|
|
246
|
+
inset?: boolean;
|
|
247
|
+
} & React$1.RefAttributes<react_native.View>>;
|
|
248
|
+
declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<Omit<ContextMenu$1.SubContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
249
|
+
|
|
250
|
+
declare const Popover: typeof Popover$1.Root;
|
|
251
|
+
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<Omit<Popover$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
252
|
+
declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<Omit<Popover$1.ContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
253
|
+
|
|
254
|
+
declare const Tooltip: typeof Tooltip$1.Root;
|
|
255
|
+
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<Omit<Tooltip$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
256
|
+
declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<Omit<Tooltip$1.ContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
257
|
+
|
|
258
|
+
declare const HoverCard: typeof HoverCard$1.Root;
|
|
259
|
+
declare const HoverCardTrigger: React$1.ForwardRefExoticComponent<Omit<HoverCard$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
260
|
+
declare const HoverCardContent: React$1.ForwardRefExoticComponent<Omit<Omit<HoverCard$1.ContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
261
|
+
|
|
262
|
+
declare const Accordion: React$1.ForwardRefExoticComponent<(Omit<Accordion$1.SingleRootProps, "ref"> | Omit<Accordion$1.MultipleRootProps, "ref">) & React$1.RefAttributes<View>>;
|
|
263
|
+
declare const AccordionItem: React$1.ForwardRefExoticComponent<Omit<Omit<Accordion$1.ItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
264
|
+
declare const AccordionTrigger: React$1.ForwardRefExoticComponent<Omit<Omit<Accordion$1.TriggerProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
265
|
+
declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<Omit<Accordion$1.ContentProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
266
|
+
|
|
267
|
+
declare const Collapsible: React$1.ForwardRefExoticComponent<Omit<Collapsible$1.RootProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
268
|
+
declare const CollapsibleTrigger: React$1.ForwardRefExoticComponent<Omit<Collapsible$1.TriggerProps, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
269
|
+
declare const CollapsibleContent: React$1.ForwardRefExoticComponent<Omit<Omit<Collapsible$1.ContentProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
270
|
+
|
|
271
|
+
declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<Omit<Checkbox$1.RootProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
272
|
+
|
|
273
|
+
declare const Switch: React$1.ForwardRefExoticComponent<Omit<Omit<Switch$1.RootProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & React$1.RefAttributes<react_native.View>>;
|
|
274
|
+
|
|
275
|
+
declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<Omit<RadioGroup$1.RootProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
276
|
+
declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<Omit<RadioGroup$1.ItemProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
277
|
+
|
|
278
|
+
declare const toggleVariants: (props?: ({
|
|
279
|
+
variant?: "default" | "outline" | null | undefined;
|
|
280
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
281
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
282
|
+
declare const toggleTextVariants: (props?: ({
|
|
283
|
+
variant?: "default" | "outline" | null | undefined;
|
|
284
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
285
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
286
|
+
type ToggleProps = React$1.ComponentPropsWithoutRef<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>;
|
|
287
|
+
declare const Toggle: React$1.ForwardRefExoticComponent<Omit<Omit<Toggle$1.RootProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & VariantProps<(props?: ({
|
|
288
|
+
variant?: "default" | "outline" | null | undefined;
|
|
289
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
290
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<react_native.View>>;
|
|
291
|
+
|
|
292
|
+
type ToggleGroupProps = React$1.ComponentPropsWithoutRef<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>;
|
|
293
|
+
declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupProps & React$1.RefAttributes<react_native.View>>;
|
|
294
|
+
type ToggleGroupItemProps = React$1.ComponentPropsWithoutRef<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>;
|
|
295
|
+
declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<Omit<ToggleGroup$1.ItemProps, "ref"> & React$1.RefAttributes<react_native.View>, "ref"> & VariantProps<(props?: ({
|
|
296
|
+
variant?: "default" | "outline" | null | undefined;
|
|
297
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
298
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<react_native.View>>;
|
|
299
|
+
|
|
300
|
+
type ProgressProps = React$1.ComponentPropsWithoutRef<typeof Progress$1.Root>;
|
|
301
|
+
declare const Progress: React$1.ForwardRefExoticComponent<Omit<Omit<Progress$1.RootProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
302
|
+
|
|
303
|
+
type SliderProps = React$1.ComponentPropsWithoutRef<typeof Slider$1.Root>;
|
|
304
|
+
declare const Slider: React$1.ForwardRefExoticComponent<Omit<Omit<Slider$1.RootProps, "ref"> & React$1.RefAttributes<View>, "ref"> & React$1.RefAttributes<View>>;
|
|
305
|
+
|
|
306
|
+
declare const toastVariants: (props?: ({
|
|
307
|
+
variant?: "default" | "destructive" | "success" | null | undefined;
|
|
308
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
309
|
+
type ToastProps = React$1.ComponentPropsWithoutRef<typeof View> & VariantProps<typeof toastVariants>;
|
|
310
|
+
declare function Toast({ className, variant, ...props }: ToastProps): react_jsx_runtime.JSX.Element;
|
|
311
|
+
declare function ToastTitle({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof Text$1>): react_jsx_runtime.JSX.Element;
|
|
312
|
+
declare function ToastDescription({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof Text$1>): react_jsx_runtime.JSX.Element;
|
|
313
|
+
declare function ToastClose({ className, ...props }: React$1.ComponentPropsWithoutRef<typeof Pressable>): react_jsx_runtime.JSX.Element;
|
|
314
|
+
|
|
315
|
+
declare const Table: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
316
|
+
declare const TableHeader: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
317
|
+
declare const TableBody: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
318
|
+
declare const TableFooter: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
319
|
+
declare const TableRow: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
320
|
+
declare const TableHead: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
321
|
+
declare const TableCell: React$1.ForwardRefExoticComponent<ViewProps & React$1.RefAttributes<View>>;
|
|
4
322
|
|
|
5
323
|
interface ProductTitleProps extends Omit<TextProps, 'children'> {
|
|
6
324
|
/** The raw RxDB product document (connector-specific shape) */
|
|
@@ -23,30 +341,59 @@ declare function ProductTitle({ doc, className, ...textProps }: ProductTitleProp
|
|
|
23
341
|
interface ProductPriceProps extends Omit<TextProps, 'children'> {
|
|
24
342
|
/** The raw RxDB product document (connector-specific shape) */
|
|
25
343
|
doc: any;
|
|
26
|
-
/**
|
|
344
|
+
/**
|
|
345
|
+
* Currency to show when the product is priced in several. Defaults to the
|
|
346
|
+
* provider's store currency, then to the first currency listed.
|
|
347
|
+
*/
|
|
348
|
+
currency?: string;
|
|
349
|
+
/** BCP 47 locale for number formatting. Defaults to the runtime locale. */
|
|
350
|
+
locale?: string;
|
|
351
|
+
/** Symbol to prepend when the currency is unknown (defaults to '$') */
|
|
27
352
|
currencySymbol?: string;
|
|
353
|
+
/**
|
|
354
|
+
* When the connector's variants have differing prices, show
|
|
355
|
+
* `{fromLabel} <lowest price>` instead of the default variant's price.
|
|
356
|
+
* Defaults to true.
|
|
357
|
+
*/
|
|
358
|
+
showFromPrice?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Label shown before the lowest price when variant prices differ.
|
|
361
|
+
* @deprecated Use formatFrom.
|
|
362
|
+
*/
|
|
363
|
+
fromLabel?: string;
|
|
364
|
+
/**
|
|
365
|
+
* Formats the lowest price when variant prices differ, for languages
|
|
366
|
+
* whose word order puts the label after the price. Defaults to
|
|
367
|
+
* `` (price) => `from ${price}` ``. Wins over `fromLabel` when both are given.
|
|
368
|
+
*/
|
|
369
|
+
formatFrom?: (price: string) => string;
|
|
28
370
|
className?: string;
|
|
29
371
|
}
|
|
30
372
|
/**
|
|
31
|
-
* Displays a product's price.
|
|
373
|
+
* Displays a product's price, and the price it replaces while on sale.
|
|
32
374
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
375
|
+
* Reads the backend-neutral price list (`getPrices`), so a WooCommerce sale
|
|
376
|
+
* price, a Medusa sale price list and a Shopify compare-at price all render
|
|
377
|
+
* the same way.
|
|
36
378
|
*
|
|
37
379
|
* ```tsx
|
|
38
|
-
* <ProductPrice doc={productDocument}
|
|
380
|
+
* <ProductPrice doc={productDocument} currency="EUR" />
|
|
39
381
|
* ```
|
|
40
382
|
*/
|
|
41
|
-
declare function ProductPrice({ doc, currencySymbol, className, ...textProps }: ProductPriceProps): react_jsx_runtime.JSX.Element;
|
|
383
|
+
declare function ProductPrice({ doc, currency, locale, currencySymbol, className, showFromPrice, fromLabel, formatFrom, ...textProps }: ProductPriceProps): react_jsx_runtime.JSX.Element;
|
|
42
384
|
|
|
43
|
-
interface ProductImageProps extends Omit<
|
|
385
|
+
interface ProductImageProps extends Omit<React.ComponentPropsWithoutRef<typeof Image.Root>, 'source'> {
|
|
44
386
|
/** The raw RxDB product document */
|
|
45
387
|
doc: any;
|
|
46
388
|
/** Image dimensions */
|
|
47
389
|
size?: number;
|
|
48
390
|
/** Style overrides (for dynamic sizing) */
|
|
49
391
|
style?: StyleProp<ImageStyle>;
|
|
392
|
+
/**
|
|
393
|
+
* Render a same-size tile with the product's initial when there is no
|
|
394
|
+
* image, so rows and grids stay aligned. Defaults to false (render nothing).
|
|
395
|
+
*/
|
|
396
|
+
showPlaceholder?: boolean;
|
|
50
397
|
className?: string;
|
|
51
398
|
}
|
|
52
399
|
/**
|
|
@@ -58,7 +405,7 @@ interface ProductImageProps extends Omit<ImageProps, 'source'> {
|
|
|
58
405
|
* <ProductImage doc={productDocument} size={80} className="rounded-lg" />
|
|
59
406
|
* ```
|
|
60
407
|
*/
|
|
61
|
-
declare function ProductImage({ doc, size, style, className, ...imageProps }: ProductImageProps): react_jsx_runtime.JSX.Element | null;
|
|
408
|
+
declare function ProductImage({ doc, size, style, showPlaceholder, className, ...imageProps }: ProductImageProps): react_jsx_runtime.JSX.Element | null;
|
|
62
409
|
|
|
63
410
|
interface ProductSkuProps extends Omit<TextProps, 'children'> {
|
|
64
411
|
/** The raw RxDB product document (connector-specific shape) */
|
|
@@ -79,35 +426,40 @@ interface ProductSkuProps extends Omit<TextProps, 'children'> {
|
|
|
79
426
|
*/
|
|
80
427
|
declare function ProductSku({ doc, fallback, className, ...textProps }: ProductSkuProps): react_jsx_runtime.JSX.Element;
|
|
81
428
|
|
|
82
|
-
interface ProductStockBadgeProps extends Omit<
|
|
429
|
+
interface ProductStockBadgeProps extends Omit<HStackProps, 'children'> {
|
|
83
430
|
/** The raw RxDB product document (connector-specific shape) */
|
|
84
431
|
doc: any;
|
|
85
432
|
/** Whether to show the quantity alongside the status */
|
|
86
433
|
showQuantity?: boolean;
|
|
434
|
+
/** Append when reconciled stock was last confirmed, if the provider gives it (default true) */
|
|
435
|
+
showAsOf?: boolean;
|
|
87
436
|
className?: string;
|
|
88
437
|
}
|
|
89
438
|
/**
|
|
90
439
|
* Displays a visual stock status badge for a product.
|
|
91
440
|
*
|
|
92
|
-
* Shows a
|
|
93
|
-
* with an optional quantity count.
|
|
441
|
+
* Shows a label (In Stock / Out of Stock / On Backorder) with a dot carrying the colour
|
|
442
|
+
* with an optional quantity count. When the ConnectorProvider is given a
|
|
443
|
+
* reconciled stock overlay, it shows that stock and when it was confirmed.
|
|
94
444
|
*
|
|
95
445
|
* ```tsx
|
|
96
446
|
* <ProductStockBadge doc={productDocument} showQuantity />
|
|
97
447
|
* ```
|
|
98
448
|
*/
|
|
99
|
-
declare function ProductStockBadge({ doc, showQuantity, className, ...
|
|
449
|
+
declare function ProductStockBadge({ doc, showQuantity, showAsOf, className, ...props }: ProductStockBadgeProps): react_jsx_runtime.JSX.Element;
|
|
100
450
|
|
|
101
|
-
interface ProductCardProps extends Omit<
|
|
451
|
+
interface ProductCardProps extends Omit<VStackProps, 'children'> {
|
|
102
452
|
doc: any;
|
|
103
453
|
onPress?: () => void;
|
|
104
454
|
imageSize?: number;
|
|
105
455
|
currencySymbol?: string;
|
|
456
|
+
/** Shown in place of the price when the channel doesn't sell this product. */
|
|
457
|
+
notSoldLabel?: string;
|
|
106
458
|
className?: string;
|
|
107
459
|
}
|
|
108
|
-
declare function ProductCard({ doc, onPress, imageSize, currencySymbol, className, ...
|
|
460
|
+
declare function ProductCard({ doc, onPress, imageSize, currencySymbol, notSoldLabel, className, ...props }: ProductCardProps): react_jsx_runtime.JSX.Element;
|
|
109
461
|
|
|
110
|
-
interface ProductGridProps extends Omit<
|
|
462
|
+
interface ProductGridProps extends Omit<VStackProps, 'children'> {
|
|
111
463
|
/** Array of product documents to render */
|
|
112
464
|
items: any[];
|
|
113
465
|
/** Render function for each product */
|
|
@@ -120,13 +472,18 @@ interface ProductGridProps extends Omit<ViewProps, 'children'> {
|
|
|
120
472
|
filterSlot?: ReactNode;
|
|
121
473
|
/** Content shown when items is empty */
|
|
122
474
|
emptyState?: ReactNode;
|
|
475
|
+
/**
|
|
476
|
+
* Products the channel doesn't sell (`traits.product.isSellable` false,
|
|
477
|
+
* for example a Medusa product outside the sales channel) are hidden
|
|
478
|
+
* unless `showUnsellable`.
|
|
479
|
+
*/
|
|
480
|
+
showUnsellable?: boolean;
|
|
123
481
|
className?: string;
|
|
124
482
|
}
|
|
125
483
|
/**
|
|
126
|
-
* A
|
|
484
|
+
* A virtualized product grid with optional search and filter slots.
|
|
127
485
|
*
|
|
128
|
-
* Uses
|
|
129
|
-
* FlatList numColumns, which keeps things predictable in both native and web.
|
|
486
|
+
* Uses FlatList numColumns to render rows near the viewport on native and web.
|
|
130
487
|
*
|
|
131
488
|
* ```tsx
|
|
132
489
|
* <ProductGrid
|
|
@@ -137,86 +494,135 @@ interface ProductGridProps extends Omit<ViewProps, 'children'> {
|
|
|
137
494
|
* />
|
|
138
495
|
* ```
|
|
139
496
|
*/
|
|
140
|
-
declare function ProductGrid({ items, renderItem, numColumns, searchSlot, filterSlot, emptyState, className, ...viewProps }: ProductGridProps): react_jsx_runtime.JSX.Element;
|
|
497
|
+
declare function ProductGrid({ items, renderItem, numColumns, searchSlot, filterSlot, emptyState, showUnsellable, className, ...viewProps }: ProductGridProps): react_jsx_runtime.JSX.Element;
|
|
141
498
|
|
|
142
|
-
interface
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
499
|
+
interface ProductListProps extends Omit<ViewProps, 'children'> {
|
|
500
|
+
items: any[];
|
|
501
|
+
renderItem: (item: any, index: number) => ReactNode;
|
|
502
|
+
searchSlot?: ReactNode;
|
|
503
|
+
filterSlot?: ReactNode;
|
|
504
|
+
emptyState?: ReactNode;
|
|
505
|
+
className?: string;
|
|
147
506
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
507
|
+
declare function ProductList({ items, renderItem, searchSlot, filterSlot, emptyState, className, ...viewProps }: ProductListProps): react_jsx_runtime.JSX.Element;
|
|
508
|
+
|
|
509
|
+
interface CategoryItem {
|
|
510
|
+
id: string;
|
|
511
|
+
name: string;
|
|
512
|
+
}
|
|
513
|
+
interface CategoryNavProps extends Omit<ViewProps, 'children'> {
|
|
514
|
+
categories: CategoryItem[];
|
|
515
|
+
selectedId: string;
|
|
516
|
+
onSelect: (id: string) => void;
|
|
517
|
+
orientation?: 'horizontal' | 'vertical';
|
|
518
|
+
className?: string;
|
|
519
|
+
}
|
|
520
|
+
declare function CategoryNav({ categories, selectedId, onSelect, orientation, className, ...viewProps }: CategoryNavProps): react_jsx_runtime.JSX.Element;
|
|
521
|
+
|
|
522
|
+
interface VariantOption {
|
|
523
|
+
name: string;
|
|
524
|
+
values: string[];
|
|
525
|
+
}
|
|
526
|
+
interface ProductVariantPickerProps extends Omit<ViewProps, 'children'> {
|
|
527
|
+
options: VariantOption[];
|
|
528
|
+
selected?: Record<string, string>;
|
|
529
|
+
onSelect?: (selection: Record<string, string>) => void;
|
|
530
|
+
className?: string;
|
|
531
|
+
}
|
|
532
|
+
declare function ProductVariantPicker({ options, selected, onSelect, className, ...viewProps }: ProductVariantPickerProps): react_jsx_runtime.JSX.Element;
|
|
533
|
+
|
|
534
|
+
interface CartLineProps extends Omit<HStackProps, 'children'> {
|
|
535
|
+
name: string;
|
|
536
|
+
quantity: number;
|
|
537
|
+
unitPrice: Money;
|
|
538
|
+
lineTotal: Money;
|
|
539
|
+
locale?: string;
|
|
153
540
|
className?: string;
|
|
154
541
|
}
|
|
155
542
|
/**
|
|
156
543
|
* Displays a single cart line item: product name, quantity, and line total.
|
|
157
544
|
*
|
|
158
545
|
* ```tsx
|
|
159
|
-
* <CartLine
|
|
546
|
+
* <CartLine name="Coffee" quantity={2} unitPrice={unitPrice} lineTotal={lineTotal} />
|
|
160
547
|
* ```
|
|
161
548
|
*/
|
|
162
|
-
declare function CartLine({
|
|
549
|
+
declare function CartLine({ name, quantity, unitPrice, lineTotal, locale, className, ...props }: CartLineProps): react_jsx_runtime.JSX.Element;
|
|
163
550
|
|
|
164
|
-
interface CartTotalProps extends Omit<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
551
|
+
interface CartTotalProps extends Omit<VStackProps, 'children'> {
|
|
552
|
+
subtotal: Money;
|
|
553
|
+
taxLines?: Array<{
|
|
554
|
+
label: string;
|
|
555
|
+
amount: Money;
|
|
556
|
+
}>;
|
|
557
|
+
discount?: Money;
|
|
558
|
+
total: Money;
|
|
559
|
+
/** The tax is already in the subtotal (an inclusive display), so its rows read "incl." rather than add up. */
|
|
560
|
+
taxInclusive?: boolean;
|
|
561
|
+
locale?: string;
|
|
173
562
|
className?: string;
|
|
174
563
|
}
|
|
175
564
|
/**
|
|
176
|
-
* Displays a cart summary
|
|
565
|
+
* Displays a cart summary: subtotal, optional discount, optional tax, and total, in the receipt's order.
|
|
177
566
|
*
|
|
178
567
|
* ```tsx
|
|
179
|
-
* <CartTotal
|
|
568
|
+
* <CartTotal subtotal={subtotal} discount={discount} taxLines={taxLines} total={total} />
|
|
180
569
|
* ```
|
|
181
570
|
*/
|
|
182
|
-
declare function CartTotal({
|
|
571
|
+
declare function CartTotal({ subtotal, taxLines, discount, total, taxInclusive, locale, className, ...props }: CartTotalProps): react_jsx_runtime.JSX.Element;
|
|
183
572
|
|
|
184
|
-
interface CartPanelProps extends Omit<
|
|
573
|
+
interface CartPanelProps<T> extends Omit<VStackProps, 'children'> {
|
|
185
574
|
/** Cart line items to render */
|
|
186
|
-
items:
|
|
575
|
+
items: T[];
|
|
187
576
|
/** Render function for each cart line */
|
|
188
|
-
renderItem: (item:
|
|
577
|
+
renderItem: (item: T, index: number) => ReactNode;
|
|
578
|
+
/** Row key per item; defaults to the item's string/number `id`, else its index. Override for items without `id`, or to key by something else. */
|
|
579
|
+
keyExtractor?: (item: T, index: number) => string;
|
|
189
580
|
/** Header slot (e.g. customer info) */
|
|
190
581
|
header?: ReactNode;
|
|
582
|
+
/** Content after the lines, inside the scrolling region (e.g. discount chips); shown even with no lines, so it isn't hidden by an empty cart */
|
|
583
|
+
afterItems?: ReactNode;
|
|
191
584
|
/** Footer slot (e.g. totals, checkout button) */
|
|
192
585
|
footer?: ReactNode;
|
|
193
586
|
/** Content shown when items is empty */
|
|
194
587
|
emptyState?: ReactNode;
|
|
195
588
|
className?: string;
|
|
196
589
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
590
|
+
declare function CartPanel<T>({ items, renderItem, keyExtractor, header, afterItems, footer, emptyState, className, ...props }: CartPanelProps<T>): JSX.Element;
|
|
591
|
+
|
|
592
|
+
interface DiscountBadgeProps extends Omit<ViewProps, 'children'> {
|
|
593
|
+
label: string;
|
|
594
|
+
className?: string;
|
|
595
|
+
}
|
|
596
|
+
declare function DiscountBadge({ label, className, ...viewProps }: DiscountBadgeProps): react_jsx_runtime.JSX.Element;
|
|
597
|
+
|
|
598
|
+
interface CartNoteInputProps extends Omit<ViewProps, 'children'> {
|
|
599
|
+
value: string;
|
|
600
|
+
onChangeText: (text: string) => void;
|
|
601
|
+
placeholder?: string;
|
|
602
|
+
className?: string;
|
|
603
|
+
}
|
|
604
|
+
declare function CartNoteInput({ value, onChangeText, placeholder, className, ...viewProps }: CartNoteInputProps): react_jsx_runtime.JSX.Element;
|
|
605
|
+
|
|
606
|
+
interface CartAction {
|
|
607
|
+
id: string;
|
|
608
|
+
label: string;
|
|
609
|
+
onPress: () => void;
|
|
610
|
+
color?: string;
|
|
611
|
+
iconSlot?: ReactNode;
|
|
612
|
+
}
|
|
613
|
+
interface CartLineActionsProps extends Omit<ViewProps, 'children'> {
|
|
614
|
+
children: ReactNode;
|
|
615
|
+
actions: CartAction[];
|
|
616
|
+
className?: string;
|
|
617
|
+
}
|
|
618
|
+
declare function CartLineActions({ children, actions, className, ...viewProps }: CartLineActionsProps): react_jsx_runtime.JSX.Element;
|
|
213
619
|
|
|
214
620
|
interface SearchInputProps extends Omit<TextInputProps, 'value' | 'onChangeText'> {
|
|
215
621
|
value: string;
|
|
216
622
|
onChangeText: (text: string) => void;
|
|
217
623
|
className?: string;
|
|
218
624
|
}
|
|
219
|
-
declare function SearchInput({ value, onChangeText, className, placeholder, ...props }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
625
|
+
declare function SearchInput({ value, onChangeText, className, placeholder, style, onFocus, onBlur, ...props }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
220
626
|
|
|
221
627
|
interface FilterChipProps {
|
|
222
628
|
label: string;
|
|
@@ -224,6 +630,10 @@ interface FilterChipProps {
|
|
|
224
630
|
onPress: () => void;
|
|
225
631
|
className?: string;
|
|
226
632
|
}
|
|
633
|
+
/**
|
|
634
|
+
* A single toggle chip. When used standalone, renders as a simple
|
|
635
|
+
* ToggleGroup with one item.
|
|
636
|
+
*/
|
|
227
637
|
declare function FilterChip({ label, active, onPress, className }: FilterChipProps): react_jsx_runtime.JSX.Element;
|
|
228
638
|
interface ChipItem {
|
|
229
639
|
label: string;
|
|
@@ -234,21 +644,39 @@ interface FilterChipGroupProps extends Omit<ViewProps, 'children'> {
|
|
|
234
644
|
onChipPress: (index: number) => void;
|
|
235
645
|
className?: string;
|
|
236
646
|
}
|
|
647
|
+
/**
|
|
648
|
+
* A horizontal scrollable row of toggleable filter chips.
|
|
649
|
+
*
|
|
650
|
+
* Built on top of the ToggleGroup primitive for proper `aria-pressed`
|
|
651
|
+
* semantics and accessible toggle group behavior.
|
|
652
|
+
*/
|
|
237
653
|
declare function FilterChipGroup({ chips, onChipPress, className, ...viewProps }: FilterChipGroupProps): react_jsx_runtime.JSX.Element;
|
|
238
654
|
|
|
239
|
-
interface
|
|
240
|
-
|
|
655
|
+
interface QuantityStepperProps extends Omit<ViewProps, 'children'> {
|
|
656
|
+
defaultQuantity?: number;
|
|
657
|
+
quantity?: number;
|
|
658
|
+
onChangeQuantity?: (quantity: number) => void;
|
|
659
|
+
min?: number;
|
|
660
|
+
max?: number;
|
|
661
|
+
className?: string;
|
|
662
|
+
}
|
|
663
|
+
declare function QuantityStepper({ defaultQuantity, quantity: controlledQuantity, onChangeQuantity, min, max, className, ...viewProps }: QuantityStepperProps): react_jsx_runtime.JSX.Element;
|
|
664
|
+
|
|
665
|
+
interface CustomerCardProps<Doc = any> extends Omit<VStackProps, 'children'> {
|
|
666
|
+
doc: Doc;
|
|
667
|
+
traits?: CustomerTraits<Doc>;
|
|
241
668
|
className?: string;
|
|
242
669
|
}
|
|
243
|
-
declare function CustomerCard({ doc, className, ...
|
|
670
|
+
declare function CustomerCard<Doc>({ doc, traits, className, ...props }: CustomerCardProps<Doc>): react_jsx_runtime.JSX.Element;
|
|
244
671
|
|
|
245
|
-
interface CustomerSelectProps extends Omit<
|
|
672
|
+
interface CustomerSelectProps<Doc = any> extends Omit<VStackProps, 'children'> {
|
|
246
673
|
/** Customer documents to display as options */
|
|
247
|
-
customers:
|
|
674
|
+
customers: Doc[];
|
|
248
675
|
/** Currently selected customer (if any) */
|
|
249
|
-
selected?:
|
|
676
|
+
selected?: Doc | null;
|
|
250
677
|
/** Called when a customer is selected */
|
|
251
|
-
onSelect: (customer:
|
|
678
|
+
onSelect: (customer: Doc) => void;
|
|
679
|
+
traits?: CustomerTraits<Doc>;
|
|
252
680
|
/** Called when the search text changes */
|
|
253
681
|
onSearch: (query: string) => void;
|
|
254
682
|
/** Placeholder text for the search input */
|
|
@@ -263,6 +691,9 @@ interface CustomerSelectProps extends Omit<ViewProps, 'children'> {
|
|
|
263
691
|
* calls onSearch with the query text and renders whatever customers
|
|
264
692
|
* are passed in.
|
|
265
693
|
*
|
|
694
|
+
* Built on top of the Select primitive for proper accessibility
|
|
695
|
+
* semantics (combobox role, option roles, aria-expanded, aria-checked).
|
|
696
|
+
*
|
|
266
697
|
* ```tsx
|
|
267
698
|
* <CustomerSelect
|
|
268
699
|
* customers={filteredCustomers}
|
|
@@ -272,31 +703,73 @@ interface CustomerSelectProps extends Omit<ViewProps, 'children'> {
|
|
|
272
703
|
* />
|
|
273
704
|
* ```
|
|
274
705
|
*/
|
|
275
|
-
declare function CustomerSelect(
|
|
706
|
+
declare function CustomerSelect<Doc>(props: CustomerSelectProps<Doc>): react_jsx_runtime.JSX.Element;
|
|
707
|
+
|
|
708
|
+
interface CustomerFormValues {
|
|
709
|
+
firstName: string;
|
|
710
|
+
lastName: string;
|
|
711
|
+
email: string;
|
|
712
|
+
phone: string;
|
|
713
|
+
address: string;
|
|
714
|
+
}
|
|
715
|
+
interface CustomerFormProps extends Omit<ViewProps, 'children'> {
|
|
716
|
+
values: CustomerFormValues;
|
|
717
|
+
onChangeField: (field: keyof CustomerFormValues, value: string) => void;
|
|
718
|
+
onSubmit?: () => void;
|
|
719
|
+
submitLabel?: string;
|
|
720
|
+
showAddress?: boolean;
|
|
721
|
+
className?: string;
|
|
722
|
+
}
|
|
723
|
+
declare function CustomerForm({ values, onChangeField, onSubmit, submitLabel, showAddress, className, ...viewProps }: CustomerFormProps): react_jsx_runtime.JSX.Element;
|
|
724
|
+
|
|
725
|
+
interface CustomerOrderHistoryProps extends Omit<ViewProps, 'children'> {
|
|
726
|
+
orders: any[];
|
|
727
|
+
renderItem: (order: any, index: number) => ReactNode;
|
|
728
|
+
emptyState?: ReactNode;
|
|
729
|
+
className?: string;
|
|
730
|
+
}
|
|
731
|
+
declare function CustomerOrderHistory({ orders, renderItem, emptyState, className, ...viewProps }: CustomerOrderHistoryProps): react_jsx_runtime.JSX.Element;
|
|
276
732
|
|
|
277
|
-
interface
|
|
733
|
+
interface CustomerPickerProps {
|
|
734
|
+
/** The connector's searchCustomers, bound to its context by the app. */
|
|
735
|
+
search: (query: string) => Promise<Customer[]>;
|
|
736
|
+
/** The connector's createCustomer, bound; absent hides "New customer". */
|
|
737
|
+
create?: (input: CustomerInput) => Promise<Customer>;
|
|
738
|
+
selected: Customer | null;
|
|
739
|
+
onSelect: (customer: Customer | null) => void;
|
|
740
|
+
/** Called for errors the picker can't explain to the cashier, including ConnectorUnauthorizedError, which means the app should sign in again. */
|
|
741
|
+
onError?: (error: unknown) => void;
|
|
742
|
+
/** false disables search and create (online only in v1). */
|
|
743
|
+
online: boolean;
|
|
744
|
+
/** Debounce before a search, ms. */
|
|
745
|
+
debounceMs?: number;
|
|
746
|
+
className?: string;
|
|
747
|
+
}
|
|
748
|
+
declare function CustomerPicker({ search, create, selected, onSelect, onError, online, debounceMs, className }: CustomerPickerProps): react_jsx_runtime.JSX.Element;
|
|
749
|
+
|
|
750
|
+
interface PaymentMethodCardProps extends Omit<PressableProps, 'children'> {
|
|
278
751
|
label: string;
|
|
279
752
|
selected: boolean;
|
|
280
753
|
onPress: () => void;
|
|
281
754
|
icon?: ReactNode;
|
|
282
755
|
className?: string;
|
|
283
756
|
}
|
|
284
|
-
declare function PaymentMethodCard({ label, selected, onPress, icon, className, ...
|
|
757
|
+
declare function PaymentMethodCard({ label, selected, onPress, icon, className, ...props }: PaymentMethodCardProps): react_jsx_runtime.JSX.Element;
|
|
285
758
|
|
|
286
|
-
interface OrderSummaryLineProps extends Omit<
|
|
759
|
+
interface OrderSummaryLineProps extends Omit<HStackProps, 'children'> {
|
|
287
760
|
label: string;
|
|
288
761
|
amount: string;
|
|
289
762
|
bold?: boolean;
|
|
290
763
|
className?: string;
|
|
291
764
|
}
|
|
292
|
-
declare function OrderSummaryLine({ label, amount, bold, className, ...
|
|
765
|
+
declare function OrderSummaryLine({ label, amount, bold, className, ...props }: OrderSummaryLineProps): react_jsx_runtime.JSX.Element;
|
|
293
766
|
|
|
294
767
|
interface PaymentMethod {
|
|
295
768
|
id: string;
|
|
296
769
|
label: string;
|
|
297
770
|
icon?: ReactNode;
|
|
298
771
|
}
|
|
299
|
-
interface PaymentSelectorProps extends Omit<
|
|
772
|
+
interface PaymentSelectorProps extends Omit<VStackProps, 'children'> {
|
|
300
773
|
/** Available payment methods */
|
|
301
774
|
methods: PaymentMethod[];
|
|
302
775
|
/** ID of the currently selected method */
|
|
@@ -318,13 +791,13 @@ interface PaymentSelectorProps extends Omit<ViewProps, 'children'> {
|
|
|
318
791
|
* />
|
|
319
792
|
* ```
|
|
320
793
|
*/
|
|
321
|
-
declare function PaymentSelector({ methods, selected, onSelect, className, ...
|
|
794
|
+
declare function PaymentSelector({ methods, selected, onSelect, className, ...props }: PaymentSelectorProps): react_jsx_runtime.JSX.Element;
|
|
322
795
|
|
|
323
796
|
interface OrderSummaryPayment {
|
|
324
797
|
label: string;
|
|
325
798
|
amount: string;
|
|
326
799
|
}
|
|
327
|
-
interface OrderSummaryProps extends Omit<
|
|
800
|
+
interface OrderSummaryProps extends Omit<VStackProps, 'children'> {
|
|
328
801
|
/** Formatted subtotal string (e.g. "$1199.98") */
|
|
329
802
|
subtotal: string;
|
|
330
803
|
/** Formatted tax amount (optional) */
|
|
@@ -359,6 +832,563 @@ interface OrderSummaryProps extends Omit<ViewProps, 'children'> {
|
|
|
359
832
|
* />
|
|
360
833
|
* ```
|
|
361
834
|
*/
|
|
362
|
-
declare function OrderSummary({ subtotal, tax, taxLabel, total, payments, header, footer, className, ...
|
|
835
|
+
declare function OrderSummary({ subtotal, tax, taxLabel, total, payments, header, footer, className, ...props }: OrderSummaryProps): react_jsx_runtime.JSX.Element;
|
|
836
|
+
|
|
837
|
+
interface ChangeDisplayProps extends Omit<ViewProps, 'children'> {
|
|
838
|
+
change: Money;
|
|
839
|
+
locale?: string;
|
|
840
|
+
className?: string;
|
|
841
|
+
}
|
|
842
|
+
declare function ChangeDisplay({ change, locale, className, ...viewProps }: ChangeDisplayProps): react_jsx_runtime.JSX.Element;
|
|
843
|
+
|
|
844
|
+
interface CashTenderedProps extends Omit<ViewProps, 'children'> {
|
|
845
|
+
total: Money;
|
|
846
|
+
defaultAmount?: Money;
|
|
847
|
+
amount?: Money;
|
|
848
|
+
onChangeAmount?: (amount: Money) => void;
|
|
849
|
+
quickAmounts?: Money[];
|
|
850
|
+
locale?: string;
|
|
851
|
+
className?: string;
|
|
852
|
+
}
|
|
853
|
+
declare function CashTendered({ total, defaultAmount, amount: controlledAmount, onChangeAmount, quickAmounts, locale, className, ...viewProps }: CashTenderedProps): react_jsx_runtime.JSX.Element;
|
|
854
|
+
|
|
855
|
+
interface ReceiptItem {
|
|
856
|
+
name: string;
|
|
857
|
+
quantity: number;
|
|
858
|
+
total: string;
|
|
859
|
+
}
|
|
860
|
+
interface ReceiptPreviewProps extends Omit<ViewProps, 'children'> {
|
|
861
|
+
items: ReceiptItem[];
|
|
862
|
+
subtotal: string;
|
|
863
|
+
tax: string;
|
|
864
|
+
total: string;
|
|
865
|
+
payments?: Array<{
|
|
866
|
+
method: string;
|
|
867
|
+
amount: string;
|
|
868
|
+
}>;
|
|
869
|
+
headerSlot?: ReactNode;
|
|
870
|
+
footerSlot?: ReactNode;
|
|
871
|
+
className?: string;
|
|
872
|
+
}
|
|
873
|
+
declare function ReceiptPreview({ items, subtotal, tax, total, payments, headerSlot, footerSlot, className, ...viewProps }: ReceiptPreviewProps): react_jsx_runtime.JSX.Element;
|
|
874
|
+
|
|
875
|
+
type OrderStatus = 'pending' | 'processing' | 'completed' | 'refunded' | 'cancelled';
|
|
876
|
+
interface OrderStatusBadgeProps extends Omit<ViewProps, 'children'> {
|
|
877
|
+
status: OrderStatus;
|
|
878
|
+
className?: string;
|
|
879
|
+
}
|
|
880
|
+
declare function OrderStatusBadge({ status, className, ...viewProps }: OrderStatusBadgeProps): react_jsx_runtime.JSX.Element;
|
|
881
|
+
|
|
882
|
+
interface OrderCardProps extends Omit<ViewProps, 'children'> {
|
|
883
|
+
orderNumber: string;
|
|
884
|
+
date: string;
|
|
885
|
+
total: string;
|
|
886
|
+
status: OrderStatus;
|
|
887
|
+
customerName?: string;
|
|
888
|
+
onPress?: () => void;
|
|
889
|
+
className?: string;
|
|
890
|
+
}
|
|
891
|
+
declare function OrderCard({ orderNumber, date, total, status, customerName, onPress, className, ...viewProps }: OrderCardProps): react_jsx_runtime.JSX.Element;
|
|
892
|
+
|
|
893
|
+
interface OrderListProps extends Omit<ViewProps, 'children'> {
|
|
894
|
+
items: any[];
|
|
895
|
+
renderItem: (item: any, index: number) => ReactNode;
|
|
896
|
+
headerSlot?: ReactNode;
|
|
897
|
+
emptyState?: ReactNode;
|
|
898
|
+
className?: string;
|
|
899
|
+
}
|
|
900
|
+
declare function OrderList({ items, renderItem, headerSlot, emptyState, className, ...viewProps }: OrderListProps): react_jsx_runtime.JSX.Element;
|
|
901
|
+
|
|
902
|
+
interface OrderDetailLineItem {
|
|
903
|
+
name: string;
|
|
904
|
+
quantity: number;
|
|
905
|
+
total: string;
|
|
906
|
+
}
|
|
907
|
+
interface OrderDetailProps extends Omit<ViewProps, 'children'> {
|
|
908
|
+
orderNumber: string;
|
|
909
|
+
status: OrderStatus;
|
|
910
|
+
lineItems: OrderDetailLineItem[];
|
|
911
|
+
subtotal: string;
|
|
912
|
+
tax: string;
|
|
913
|
+
total: string;
|
|
914
|
+
customerSlot?: ReactNode;
|
|
915
|
+
paymentSlot?: ReactNode;
|
|
916
|
+
footerSlot?: ReactNode;
|
|
917
|
+
className?: string;
|
|
918
|
+
}
|
|
919
|
+
declare function OrderDetail({ orderNumber, status, lineItems, subtotal, tax, total, customerSlot, paymentSlot, footerSlot, className, ...viewProps }: OrderDetailProps): react_jsx_runtime.JSX.Element;
|
|
920
|
+
|
|
921
|
+
interface Denomination {
|
|
922
|
+
label: string;
|
|
923
|
+
value: number;
|
|
924
|
+
}
|
|
925
|
+
interface CashCountInputProps extends Omit<ViewProps, 'children'> {
|
|
926
|
+
denominations?: Denomination[];
|
|
927
|
+
defaultCounts?: Record<number, number>;
|
|
928
|
+
counts?: Record<number, number>;
|
|
929
|
+
onChangeCounts?: (counts: Record<number, number>) => void;
|
|
930
|
+
onChangeTotal?: (total: number) => void;
|
|
931
|
+
className?: string;
|
|
932
|
+
}
|
|
933
|
+
declare function CashCountInput({ denominations, defaultCounts, counts: controlledCounts, onChangeCounts, onChangeTotal, className, ...viewProps }: CashCountInputProps): react_jsx_runtime.JSX.Element;
|
|
934
|
+
|
|
935
|
+
interface TransactionSummary {
|
|
936
|
+
method: string;
|
|
937
|
+
count: number;
|
|
938
|
+
total: number;
|
|
939
|
+
}
|
|
940
|
+
interface RegisterSummaryProps extends Omit<ViewProps, 'children'> {
|
|
941
|
+
expectedCash: number;
|
|
942
|
+
actualCash: number;
|
|
943
|
+
transactions: TransactionSummary[];
|
|
944
|
+
headerSlot?: ReactNode;
|
|
945
|
+
footerSlot?: ReactNode;
|
|
946
|
+
className?: string;
|
|
947
|
+
}
|
|
948
|
+
declare function RegisterSummary({ expectedCash, actualCash, transactions, headerSlot, footerSlot, className, ...viewProps }: RegisterSummaryProps): react_jsx_runtime.JSX.Element;
|
|
949
|
+
|
|
950
|
+
interface RegisterOpenCloseProps extends Omit<ViewProps, 'children'> {
|
|
951
|
+
isOpen: boolean;
|
|
952
|
+
onOpen?: () => void;
|
|
953
|
+
onClose?: () => void;
|
|
954
|
+
expectedBalance?: number;
|
|
955
|
+
cashCountSlot?: ReactNode;
|
|
956
|
+
notesSlot?: ReactNode;
|
|
957
|
+
className?: string;
|
|
958
|
+
}
|
|
959
|
+
declare function RegisterOpenClose({ isOpen, onOpen, onClose, expectedBalance, cashCountSlot, notesSlot, className, ...viewProps }: RegisterOpenCloseProps): react_jsx_runtime.JSX.Element;
|
|
960
|
+
|
|
961
|
+
interface RegisterPickerRegister {
|
|
962
|
+
id: string;
|
|
963
|
+
name: string;
|
|
964
|
+
}
|
|
965
|
+
interface RegisterPickerProps {
|
|
966
|
+
/** The app's own list of registers for this store; there's no `useRegisterSession` yet to bind. */
|
|
967
|
+
registers: RegisterPickerRegister[];
|
|
968
|
+
onPick: (id: string) => void;
|
|
969
|
+
className?: string;
|
|
970
|
+
}
|
|
971
|
+
/**
|
|
972
|
+
* The register-choice screen: shown before a till is bound to any register. Port provenance
|
|
973
|
+
* (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-picker.tsx`.
|
|
974
|
+
*
|
|
975
|
+
* Neutral change: the app supplies `registers` and binds on `onPick` itself — TallyUI has no
|
|
976
|
+
* `useRegisterBinding` concept; binding is entirely the app's own (ADR-032 amendment 1).
|
|
977
|
+
*/
|
|
978
|
+
declare function RegisterPicker({ registers, onPick, className }: RegisterPickerProps): react_jsx_runtime.JSX.Element;
|
|
979
|
+
|
|
980
|
+
interface OpenRegisterCardProps {
|
|
981
|
+
/** `useRegisterSession`'s return value: opens the session through `register.actions.openSession`. */
|
|
982
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
983
|
+
/** ISO 4217 code, for parsing and formatting the typed amount. */
|
|
984
|
+
currency: string;
|
|
985
|
+
/** The store's configured opening float, minor units; preferred over the last counted cash. */
|
|
986
|
+
configuredFloatMinor?: number | null;
|
|
987
|
+
className?: string;
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* Opens a register session, prefilled with the configured float or the last counted cash.
|
|
991
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `open-register-card.tsx`
|
|
992
|
+
* (LEDGER 52).
|
|
993
|
+
*
|
|
994
|
+
* The chip choices are already resolved once `expectedFloatMinor` is computed: a late-arriving
|
|
995
|
+
* `configuredFloatMinor` or `register.lastClosure` never overwrites what the cashier already
|
|
996
|
+
* typed, because `enteredAmount` only ever starts from it, never re-derives from it.
|
|
997
|
+
*/
|
|
998
|
+
declare function OpenRegisterCard({ register, currency, configuredFloatMinor, className }: OpenRegisterCardProps): react_jsx_runtime.JSX.Element;
|
|
999
|
+
|
|
1000
|
+
interface RegisterBarProps {
|
|
1001
|
+
/** `useRegisterSession`'s return value: the session's status, `overdue`, `enabled` and so on. */
|
|
1002
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1003
|
+
/** The register this till is bound to, or `null` when no register is chosen yet. */
|
|
1004
|
+
registerId: string | null;
|
|
1005
|
+
/** `false` when the store, or the app itself, can't be reached — reads to the cashier as offline. */
|
|
1006
|
+
online: boolean;
|
|
1007
|
+
/** Hidden when `multiRegister` is `false`: a single-register store doesn't need to name it. */
|
|
1008
|
+
registerName?: string;
|
|
1009
|
+
multiRegister: boolean;
|
|
1010
|
+
onOpenPanel: () => void;
|
|
1011
|
+
/** Turns the pill into a button (opens the gate/picker or the panel) when given; the plain badge otherwise. */
|
|
1012
|
+
onPressPill?: () => void;
|
|
1013
|
+
className?: string;
|
|
1014
|
+
}
|
|
1015
|
+
/**
|
|
1016
|
+
* The till's one status bar: which register (multi-register stores only), one status pill
|
|
1017
|
+
* (LEDGER 48), and the button that opens the register panel. Port provenance (ADR-032 amendment
|
|
1018
|
+
* 1): WCPOS `next` `3b5331b5c` `register-bar.tsx`.
|
|
1019
|
+
*
|
|
1020
|
+
* Dropped for this neutral port: the user avatar and user sheet, switch-store, and the
|
|
1021
|
+
* WooCommerce OAuth-return rehosting — all app/backend concerns `useRegisterSession` never
|
|
1022
|
+
* carries. The drawer/menu button is gone too: TallyUI has no fixed navigation shell to open.
|
|
1023
|
+
*/
|
|
1024
|
+
declare function RegisterBar({ register, registerId, online, registerName, multiRegister, onOpenPanel, onPressPill, className, }: RegisterBarProps): react_jsx_runtime.JSX.Element;
|
|
1025
|
+
|
|
1026
|
+
/**
|
|
1027
|
+
* The register bar's status pill: one pill, one place. Port provenance (ADR-032 amendment 1):
|
|
1028
|
+
* WCPOS `next` `3b5331b5c` `register-bar.helpers.ts` (LEDGER 48).
|
|
1029
|
+
*
|
|
1030
|
+
* Neutral changes: WCPOS decides "choosing a register" from a WooCommerce binding status
|
|
1031
|
+
* (`bindingStatus: 'bound' | 'choose' | 'none' | 'unknown'`) and folds the store's display name
|
|
1032
|
+
* into `place`. TallyUI's binding is entirely the app's own (ADR-032 amendment 1's "Not ported"
|
|
1033
|
+
* note), so this takes the plain `registerId` the app already passes to `useRegisterSession`
|
|
1034
|
+
* (`null` means unbound) instead, and drops the store name — RegisterBar here shows only the
|
|
1035
|
+
* register name (`multiRegister` decides whether that's shown at all) and the status pill.
|
|
1036
|
+
* Copy is plain English (no i18n keys, ADR-064's neutral-copy rule).
|
|
1037
|
+
*/
|
|
1038
|
+
type RegisterBarPill = 'Choose a register' | 'Close not finished' | 'Offline' | 'Approval needed' | 'Counting' | 'Overdue' | 'Register closed';
|
|
1039
|
+
/**
|
|
1040
|
+
* Priority, matching WCPOS's ordering: choosing a register outranks everything (LEDGER 48);
|
|
1041
|
+
* then a closed session whose close isn't in flight (TallyUI: it blocks selling until Finish
|
|
1042
|
+
* closing); then an unreachable store reads as offline, ahead of any session state; approval needed
|
|
1043
|
+
* outranks plain counting; an open, overdue session outranks a session-less "closed" pill.
|
|
1044
|
+
*/
|
|
1045
|
+
declare function describeRegisterBarPill({ registerId, online, sessionStatus, overdue, approvalRequired, sessionsOn, closing, }: {
|
|
1046
|
+
/** The register this till is bound to, or `null` when it isn't bound yet. */
|
|
1047
|
+
registerId: string | null;
|
|
1048
|
+
online: boolean;
|
|
1049
|
+
sessionStatus?: 'open' | 'counting' | 'closed' | null;
|
|
1050
|
+
overdue?: boolean;
|
|
1051
|
+
approvalRequired?: boolean;
|
|
1052
|
+
/** The store uses register sessions at all (`useRegisterSession`'s `enabled`). */
|
|
1053
|
+
sessionsOn?: boolean;
|
|
1054
|
+
/** A close is in flight (`useRegisterSession`'s `closing`), so a closed session isn't unfinished. */
|
|
1055
|
+
closing?: boolean;
|
|
1056
|
+
}): RegisterBarPill | null;
|
|
1057
|
+
|
|
1058
|
+
interface MovementSheetProps {
|
|
1059
|
+
/** `useRegisterSession`'s return value: records the movement through `register.actions.recordMovement`. */
|
|
1060
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1061
|
+
/** The caller mounts this only once a type is chosen, so the sheet always has one to record. */
|
|
1062
|
+
type: MovementType;
|
|
1063
|
+
/** ISO 4217 code, for parsing the typed amount into minor units. */
|
|
1064
|
+
currency: string;
|
|
1065
|
+
onDone?: (id: string, type: MovementType, amountMinor: number) => void;
|
|
1066
|
+
onOpenChange: (open: boolean) => void;
|
|
1067
|
+
/** A no-sale opens the drawer once recorded (LEDGER 66); there is nothing to open otherwise. */
|
|
1068
|
+
onOpenDrawer?: () => void;
|
|
1069
|
+
}
|
|
1070
|
+
/**
|
|
1071
|
+
* Records a paid-in, paid-out or no-sale cash movement. Port provenance (ADR-032 amendment 1):
|
|
1072
|
+
* WCPOS `next` `3b5331b5c` `movement-sheet.tsx` (LEDGER 55, 56, 66).
|
|
1073
|
+
*
|
|
1074
|
+
* The cash moves the moment the cashier confirms, so validation happens before the tap, never
|
|
1075
|
+
* after: a refusal afterwards would mean cash already moved with no record of it. A no-sale
|
|
1076
|
+
* hides the amount field, always records zero, and opens the drawer once the row is written.
|
|
1077
|
+
*/
|
|
1078
|
+
declare function MovementSheet({ register, type, currency, onDone, onOpenChange, onOpenDrawer }: MovementSheetProps): react_jsx_runtime.JSX.Element;
|
|
1079
|
+
|
|
1080
|
+
interface RegisterPanelProps {
|
|
1081
|
+
/** `useRegisterSession`'s return value: movements, `expected`, `blind`, and every action used here. */
|
|
1082
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1083
|
+
/** ISO 4217 code, for money display and movement amounts. */
|
|
1084
|
+
currency: string;
|
|
1085
|
+
/** Shown as the panel's title while blind counting hides the expected amount. */
|
|
1086
|
+
registerName?: string;
|
|
1087
|
+
open: boolean;
|
|
1088
|
+
onOpenChange: (open: boolean) => void;
|
|
1089
|
+
className?: string;
|
|
1090
|
+
}
|
|
1091
|
+
/**
|
|
1092
|
+
* The register's drawer panel: expected figures, cash movements with Undo, and Close register.
|
|
1093
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-panel.tsx` (LEDGER
|
|
1094
|
+
* 54, 56, 58).
|
|
1095
|
+
*
|
|
1096
|
+
* Leaves out (registers job c2 or a later job, per `useRegisterSession`'s own "Not ported"
|
|
1097
|
+
* note): refused-movement Retry and "Unsynced" (no outbox here to refuse a movement), the
|
|
1098
|
+
* X-report, Z and print/reprint, and the Reports deep link.
|
|
1099
|
+
*/
|
|
1100
|
+
declare function RegisterPanel({ register, currency, registerName, open, onOpenChange, className }: RegisterPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
1101
|
+
|
|
1102
|
+
interface RegisterColumnProps {
|
|
1103
|
+
/** `useRegisterSession`'s return value: decides the picker/open/counting/selling swap. */
|
|
1104
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1105
|
+
/** The register this till is bound to, the same value passed into `useRegisterSession`; `null`
|
|
1106
|
+
* means unbound, since the hook's own return carries no such field (it's the app's input, not
|
|
1107
|
+
* its output). */
|
|
1108
|
+
registerId: string | null;
|
|
1109
|
+
registers: RegisterPickerRegister[];
|
|
1110
|
+
onPick: (id: string) => void;
|
|
1111
|
+
/** ISO 4217 code, forwarded to `OpenRegisterCard`. */
|
|
1112
|
+
currency: string;
|
|
1113
|
+
configuredFloatMinor?: number | null;
|
|
1114
|
+
/** Rendered instead of `children` while a session is counting (Job B fills this), and while its close is in flight
|
|
1115
|
+
* (`register.closing`). A closed session that isn't closing shows the Finish-closing card instead, whose button has
|
|
1116
|
+
* `nativeID="register-column-finish-close-button"`, so an app's `onPressPill` can focus it on the web. */
|
|
1117
|
+
countSlot?: ReactNode;
|
|
1118
|
+
/** Whether the cart has no lines; gates the overdue Close register offer (LEDGER 53). */
|
|
1119
|
+
cartEmpty?: boolean;
|
|
1120
|
+
/** The cart, shown once a register is bound, open, and not counting. */
|
|
1121
|
+
children: ReactNode;
|
|
1122
|
+
}
|
|
1123
|
+
/**
|
|
1124
|
+
* Swaps the cart column's content for register selection, opening or counting when the till
|
|
1125
|
+
* needs it, offering Close register when an open session runs overdue with nothing left to
|
|
1126
|
+
* sell. Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c`'s cart-column register
|
|
1127
|
+
* swap (LEDGER 53), composed here as one small component rather than inline cart-screen logic.
|
|
1128
|
+
*/
|
|
1129
|
+
declare function RegisterColumn({ register, registerId, registers, onPick, currency, configuredFloatMinor, countSlot, cartEmpty, children, }: RegisterColumnProps): react_jsx_runtime.JSX.Element;
|
|
1130
|
+
|
|
1131
|
+
/** The exact refusal shown when Close is over `varianceThreshold` and the host gives no `approve` (the Front desk, 2026-09-28). */
|
|
1132
|
+
declare const APPROVAL_REQUIRED_TEXT = "Manager approval needed. Ask a manager to approve, or count again.";
|
|
1133
|
+
interface RegisterCountProps {
|
|
1134
|
+
/** `useRegisterSession`'s return value: `expected`, `blind`, `varianceThreshold`, and `backToSelling`/`closeSession`. */
|
|
1135
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1136
|
+
/** ISO 4217 code: denomination faces, parsing and display. */
|
|
1137
|
+
currency: string;
|
|
1138
|
+
/**
|
|
1139
|
+
* Above `register.varianceThreshold`, Close asks for this first. `null` refuses and the count
|
|
1140
|
+
* stays; without it, Close refuses outright with `APPROVAL_REQUIRED_TEXT`. Its `approvedBy`
|
|
1141
|
+
* and `approvedByName` go to `closeSession`, which enforces the same gate and puts them on the Z.
|
|
1142
|
+
*/
|
|
1143
|
+
approve?: () => Promise<{
|
|
1144
|
+
approvedBy: string;
|
|
1145
|
+
approvedByName?: string;
|
|
1146
|
+
} | null>;
|
|
1147
|
+
className?: string;
|
|
1148
|
+
}
|
|
1149
|
+
/**
|
|
1150
|
+
* Counts the drawer at close: denomination tiles or a typed cash amount, other tenders kept as
|
|
1151
|
+
* typed, a live variance line, and Close (gated by `approve` over threshold) or Back to selling.
|
|
1152
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-count.tsx` (LEDGER
|
|
1153
|
+
* 59, 60, 65, 67). Leaves out WCPOS's ApproveSheet and server-demanded `approval_required`
|
|
1154
|
+
* (registers c2) — `approve` is the host's own gate, and it runs regardless of `blind`: dropping
|
|
1155
|
+
* the server flag would otherwise leave a blind count with no gate at all over threshold.
|
|
1156
|
+
*/
|
|
1157
|
+
declare function RegisterCount({ register, currency, approve, className }: RegisterCountProps): react_jsx_runtime.JSX.Element | null;
|
|
1158
|
+
|
|
1159
|
+
interface ClosureSheetProps {
|
|
1160
|
+
/** `useRegisterSession`'s return value: reads `lastClosure` and `blind`. */
|
|
1161
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1162
|
+
/** ISO 4217 code, for the figures. */
|
|
1163
|
+
currency: string;
|
|
1164
|
+
/** Renders no print button when absent — printing is a later job (registers c2). */
|
|
1165
|
+
onPrint?: () => void | Promise<void>;
|
|
1166
|
+
onDone: () => void;
|
|
1167
|
+
}
|
|
1168
|
+
/**
|
|
1169
|
+
* Confirms a closed session from `register.lastClosure`: the local closure number always, and
|
|
1170
|
+
* the counted figures and variance per tender unless `blind`. Port provenance (ADR-032
|
|
1171
|
+
* amendment 1): WCPOS `next` `3b5331b5c` `closure-sheet.tsx` (LEDGER 54, 62). Leaves out the
|
|
1172
|
+
* Z-report preview, print/reprint and the server-number adoption (registers c2) — `onPrint` is
|
|
1173
|
+
* an optional hook for a host that later wires up printing; without it, no button renders.
|
|
1174
|
+
* Unlike WCPOS (which still shows counted cash to a blind cashier), every figure here is hidden
|
|
1175
|
+
* while blind, per the register-screens-b design, since TallyUI's closure lists every tender.
|
|
1176
|
+
*/
|
|
1177
|
+
declare function ClosureSheet({ register, currency, onPrint, onDone }: ClosureSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1178
|
+
|
|
1179
|
+
interface SettingsRowProps extends Omit<ViewProps, 'children'> {
|
|
1180
|
+
label: string;
|
|
1181
|
+
description?: string;
|
|
1182
|
+
action?: ReactNode;
|
|
1183
|
+
className?: string;
|
|
1184
|
+
}
|
|
1185
|
+
declare function SettingsRow({ label, description, action, className, ...viewProps }: SettingsRowProps): react_jsx_runtime.JSX.Element;
|
|
1186
|
+
|
|
1187
|
+
interface SettingsGroupProps extends Omit<ViewProps, 'children'> {
|
|
1188
|
+
title: string;
|
|
1189
|
+
description?: string;
|
|
1190
|
+
children: ReactNode;
|
|
1191
|
+
className?: string;
|
|
1192
|
+
}
|
|
1193
|
+
declare function SettingsGroup({ title, description, children, className, ...viewProps }: SettingsGroupProps): react_jsx_runtime.JSX.Element;
|
|
1194
|
+
|
|
1195
|
+
type ConnectionStatus = 'connected' | 'disconnected' | 'syncing' | 'error';
|
|
1196
|
+
interface ConnectorStatusProps extends Omit<ViewProps, 'children'> {
|
|
1197
|
+
name: string;
|
|
1198
|
+
status: ConnectionStatus;
|
|
1199
|
+
lastSync?: string;
|
|
1200
|
+
error?: string;
|
|
1201
|
+
className?: string;
|
|
1202
|
+
/** Products the sales channel doesn't sell (the calculated-price runner's `unreported`). Hidden when undefined or 0. */
|
|
1203
|
+
unsoldCount?: number;
|
|
1204
|
+
/** True when that count is from an older pass than the last failure (`!isFingerprintResultCurrent(state)`). */
|
|
1205
|
+
unsoldStale?: boolean;
|
|
1206
|
+
/** The line's text; default: `${n} product(s) not sold in this channel`, plus ` (last check failed)` when stale. */
|
|
1207
|
+
formatUnsold?: (count: number, stale: boolean) => string;
|
|
1208
|
+
}
|
|
1209
|
+
declare function ConnectorStatus({ name, status, lastSync, error, className, unsoldCount, unsoldStale, formatUnsold, ...viewProps }: ConnectorStatusProps): react_jsx_runtime.JSX.Element;
|
|
1210
|
+
|
|
1211
|
+
/** `taxLabel` names each tax row; VAT isn't universal, so a platform passes its own (medusapos passes `VAT ${rate}%`). */
|
|
1212
|
+
declare function Cart({ sale, taxLabel }: {
|
|
1213
|
+
sale: ReturnType<typeof useSale>;
|
|
1214
|
+
taxLabel?: (ratePpm: number) => string;
|
|
1215
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1216
|
+
|
|
1217
|
+
/** Phone mode's cart summary (medusapos ADR 0009): the whole bar is one button; the total is the cart's own Total row. */
|
|
1218
|
+
declare function CartBar({ sale, onOpen }: {
|
|
1219
|
+
sale: ReturnType<typeof useSale>;
|
|
1220
|
+
onOpen: () => void;
|
|
1221
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1222
|
+
|
|
1223
|
+
declare function Tender({ sale }: {
|
|
1224
|
+
sale: ReturnType<typeof useSale>;
|
|
1225
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1226
|
+
|
|
1227
|
+
/** The cashier's entry as a TallyUI Discount (a percent, or integer minor units), or the inline error to show. */
|
|
1228
|
+
declare function parseDiscount(type: Discount['type'], text: string, currency: string): Discount | string;
|
|
1229
|
+
/** "10%", or a fixed discount's amount as it actually comes off (amountMinor), never the amount requested. */
|
|
1230
|
+
declare const discountLabel: (discount: AppliedDiscount, currency: string) => string;
|
|
1231
|
+
/** `onApply` returns a refusal to show inline (the capability gate), or null once applied. */
|
|
1232
|
+
declare function DiscountForm({ title, currency, onApply, onClose }: {
|
|
1233
|
+
title: string;
|
|
1234
|
+
currency: string;
|
|
1235
|
+
onApply: (discount: Discount) => string | null;
|
|
1236
|
+
onClose: () => void;
|
|
1237
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1238
|
+
/** Applied discounts as badges; pressing one removes it through TallyUI's builder. */
|
|
1239
|
+
/** `prefix` names a chip that would otherwise read like a fee, e.g. "Order discount −€0.50". */
|
|
1240
|
+
/** `amounts` are order.display's figures by discountId (TallyUI ADR-063): "10% −€0.40", or "−€0.40" for a fixed one. */
|
|
1241
|
+
declare function DiscountChips({ discounts, currency, onRemove, prefix, amounts }: {
|
|
1242
|
+
discounts: AppliedDiscount[];
|
|
1243
|
+
currency: string;
|
|
1244
|
+
onRemove: (id: string) => void;
|
|
1245
|
+
prefix?: string;
|
|
1246
|
+
amounts?: {
|
|
1247
|
+
discountId: string;
|
|
1248
|
+
amountMinor: number;
|
|
1249
|
+
}[];
|
|
1250
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1251
|
+
|
|
1252
|
+
declare function formatStockSyncTime(time: Date, locale?: string, hour12?: boolean, now?: Date): string;
|
|
1253
|
+
declare function Catalogue<Doc>({ products, traits, currency, onSelect, statusText, statusAccessory, lastSyncedAt, lastStockCheckAt, hour12, minCodeLength }: {
|
|
1254
|
+
products: Doc[];
|
|
1255
|
+
traits: ProductTraits<Doc>;
|
|
1256
|
+
currency: string;
|
|
1257
|
+
/** Receives the chosen product and variant with the nearest ConnectorProvider's stock overlay applied (a copy). */
|
|
1258
|
+
onSelect: (entry: CatalogueEntry<Doc>) => void;
|
|
1259
|
+
statusText?: string;
|
|
1260
|
+
/** Rendered at the end of the status line, e.g. a register control at phone width; the row renders even without `statusText`. */
|
|
1261
|
+
statusAccessory?: ReactNode;
|
|
1262
|
+
lastSyncedAt: Date | null;
|
|
1263
|
+
/** The last completed stock reconcile pass, persisted across restarts. The "stock as of" time shown is the
|
|
1264
|
+
* latest of this, the provider's stockOverlayAsOf (when valid) and lastSyncedAt; null and omitted alike. */
|
|
1265
|
+
lastStockCheckAt?: Date | null;
|
|
1266
|
+
/** Whether to show a 12- or 24-hour clock in the stock-as-of time; undefined keeps the locale default. A platform
|
|
1267
|
+
* reads this off its own device APIs (e.g. expo-localization's getCalendars()) and passes it in. */
|
|
1268
|
+
hour12?: boolean;
|
|
1269
|
+
/** A till's scanner setting: below this length (after trimming), Enter leaves the typed text as a plain
|
|
1270
|
+
* search instead of doing a code lookup. A scanner's timing threshold is the app's own concern,
|
|
1271
|
+
* in its unfocused wedge listener — not this prop's job. */
|
|
1272
|
+
minCodeLength?: number;
|
|
1273
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1274
|
+
|
|
1275
|
+
/** `store`/`taxLabel`/`topInset`/`formatDate` replace the app's Medusa settings, hard-coded VAT (default matches
|
|
1276
|
+
* TV6a's `Cart`), outbox strip and date util, so `Receipt` stays platform-neutral (ADR-052). */
|
|
1277
|
+
declare function Receipt({ order, store, cashier, registerId, newSale, taxLabel, topInset, formatDate }: {
|
|
1278
|
+
order: SentOrder;
|
|
1279
|
+
store: {
|
|
1280
|
+
name: string;
|
|
1281
|
+
address?: string;
|
|
1282
|
+
};
|
|
1283
|
+
cashier: string;
|
|
1284
|
+
registerId: string;
|
|
1285
|
+
newSale: () => void;
|
|
1286
|
+
taxLabel?: (ratePpm: number) => string;
|
|
1287
|
+
topInset?: number;
|
|
1288
|
+
formatDate?: (iso: string) => string;
|
|
1289
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1290
|
+
|
|
1291
|
+
declare function injectPrintStyle(): void;
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
* `pluginName` names the store's plugin in the detail, as its owners know it; `registerState` counts till updates.
|
|
1295
|
+
* `pullNotice` (a stopped product pull) shows as its own line and detail, above the outbox line.
|
|
1296
|
+
*/
|
|
1297
|
+
declare function SyncStatus({ state, registerState, pluginName, pullNotice }: {
|
|
1298
|
+
state: OutboxState;
|
|
1299
|
+
registerState?: OutboxState;
|
|
1300
|
+
pluginName?: string;
|
|
1301
|
+
pullNotice?: SyncNotice;
|
|
1302
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1303
|
+
|
|
1304
|
+
/** The "Needs attention" (when not empty) and "Recent" orders, lifted from medusapos/app's orders screen (ADR-052).
|
|
1305
|
+
* `onRetry` is the outbox's `requeue`; `formatDate` replaces the app's date util; `footer` is the app's own content
|
|
1306
|
+
* (medusapos: the feedback link). The router and session redirect stay in the app. `stuck` is the outbox's
|
|
1307
|
+
* `state.stuck` (`useOrderOutbox`): those pending orders need attention too, each with its own entry's reason and since. */
|
|
1308
|
+
declare function OrdersList({ orders, onRetry, formatDate, footer, stuck }: {
|
|
1309
|
+
orders: PosOrder[];
|
|
1310
|
+
onRetry(orderIds: string[]): Promise<number>;
|
|
1311
|
+
formatDate?: (iso: string) => string;
|
|
1312
|
+
footer?: ReactNode;
|
|
1313
|
+
stuck?: OutboxState['stuck'];
|
|
1314
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1315
|
+
|
|
1316
|
+
interface POSLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1317
|
+
browseSlot: ReactNode;
|
|
1318
|
+
cartSlot: ReactNode;
|
|
1319
|
+
headerSlot?: ReactNode;
|
|
1320
|
+
layout?: 'split' | 'stacked';
|
|
1321
|
+
breakpoint?: number;
|
|
1322
|
+
className?: string;
|
|
1323
|
+
}
|
|
1324
|
+
declare function POSLayout({ browseSlot, cartSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: POSLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1325
|
+
|
|
1326
|
+
interface CheckoutLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1327
|
+
summarySlot: ReactNode;
|
|
1328
|
+
paymentSlot: ReactNode;
|
|
1329
|
+
headerSlot?: ReactNode;
|
|
1330
|
+
layout?: 'split' | 'stacked';
|
|
1331
|
+
breakpoint?: number;
|
|
1332
|
+
className?: string;
|
|
1333
|
+
}
|
|
1334
|
+
declare function CheckoutLayout({ summarySlot, paymentSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: CheckoutLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1335
|
+
|
|
1336
|
+
interface SettingsLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1337
|
+
navSlot: ReactNode;
|
|
1338
|
+
contentSlot: ReactNode;
|
|
1339
|
+
headerSlot?: ReactNode;
|
|
1340
|
+
layout?: 'split' | 'stacked';
|
|
1341
|
+
breakpoint?: number;
|
|
1342
|
+
className?: string;
|
|
1343
|
+
}
|
|
1344
|
+
declare function SettingsLayout({ navSlot, contentSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: SettingsLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1345
|
+
|
|
1346
|
+
/** Mirrors `LiveTabState` from `@tallyui/database`, without depending on that package. */
|
|
1347
|
+
type LiveTabScreenState = 'acquiring' | 'live' | 'parked' | 'blocked';
|
|
1348
|
+
interface LiveTabScreenProps extends Omit<ViewProps, 'children'> {
|
|
1349
|
+
state: LiveTabScreenState;
|
|
1350
|
+
/** Called when the parked screen's "Use here" button is pressed. */
|
|
1351
|
+
onUseHere: () => void;
|
|
1352
|
+
/** Called when the blocked screen's "Reload" button is pressed. */
|
|
1353
|
+
onReload: () => void;
|
|
1354
|
+
/** Title for both the parked and the blocked screen. */
|
|
1355
|
+
parkedTitle?: string;
|
|
1356
|
+
parkedBody?: string;
|
|
1357
|
+
useHereLabel?: string;
|
|
1358
|
+
blockedBody?: string;
|
|
1359
|
+
reloadLabel?: string;
|
|
1360
|
+
className?: string;
|
|
1361
|
+
}
|
|
1362
|
+
/**
|
|
1363
|
+
* ADR-061: what a tab shows once it is no longer the live one. Renders
|
|
1364
|
+
* nothing for `acquiring` and `live`.
|
|
1365
|
+
*/
|
|
1366
|
+
declare function LiveTabScreen({ state, onUseHere, onReload, parkedTitle, parkedBody, useHereLabel, blockedBody, reloadLabel, className, ...viewProps }: LiveTabScreenProps): react_jsx_runtime.JSX.Element | null;
|
|
1367
|
+
|
|
1368
|
+
interface StoreSettingsChoiceScreenProps extends Omit<ViewProps, 'children'> {
|
|
1369
|
+
/** From `StoreSettingsError.choices`. Only the sections present are shown. */
|
|
1370
|
+
choices: StoreSettingsChoices;
|
|
1371
|
+
/** A previous choice to pre-select (for example, a stale stored one); fields that aren't in `choices` are ignored. */
|
|
1372
|
+
initial?: StoreSettingsChoice;
|
|
1373
|
+
/** Called with the full choice when the user confirms. The app persists it per store and retries `storeSettings`. */
|
|
1374
|
+
onSubmit: (choice: StoreSettingsChoice) => void;
|
|
1375
|
+
/** Display name for an ISO 3166-1 alpha-2 code. Default: `Intl.DisplayNames` in `locale`, falling back to the upper-cased code. */
|
|
1376
|
+
countryName?: (code: string) => string;
|
|
1377
|
+
locale?: string;
|
|
1378
|
+
title?: string;
|
|
1379
|
+
body?: string;
|
|
1380
|
+
regionLabel?: string;
|
|
1381
|
+
countryLabel?: string;
|
|
1382
|
+
channelLabel?: string;
|
|
1383
|
+
submitLabel?: string;
|
|
1384
|
+
className?: string;
|
|
1385
|
+
}
|
|
1386
|
+
/**
|
|
1387
|
+
* TV4: shown when `storeSettings` rejects with `choice_required`. The app
|
|
1388
|
+
* persists the returned choice per store and calls `storeSettings(context,
|
|
1389
|
+
* choice)` again; a stored choice that no longer resolves raises
|
|
1390
|
+
* `choice_required` again, and this screen pre-selects what still matches.
|
|
1391
|
+
*/
|
|
1392
|
+
declare function StoreSettingsChoiceScreen({ choices, initial, onSubmit, countryName, locale, title, body, regionLabel, countryLabel, channelLabel, submitLabel, className, ...viewProps }: StoreSettingsChoiceScreenProps): react_jsx_runtime.JSX.Element;
|
|
363
1393
|
|
|
364
|
-
export { CartLine, type
|
|
1394
|
+
export { APPROVAL_REQUIRED_TEXT, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Avatar, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Cart, type CartAction, CartBar, CartLine, CartLineActions, type CartLineActionsProps, type CartLineProps, CartNoteInput, type CartNoteInputProps, CartPanel, type CartPanelProps, CartTotal, type CartTotalProps, CashCountInput, type CashCountInputProps, CashTendered, type CashTenderedProps, Catalogue, type CategoryItem, CategoryNav, type CategoryNavProps, ChangeDisplay, type ChangeDisplayProps, Checkbox, CheckoutLayout, type CheckoutLayoutProps, type ChipItem, ClosureSheet, type ClosureSheetProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxTrigger, type ConnectionStatus, ConnectorStatus, type ConnectorStatusProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CustomerCard, type CustomerCardProps, CustomerForm, type CustomerFormProps, type CustomerFormValues, CustomerOrderHistory, type CustomerOrderHistoryProps, CustomerPicker, type CustomerPickerProps, CustomerSelect, type CustomerSelectProps, type Denomination, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiscountBadge, type DiscountBadgeProps, DiscountChips, DiscountForm, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FilterChip, FilterChipGroup, type FilterChipGroupProps, type FilterChipProps, HStack, type HStackProps, HoverCard, HoverCardContent, HoverCardTrigger, Icon, IconButton, type IconButtonProps, type IconProps, Input, InputField, InputRoot, type InputRootProps, InputSlot, Label, type LabelProps, LiveTabScreen, type LiveTabScreenProps, type LiveTabScreenState, Loader, type LoaderProps, MovementSheet, type MovementSheetProps, OpenRegisterCard, type OpenRegisterCardProps, OrderCard, type OrderCardProps, OrderDetail, type OrderDetailLineItem, type OrderDetailProps, OrderList, type OrderListProps, type OrderStatus, OrderStatusBadge, type OrderStatusBadgeProps, OrderSummary, OrderSummaryLine, type OrderSummaryLineProps, type OrderSummaryPayment, type OrderSummaryProps, OrdersList, POSLayout, type POSLayoutProps, type PaymentMethod, PaymentMethodCard, type PaymentMethodCardProps, PaymentSelector, type PaymentSelectorProps, Popover, PopoverContent, PopoverTrigger, ProductCard, type ProductCardProps, ProductGrid, type ProductGridProps, ProductImage, type ProductImageProps, ProductList, type ProductListProps, ProductPrice, type ProductPriceProps, ProductSku, type ProductSkuProps, ProductStockBadge, type ProductStockBadgeProps, ProductTitle, type ProductTitleProps, ProductVariantPicker, type ProductVariantPickerProps, Progress, type ProgressProps, QuantityStepper, type QuantityStepperProps, RadioGroup, RadioGroupItem, Receipt, type ReceiptItem, ReceiptPreview, type ReceiptPreviewProps, RegisterBar, type RegisterBarPill, type RegisterBarProps, RegisterColumn, type RegisterColumnProps, RegisterCount, type RegisterCountProps, RegisterOpenClose, type RegisterOpenCloseProps, RegisterPanel, type RegisterPanelProps, RegisterPicker, type RegisterPickerProps, type RegisterPickerRegister, RegisterSummary, type RegisterSummaryProps, SearchIcon, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps, SettingsGroup, type SettingsGroupProps, SettingsLayout, type SettingsLayoutProps, SettingsRow, type SettingsRowProps, Slider, type SliderProps, StoreSettingsChoiceScreen, type StoreSettingsChoiceScreenProps, type SvgIconProps, Switch, SyncStatus, Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tender, Text, type TextProps, Textarea, type TextareaProps, Toast, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, Tooltip, TooltipContent, TooltipTrigger, type TransactionSummary, VStack, type VStackProps, type VariantOption, avatarVariants, badgeTextVariants, badgeVariants, buttonTextVariants, buttonVariants, createSvgIcon, describeRegisterBarPill, discountLabel, formatStockSyncTime, hstackVariants, iconButtonVariants, iconVariants, injectPrintStyle, loaderVariants, parseDiscount, textVariants, toastVariants, toggleTextVariants, toggleVariants, useInputContext, vstackVariants };
|