@tallyui/components 1.0.0 → 2.0.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 +1076 -76
- package/dist/index.js +4662 -355
- 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 +8 -9
- package/src/customer/customer-form.tsx +70 -0
- package/src/customer/customer-order-history.tsx +34 -0
- package/src/customer/customer-select.tsx +63 -24
- package/src/customer/index.ts +2 -0
- package/src/index.ts +112 -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 +25 -6
- 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 +155 -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 +131 -0
- package/src/sale/discount-form.tsx +85 -0
- package/src/sale/index.ts +9 -0
- package/src/sale/orders-list.tsx +66 -0
- package/src/sale/print-style.ts +11 -0
- package/src/sale/receipt.tsx +61 -0
- package/src/sale/sync-status.tsx +20 -0
- package/src/sale/tender.tsx +35 -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, ProductTraits, StoreSettingsChoices, StoreSettingsChoice } from '@tallyui/core';
|
|
12
|
+
import { useRegisterSession, MovementType, useSale, AppliedDiscount, Discount, CatalogueEntry, Order, 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,6 +472,12 @@ 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
|
/**
|
|
@@ -137,86 +495,135 @@ interface ProductGridProps extends Omit<ViewProps, 'children'> {
|
|
|
137
495
|
* />
|
|
138
496
|
* ```
|
|
139
497
|
*/
|
|
140
|
-
declare function ProductGrid({ items, renderItem, numColumns, searchSlot, filterSlot, emptyState, className, ...viewProps }: ProductGridProps): react_jsx_runtime.JSX.Element;
|
|
498
|
+
declare function ProductGrid({ items, renderItem, numColumns, searchSlot, filterSlot, emptyState, showUnsellable, className, ...viewProps }: ProductGridProps): react_jsx_runtime.JSX.Element;
|
|
141
499
|
|
|
142
|
-
interface
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
500
|
+
interface ProductListProps extends Omit<ViewProps, 'children'> {
|
|
501
|
+
items: any[];
|
|
502
|
+
renderItem: (item: any, index: number) => ReactNode;
|
|
503
|
+
searchSlot?: ReactNode;
|
|
504
|
+
filterSlot?: ReactNode;
|
|
505
|
+
emptyState?: ReactNode;
|
|
506
|
+
className?: string;
|
|
147
507
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
508
|
+
declare function ProductList({ items, renderItem, searchSlot, filterSlot, emptyState, className, ...viewProps }: ProductListProps): react_jsx_runtime.JSX.Element;
|
|
509
|
+
|
|
510
|
+
interface CategoryItem {
|
|
511
|
+
id: string;
|
|
512
|
+
name: string;
|
|
513
|
+
}
|
|
514
|
+
interface CategoryNavProps extends Omit<ViewProps, 'children'> {
|
|
515
|
+
categories: CategoryItem[];
|
|
516
|
+
selectedId: string;
|
|
517
|
+
onSelect: (id: string) => void;
|
|
518
|
+
orientation?: 'horizontal' | 'vertical';
|
|
519
|
+
className?: string;
|
|
520
|
+
}
|
|
521
|
+
declare function CategoryNav({ categories, selectedId, onSelect, orientation, className, ...viewProps }: CategoryNavProps): react_jsx_runtime.JSX.Element;
|
|
522
|
+
|
|
523
|
+
interface VariantOption {
|
|
524
|
+
name: string;
|
|
525
|
+
values: string[];
|
|
526
|
+
}
|
|
527
|
+
interface ProductVariantPickerProps extends Omit<ViewProps, 'children'> {
|
|
528
|
+
options: VariantOption[];
|
|
529
|
+
selected?: Record<string, string>;
|
|
530
|
+
onSelect?: (selection: Record<string, string>) => void;
|
|
531
|
+
className?: string;
|
|
532
|
+
}
|
|
533
|
+
declare function ProductVariantPicker({ options, selected, onSelect, className, ...viewProps }: ProductVariantPickerProps): react_jsx_runtime.JSX.Element;
|
|
534
|
+
|
|
535
|
+
interface CartLineProps extends Omit<HStackProps, 'children'> {
|
|
536
|
+
name: string;
|
|
537
|
+
quantity: number;
|
|
538
|
+
unitPrice: Money;
|
|
539
|
+
lineTotal: Money;
|
|
540
|
+
locale?: string;
|
|
153
541
|
className?: string;
|
|
154
542
|
}
|
|
155
543
|
/**
|
|
156
544
|
* Displays a single cart line item: product name, quantity, and line total.
|
|
157
545
|
*
|
|
158
546
|
* ```tsx
|
|
159
|
-
* <CartLine
|
|
547
|
+
* <CartLine name="Coffee" quantity={2} unitPrice={unitPrice} lineTotal={lineTotal} />
|
|
160
548
|
* ```
|
|
161
549
|
*/
|
|
162
|
-
declare function CartLine({
|
|
550
|
+
declare function CartLine({ name, quantity, unitPrice, lineTotal, locale, className, ...props }: CartLineProps): react_jsx_runtime.JSX.Element;
|
|
163
551
|
|
|
164
|
-
interface CartTotalProps extends Omit<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
552
|
+
interface CartTotalProps extends Omit<VStackProps, 'children'> {
|
|
553
|
+
subtotal: Money;
|
|
554
|
+
taxLines?: Array<{
|
|
555
|
+
label: string;
|
|
556
|
+
amount: Money;
|
|
557
|
+
}>;
|
|
558
|
+
discount?: Money;
|
|
559
|
+
total: Money;
|
|
560
|
+
/** The tax is already in the subtotal (an inclusive display), so its rows read "incl." rather than add up. */
|
|
561
|
+
taxInclusive?: boolean;
|
|
562
|
+
locale?: string;
|
|
173
563
|
className?: string;
|
|
174
564
|
}
|
|
175
565
|
/**
|
|
176
|
-
* Displays a cart summary
|
|
566
|
+
* Displays a cart summary: subtotal, optional discount, optional tax, and total, in the receipt's order.
|
|
177
567
|
*
|
|
178
568
|
* ```tsx
|
|
179
|
-
* <CartTotal
|
|
569
|
+
* <CartTotal subtotal={subtotal} discount={discount} taxLines={taxLines} total={total} />
|
|
180
570
|
* ```
|
|
181
571
|
*/
|
|
182
|
-
declare function CartTotal({
|
|
572
|
+
declare function CartTotal({ subtotal, taxLines, discount, total, taxInclusive, locale, className, ...props }: CartTotalProps): react_jsx_runtime.JSX.Element;
|
|
183
573
|
|
|
184
|
-
interface CartPanelProps extends Omit<
|
|
574
|
+
interface CartPanelProps<T> extends Omit<VStackProps, 'children'> {
|
|
185
575
|
/** Cart line items to render */
|
|
186
|
-
items:
|
|
576
|
+
items: T[];
|
|
187
577
|
/** Render function for each cart line */
|
|
188
|
-
renderItem: (item:
|
|
578
|
+
renderItem: (item: T, index: number) => ReactNode;
|
|
579
|
+
/** 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. */
|
|
580
|
+
keyExtractor?: (item: T, index: number) => string;
|
|
189
581
|
/** Header slot (e.g. customer info) */
|
|
190
582
|
header?: ReactNode;
|
|
583
|
+
/** 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 */
|
|
584
|
+
afterItems?: ReactNode;
|
|
191
585
|
/** Footer slot (e.g. totals, checkout button) */
|
|
192
586
|
footer?: ReactNode;
|
|
193
587
|
/** Content shown when items is empty */
|
|
194
588
|
emptyState?: ReactNode;
|
|
195
589
|
className?: string;
|
|
196
590
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
591
|
+
declare function CartPanel<T>({ items, renderItem, keyExtractor, header, afterItems, footer, emptyState, className, ...props }: CartPanelProps<T>): JSX.Element;
|
|
592
|
+
|
|
593
|
+
interface DiscountBadgeProps extends Omit<ViewProps, 'children'> {
|
|
594
|
+
label: string;
|
|
595
|
+
className?: string;
|
|
596
|
+
}
|
|
597
|
+
declare function DiscountBadge({ label, className, ...viewProps }: DiscountBadgeProps): react_jsx_runtime.JSX.Element;
|
|
598
|
+
|
|
599
|
+
interface CartNoteInputProps extends Omit<ViewProps, 'children'> {
|
|
600
|
+
value: string;
|
|
601
|
+
onChangeText: (text: string) => void;
|
|
602
|
+
placeholder?: string;
|
|
603
|
+
className?: string;
|
|
604
|
+
}
|
|
605
|
+
declare function CartNoteInput({ value, onChangeText, placeholder, className, ...viewProps }: CartNoteInputProps): react_jsx_runtime.JSX.Element;
|
|
606
|
+
|
|
607
|
+
interface CartAction {
|
|
608
|
+
id: string;
|
|
609
|
+
label: string;
|
|
610
|
+
onPress: () => void;
|
|
611
|
+
color?: string;
|
|
612
|
+
iconSlot?: ReactNode;
|
|
613
|
+
}
|
|
614
|
+
interface CartLineActionsProps extends Omit<ViewProps, 'children'> {
|
|
615
|
+
children: ReactNode;
|
|
616
|
+
actions: CartAction[];
|
|
617
|
+
className?: string;
|
|
618
|
+
}
|
|
619
|
+
declare function CartLineActions({ children, actions, className, ...viewProps }: CartLineActionsProps): react_jsx_runtime.JSX.Element;
|
|
213
620
|
|
|
214
621
|
interface SearchInputProps extends Omit<TextInputProps, 'value' | 'onChangeText'> {
|
|
215
622
|
value: string;
|
|
216
623
|
onChangeText: (text: string) => void;
|
|
217
624
|
className?: string;
|
|
218
625
|
}
|
|
219
|
-
declare function SearchInput({ value, onChangeText, className, placeholder, ...props }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
626
|
+
declare function SearchInput({ value, onChangeText, className, placeholder, style, onFocus, onBlur, ...props }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
220
627
|
|
|
221
628
|
interface FilterChipProps {
|
|
222
629
|
label: string;
|
|
@@ -224,6 +631,10 @@ interface FilterChipProps {
|
|
|
224
631
|
onPress: () => void;
|
|
225
632
|
className?: string;
|
|
226
633
|
}
|
|
634
|
+
/**
|
|
635
|
+
* A single toggle chip. When used standalone, renders as a simple
|
|
636
|
+
* ToggleGroup with one item.
|
|
637
|
+
*/
|
|
227
638
|
declare function FilterChip({ label, active, onPress, className }: FilterChipProps): react_jsx_runtime.JSX.Element;
|
|
228
639
|
interface ChipItem {
|
|
229
640
|
label: string;
|
|
@@ -234,15 +645,31 @@ interface FilterChipGroupProps extends Omit<ViewProps, 'children'> {
|
|
|
234
645
|
onChipPress: (index: number) => void;
|
|
235
646
|
className?: string;
|
|
236
647
|
}
|
|
648
|
+
/**
|
|
649
|
+
* A horizontal scrollable row of toggleable filter chips.
|
|
650
|
+
*
|
|
651
|
+
* Built on top of the ToggleGroup primitive for proper `aria-pressed`
|
|
652
|
+
* semantics and accessible toggle group behavior.
|
|
653
|
+
*/
|
|
237
654
|
declare function FilterChipGroup({ chips, onChipPress, className, ...viewProps }: FilterChipGroupProps): react_jsx_runtime.JSX.Element;
|
|
238
655
|
|
|
239
|
-
interface
|
|
656
|
+
interface QuantityStepperProps extends Omit<ViewProps, 'children'> {
|
|
657
|
+
defaultQuantity?: number;
|
|
658
|
+
quantity?: number;
|
|
659
|
+
onChangeQuantity?: (quantity: number) => void;
|
|
660
|
+
min?: number;
|
|
661
|
+
max?: number;
|
|
662
|
+
className?: string;
|
|
663
|
+
}
|
|
664
|
+
declare function QuantityStepper({ defaultQuantity, quantity: controlledQuantity, onChangeQuantity, min, max, className, ...viewProps }: QuantityStepperProps): react_jsx_runtime.JSX.Element;
|
|
665
|
+
|
|
666
|
+
interface CustomerCardProps extends Omit<VStackProps, 'children'> {
|
|
240
667
|
doc: any;
|
|
241
668
|
className?: string;
|
|
242
669
|
}
|
|
243
|
-
declare function CustomerCard({ doc, className, ...
|
|
670
|
+
declare function CustomerCard({ doc, className, ...props }: CustomerCardProps): react_jsx_runtime.JSX.Element | null;
|
|
244
671
|
|
|
245
|
-
interface CustomerSelectProps extends Omit<
|
|
672
|
+
interface CustomerSelectProps extends Omit<VStackProps, 'children'> {
|
|
246
673
|
/** Customer documents to display as options */
|
|
247
674
|
customers: any[];
|
|
248
675
|
/** Currently selected customer (if any) */
|
|
@@ -263,6 +690,9 @@ interface CustomerSelectProps extends Omit<ViewProps, 'children'> {
|
|
|
263
690
|
* calls onSearch with the query text and renders whatever customers
|
|
264
691
|
* are passed in.
|
|
265
692
|
*
|
|
693
|
+
* Built on top of the Select primitive for proper accessibility
|
|
694
|
+
* semantics (combobox role, option roles, aria-expanded, aria-checked).
|
|
695
|
+
*
|
|
266
696
|
* ```tsx
|
|
267
697
|
* <CustomerSelect
|
|
268
698
|
* customers={filteredCustomers}
|
|
@@ -272,31 +702,55 @@ interface CustomerSelectProps extends Omit<ViewProps, 'children'> {
|
|
|
272
702
|
* />
|
|
273
703
|
* ```
|
|
274
704
|
*/
|
|
275
|
-
declare function CustomerSelect({ customers, selected, onSelect, onSearch, placeholder, className, ...
|
|
705
|
+
declare function CustomerSelect({ customers, selected, onSelect, onSearch, placeholder, className, ...props }: CustomerSelectProps): react_jsx_runtime.JSX.Element;
|
|
706
|
+
|
|
707
|
+
interface CustomerFormValues {
|
|
708
|
+
firstName: string;
|
|
709
|
+
lastName: string;
|
|
710
|
+
email: string;
|
|
711
|
+
phone: string;
|
|
712
|
+
address: string;
|
|
713
|
+
}
|
|
714
|
+
interface CustomerFormProps extends Omit<ViewProps, 'children'> {
|
|
715
|
+
values: CustomerFormValues;
|
|
716
|
+
onChangeField: (field: keyof CustomerFormValues, value: string) => void;
|
|
717
|
+
onSubmit?: () => void;
|
|
718
|
+
submitLabel?: string;
|
|
719
|
+
className?: string;
|
|
720
|
+
}
|
|
721
|
+
declare function CustomerForm({ values, onChangeField, onSubmit, submitLabel, className, ...viewProps }: CustomerFormProps): react_jsx_runtime.JSX.Element;
|
|
722
|
+
|
|
723
|
+
interface CustomerOrderHistoryProps extends Omit<ViewProps, 'children'> {
|
|
724
|
+
orders: any[];
|
|
725
|
+
renderItem: (order: any, index: number) => ReactNode;
|
|
726
|
+
emptyState?: ReactNode;
|
|
727
|
+
className?: string;
|
|
728
|
+
}
|
|
729
|
+
declare function CustomerOrderHistory({ orders, renderItem, emptyState, className, ...viewProps }: CustomerOrderHistoryProps): react_jsx_runtime.JSX.Element;
|
|
276
730
|
|
|
277
|
-
interface PaymentMethodCardProps extends Omit<
|
|
731
|
+
interface PaymentMethodCardProps extends Omit<PressableProps, 'children'> {
|
|
278
732
|
label: string;
|
|
279
733
|
selected: boolean;
|
|
280
734
|
onPress: () => void;
|
|
281
735
|
icon?: ReactNode;
|
|
282
736
|
className?: string;
|
|
283
737
|
}
|
|
284
|
-
declare function PaymentMethodCard({ label, selected, onPress, icon, className, ...
|
|
738
|
+
declare function PaymentMethodCard({ label, selected, onPress, icon, className, ...props }: PaymentMethodCardProps): react_jsx_runtime.JSX.Element;
|
|
285
739
|
|
|
286
|
-
interface OrderSummaryLineProps extends Omit<
|
|
740
|
+
interface OrderSummaryLineProps extends Omit<HStackProps, 'children'> {
|
|
287
741
|
label: string;
|
|
288
742
|
amount: string;
|
|
289
743
|
bold?: boolean;
|
|
290
744
|
className?: string;
|
|
291
745
|
}
|
|
292
|
-
declare function OrderSummaryLine({ label, amount, bold, className, ...
|
|
746
|
+
declare function OrderSummaryLine({ label, amount, bold, className, ...props }: OrderSummaryLineProps): react_jsx_runtime.JSX.Element;
|
|
293
747
|
|
|
294
748
|
interface PaymentMethod {
|
|
295
749
|
id: string;
|
|
296
750
|
label: string;
|
|
297
751
|
icon?: ReactNode;
|
|
298
752
|
}
|
|
299
|
-
interface PaymentSelectorProps extends Omit<
|
|
753
|
+
interface PaymentSelectorProps extends Omit<VStackProps, 'children'> {
|
|
300
754
|
/** Available payment methods */
|
|
301
755
|
methods: PaymentMethod[];
|
|
302
756
|
/** ID of the currently selected method */
|
|
@@ -318,13 +772,13 @@ interface PaymentSelectorProps extends Omit<ViewProps, 'children'> {
|
|
|
318
772
|
* />
|
|
319
773
|
* ```
|
|
320
774
|
*/
|
|
321
|
-
declare function PaymentSelector({ methods, selected, onSelect, className, ...
|
|
775
|
+
declare function PaymentSelector({ methods, selected, onSelect, className, ...props }: PaymentSelectorProps): react_jsx_runtime.JSX.Element;
|
|
322
776
|
|
|
323
777
|
interface OrderSummaryPayment {
|
|
324
778
|
label: string;
|
|
325
779
|
amount: string;
|
|
326
780
|
}
|
|
327
|
-
interface OrderSummaryProps extends Omit<
|
|
781
|
+
interface OrderSummaryProps extends Omit<VStackProps, 'children'> {
|
|
328
782
|
/** Formatted subtotal string (e.g. "$1199.98") */
|
|
329
783
|
subtotal: string;
|
|
330
784
|
/** Formatted tax amount (optional) */
|
|
@@ -359,6 +813,552 @@ interface OrderSummaryProps extends Omit<ViewProps, 'children'> {
|
|
|
359
813
|
* />
|
|
360
814
|
* ```
|
|
361
815
|
*/
|
|
362
|
-
declare function OrderSummary({ subtotal, tax, taxLabel, total, payments, header, footer, className, ...
|
|
816
|
+
declare function OrderSummary({ subtotal, tax, taxLabel, total, payments, header, footer, className, ...props }: OrderSummaryProps): react_jsx_runtime.JSX.Element;
|
|
817
|
+
|
|
818
|
+
interface ChangeDisplayProps extends Omit<ViewProps, 'children'> {
|
|
819
|
+
change: Money;
|
|
820
|
+
locale?: string;
|
|
821
|
+
className?: string;
|
|
822
|
+
}
|
|
823
|
+
declare function ChangeDisplay({ change, locale, className, ...viewProps }: ChangeDisplayProps): react_jsx_runtime.JSX.Element;
|
|
824
|
+
|
|
825
|
+
interface CashTenderedProps extends Omit<ViewProps, 'children'> {
|
|
826
|
+
total: Money;
|
|
827
|
+
defaultAmount?: Money;
|
|
828
|
+
amount?: Money;
|
|
829
|
+
onChangeAmount?: (amount: Money) => void;
|
|
830
|
+
quickAmounts?: Money[];
|
|
831
|
+
locale?: string;
|
|
832
|
+
className?: string;
|
|
833
|
+
}
|
|
834
|
+
declare function CashTendered({ total, defaultAmount, amount: controlledAmount, onChangeAmount, quickAmounts, locale, className, ...viewProps }: CashTenderedProps): react_jsx_runtime.JSX.Element;
|
|
835
|
+
|
|
836
|
+
interface ReceiptItem {
|
|
837
|
+
name: string;
|
|
838
|
+
quantity: number;
|
|
839
|
+
total: string;
|
|
840
|
+
}
|
|
841
|
+
interface ReceiptPreviewProps extends Omit<ViewProps, 'children'> {
|
|
842
|
+
items: ReceiptItem[];
|
|
843
|
+
subtotal: string;
|
|
844
|
+
tax: string;
|
|
845
|
+
total: string;
|
|
846
|
+
payments?: Array<{
|
|
847
|
+
method: string;
|
|
848
|
+
amount: string;
|
|
849
|
+
}>;
|
|
850
|
+
headerSlot?: ReactNode;
|
|
851
|
+
footerSlot?: ReactNode;
|
|
852
|
+
className?: string;
|
|
853
|
+
}
|
|
854
|
+
declare function ReceiptPreview({ items, subtotal, tax, total, payments, headerSlot, footerSlot, className, ...viewProps }: ReceiptPreviewProps): react_jsx_runtime.JSX.Element;
|
|
855
|
+
|
|
856
|
+
type OrderStatus = 'pending' | 'processing' | 'completed' | 'refunded' | 'cancelled';
|
|
857
|
+
interface OrderStatusBadgeProps extends Omit<ViewProps, 'children'> {
|
|
858
|
+
status: OrderStatus;
|
|
859
|
+
className?: string;
|
|
860
|
+
}
|
|
861
|
+
declare function OrderStatusBadge({ status, className, ...viewProps }: OrderStatusBadgeProps): react_jsx_runtime.JSX.Element;
|
|
862
|
+
|
|
863
|
+
interface OrderCardProps extends Omit<ViewProps, 'children'> {
|
|
864
|
+
orderNumber: string;
|
|
865
|
+
date: string;
|
|
866
|
+
total: string;
|
|
867
|
+
status: OrderStatus;
|
|
868
|
+
customerName?: string;
|
|
869
|
+
onPress?: () => void;
|
|
870
|
+
className?: string;
|
|
871
|
+
}
|
|
872
|
+
declare function OrderCard({ orderNumber, date, total, status, customerName, onPress, className, ...viewProps }: OrderCardProps): react_jsx_runtime.JSX.Element;
|
|
873
|
+
|
|
874
|
+
interface OrderListProps extends Omit<ViewProps, 'children'> {
|
|
875
|
+
items: any[];
|
|
876
|
+
renderItem: (item: any, index: number) => ReactNode;
|
|
877
|
+
headerSlot?: ReactNode;
|
|
878
|
+
emptyState?: ReactNode;
|
|
879
|
+
className?: string;
|
|
880
|
+
}
|
|
881
|
+
declare function OrderList({ items, renderItem, headerSlot, emptyState, className, ...viewProps }: OrderListProps): react_jsx_runtime.JSX.Element;
|
|
882
|
+
|
|
883
|
+
interface OrderDetailLineItem {
|
|
884
|
+
name: string;
|
|
885
|
+
quantity: number;
|
|
886
|
+
total: string;
|
|
887
|
+
}
|
|
888
|
+
interface OrderDetailProps extends Omit<ViewProps, 'children'> {
|
|
889
|
+
orderNumber: string;
|
|
890
|
+
status: OrderStatus;
|
|
891
|
+
lineItems: OrderDetailLineItem[];
|
|
892
|
+
subtotal: string;
|
|
893
|
+
tax: string;
|
|
894
|
+
total: string;
|
|
895
|
+
customerSlot?: ReactNode;
|
|
896
|
+
paymentSlot?: ReactNode;
|
|
897
|
+
footerSlot?: ReactNode;
|
|
898
|
+
className?: string;
|
|
899
|
+
}
|
|
900
|
+
declare function OrderDetail({ orderNumber, status, lineItems, subtotal, tax, total, customerSlot, paymentSlot, footerSlot, className, ...viewProps }: OrderDetailProps): react_jsx_runtime.JSX.Element;
|
|
901
|
+
|
|
902
|
+
interface Denomination {
|
|
903
|
+
label: string;
|
|
904
|
+
value: number;
|
|
905
|
+
}
|
|
906
|
+
interface CashCountInputProps extends Omit<ViewProps, 'children'> {
|
|
907
|
+
denominations?: Denomination[];
|
|
908
|
+
defaultCounts?: Record<number, number>;
|
|
909
|
+
counts?: Record<number, number>;
|
|
910
|
+
onChangeCounts?: (counts: Record<number, number>) => void;
|
|
911
|
+
onChangeTotal?: (total: number) => void;
|
|
912
|
+
className?: string;
|
|
913
|
+
}
|
|
914
|
+
declare function CashCountInput({ denominations, defaultCounts, counts: controlledCounts, onChangeCounts, onChangeTotal, className, ...viewProps }: CashCountInputProps): react_jsx_runtime.JSX.Element;
|
|
915
|
+
|
|
916
|
+
interface TransactionSummary {
|
|
917
|
+
method: string;
|
|
918
|
+
count: number;
|
|
919
|
+
total: number;
|
|
920
|
+
}
|
|
921
|
+
interface RegisterSummaryProps extends Omit<ViewProps, 'children'> {
|
|
922
|
+
expectedCash: number;
|
|
923
|
+
actualCash: number;
|
|
924
|
+
transactions: TransactionSummary[];
|
|
925
|
+
headerSlot?: ReactNode;
|
|
926
|
+
footerSlot?: ReactNode;
|
|
927
|
+
className?: string;
|
|
928
|
+
}
|
|
929
|
+
declare function RegisterSummary({ expectedCash, actualCash, transactions, headerSlot, footerSlot, className, ...viewProps }: RegisterSummaryProps): react_jsx_runtime.JSX.Element;
|
|
930
|
+
|
|
931
|
+
interface RegisterOpenCloseProps extends Omit<ViewProps, 'children'> {
|
|
932
|
+
isOpen: boolean;
|
|
933
|
+
onOpen?: () => void;
|
|
934
|
+
onClose?: () => void;
|
|
935
|
+
expectedBalance?: number;
|
|
936
|
+
cashCountSlot?: ReactNode;
|
|
937
|
+
notesSlot?: ReactNode;
|
|
938
|
+
className?: string;
|
|
939
|
+
}
|
|
940
|
+
declare function RegisterOpenClose({ isOpen, onOpen, onClose, expectedBalance, cashCountSlot, notesSlot, className, ...viewProps }: RegisterOpenCloseProps): react_jsx_runtime.JSX.Element;
|
|
941
|
+
|
|
942
|
+
interface RegisterPickerRegister {
|
|
943
|
+
id: string;
|
|
944
|
+
name: string;
|
|
945
|
+
}
|
|
946
|
+
interface RegisterPickerProps {
|
|
947
|
+
/** The app's own list of registers for this store; there's no `useRegisterSession` yet to bind. */
|
|
948
|
+
registers: RegisterPickerRegister[];
|
|
949
|
+
onPick: (id: string) => void;
|
|
950
|
+
className?: string;
|
|
951
|
+
}
|
|
952
|
+
/**
|
|
953
|
+
* The register-choice screen: shown before a till is bound to any register. Port provenance
|
|
954
|
+
* (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-picker.tsx`.
|
|
955
|
+
*
|
|
956
|
+
* Neutral change: the app supplies `registers` and binds on `onPick` itself — TallyUI has no
|
|
957
|
+
* `useRegisterBinding` concept; binding is entirely the app's own (ADR-032 amendment 1).
|
|
958
|
+
*/
|
|
959
|
+
declare function RegisterPicker({ registers, onPick, className }: RegisterPickerProps): react_jsx_runtime.JSX.Element;
|
|
960
|
+
|
|
961
|
+
interface OpenRegisterCardProps {
|
|
962
|
+
/** `useRegisterSession`'s return value: opens the session through `register.actions.openSession`. */
|
|
963
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
964
|
+
/** ISO 4217 code, for parsing and formatting the typed amount. */
|
|
965
|
+
currency: string;
|
|
966
|
+
/** The store's configured opening float, minor units; preferred over the last counted cash. */
|
|
967
|
+
configuredFloatMinor?: number | null;
|
|
968
|
+
className?: string;
|
|
969
|
+
}
|
|
970
|
+
/**
|
|
971
|
+
* Opens a register session, prefilled with the configured float or the last counted cash.
|
|
972
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `open-register-card.tsx`
|
|
973
|
+
* (LEDGER 52).
|
|
974
|
+
*
|
|
975
|
+
* The chip choices are already resolved once `expectedFloatMinor` is computed: a late-arriving
|
|
976
|
+
* `configuredFloatMinor` or `register.lastClosure` never overwrites what the cashier already
|
|
977
|
+
* typed, because `enteredAmount` only ever starts from it, never re-derives from it.
|
|
978
|
+
*/
|
|
979
|
+
declare function OpenRegisterCard({ register, currency, configuredFloatMinor, className }: OpenRegisterCardProps): react_jsx_runtime.JSX.Element;
|
|
980
|
+
|
|
981
|
+
interface RegisterBarProps {
|
|
982
|
+
/** `useRegisterSession`'s return value: the session's status, `overdue`, `enabled` and so on. */
|
|
983
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
984
|
+
/** The register this till is bound to, or `null` when no register is chosen yet. */
|
|
985
|
+
registerId: string | null;
|
|
986
|
+
/** `false` when the store, or the app itself, can't be reached — reads to the cashier as offline. */
|
|
987
|
+
online: boolean;
|
|
988
|
+
/** Hidden when `multiRegister` is `false`: a single-register store doesn't need to name it. */
|
|
989
|
+
registerName?: string;
|
|
990
|
+
multiRegister: boolean;
|
|
991
|
+
onOpenPanel: () => void;
|
|
992
|
+
/** Turns the pill into a button (opens the gate/picker or the panel) when given; the plain badge otherwise. */
|
|
993
|
+
onPressPill?: () => void;
|
|
994
|
+
className?: string;
|
|
995
|
+
}
|
|
996
|
+
/**
|
|
997
|
+
* The till's one status bar: which register (multi-register stores only), one status pill
|
|
998
|
+
* (LEDGER 48), and the button that opens the register panel. Port provenance (ADR-032 amendment
|
|
999
|
+
* 1): WCPOS `next` `3b5331b5c` `register-bar.tsx`.
|
|
1000
|
+
*
|
|
1001
|
+
* Dropped for this neutral port: the user avatar and user sheet, switch-store, and the
|
|
1002
|
+
* WooCommerce OAuth-return rehosting — all app/backend concerns `useRegisterSession` never
|
|
1003
|
+
* carries. The drawer/menu button is gone too: TallyUI has no fixed navigation shell to open.
|
|
1004
|
+
*/
|
|
1005
|
+
declare function RegisterBar({ register, registerId, online, registerName, multiRegister, onOpenPanel, onPressPill, className, }: RegisterBarProps): react_jsx_runtime.JSX.Element;
|
|
1006
|
+
|
|
1007
|
+
/**
|
|
1008
|
+
* The register bar's status pill: one pill, one place. Port provenance (ADR-032 amendment 1):
|
|
1009
|
+
* WCPOS `next` `3b5331b5c` `register-bar.helpers.ts` (LEDGER 48).
|
|
1010
|
+
*
|
|
1011
|
+
* Neutral changes: WCPOS decides "choosing a register" from a WooCommerce binding status
|
|
1012
|
+
* (`bindingStatus: 'bound' | 'choose' | 'none' | 'unknown'`) and folds the store's display name
|
|
1013
|
+
* into `place`. TallyUI's binding is entirely the app's own (ADR-032 amendment 1's "Not ported"
|
|
1014
|
+
* note), so this takes the plain `registerId` the app already passes to `useRegisterSession`
|
|
1015
|
+
* (`null` means unbound) instead, and drops the store name — RegisterBar here shows only the
|
|
1016
|
+
* register name (`multiRegister` decides whether that's shown at all) and the status pill.
|
|
1017
|
+
* Copy is plain English (no i18n keys, ADR-064's neutral-copy rule).
|
|
1018
|
+
*/
|
|
1019
|
+
type RegisterBarPill = 'Choose a register' | 'Close not finished' | 'Offline' | 'Approval needed' | 'Counting' | 'Overdue' | 'Register closed';
|
|
1020
|
+
/**
|
|
1021
|
+
* Priority, matching WCPOS's ordering: choosing a register outranks everything (LEDGER 48);
|
|
1022
|
+
* then a closed session whose close isn't in flight (TallyUI: it blocks selling until Finish
|
|
1023
|
+
* closing); then an unreachable store reads as offline, ahead of any session state; approval needed
|
|
1024
|
+
* outranks plain counting; an open, overdue session outranks a session-less "closed" pill.
|
|
1025
|
+
*/
|
|
1026
|
+
declare function describeRegisterBarPill({ registerId, online, sessionStatus, overdue, approvalRequired, sessionsOn, closing, }: {
|
|
1027
|
+
/** The register this till is bound to, or `null` when it isn't bound yet. */
|
|
1028
|
+
registerId: string | null;
|
|
1029
|
+
online: boolean;
|
|
1030
|
+
sessionStatus?: 'open' | 'counting' | 'closed' | null;
|
|
1031
|
+
overdue?: boolean;
|
|
1032
|
+
approvalRequired?: boolean;
|
|
1033
|
+
/** The store uses register sessions at all (`useRegisterSession`'s `enabled`). */
|
|
1034
|
+
sessionsOn?: boolean;
|
|
1035
|
+
/** A close is in flight (`useRegisterSession`'s `closing`), so a closed session isn't unfinished. */
|
|
1036
|
+
closing?: boolean;
|
|
1037
|
+
}): RegisterBarPill | null;
|
|
1038
|
+
|
|
1039
|
+
interface MovementSheetProps {
|
|
1040
|
+
/** `useRegisterSession`'s return value: records the movement through `register.actions.recordMovement`. */
|
|
1041
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1042
|
+
/** The caller mounts this only once a type is chosen, so the sheet always has one to record. */
|
|
1043
|
+
type: MovementType;
|
|
1044
|
+
/** ISO 4217 code, for parsing the typed amount into minor units. */
|
|
1045
|
+
currency: string;
|
|
1046
|
+
onDone?: (id: string, type: MovementType, amountMinor: number) => void;
|
|
1047
|
+
onOpenChange: (open: boolean) => void;
|
|
1048
|
+
/** A no-sale opens the drawer once recorded (LEDGER 66); there is nothing to open otherwise. */
|
|
1049
|
+
onOpenDrawer?: () => void;
|
|
1050
|
+
}
|
|
1051
|
+
/**
|
|
1052
|
+
* Records a paid-in, paid-out or no-sale cash movement. Port provenance (ADR-032 amendment 1):
|
|
1053
|
+
* WCPOS `next` `3b5331b5c` `movement-sheet.tsx` (LEDGER 55, 56, 66).
|
|
1054
|
+
*
|
|
1055
|
+
* The cash moves the moment the cashier confirms, so validation happens before the tap, never
|
|
1056
|
+
* after: a refusal afterwards would mean cash already moved with no record of it. A no-sale
|
|
1057
|
+
* hides the amount field, always records zero, and opens the drawer once the row is written.
|
|
1058
|
+
*/
|
|
1059
|
+
declare function MovementSheet({ register, type, currency, onDone, onOpenChange, onOpenDrawer }: MovementSheetProps): react_jsx_runtime.JSX.Element;
|
|
1060
|
+
|
|
1061
|
+
interface RegisterPanelProps {
|
|
1062
|
+
/** `useRegisterSession`'s return value: movements, `expected`, `blind`, and every action used here. */
|
|
1063
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1064
|
+
/** ISO 4217 code, for money display and movement amounts. */
|
|
1065
|
+
currency: string;
|
|
1066
|
+
/** Shown as the panel's title while blind counting hides the expected amount. */
|
|
1067
|
+
registerName?: string;
|
|
1068
|
+
open: boolean;
|
|
1069
|
+
onOpenChange: (open: boolean) => void;
|
|
1070
|
+
className?: string;
|
|
1071
|
+
}
|
|
1072
|
+
/**
|
|
1073
|
+
* The register's drawer panel: expected figures, cash movements with Undo, and Close register.
|
|
1074
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-panel.tsx` (LEDGER
|
|
1075
|
+
* 54, 56, 58).
|
|
1076
|
+
*
|
|
1077
|
+
* Leaves out (registers job c2 or a later job, per `useRegisterSession`'s own "Not ported"
|
|
1078
|
+
* note): refused-movement Retry and "Unsynced" (no outbox here to refuse a movement), the
|
|
1079
|
+
* X-report, Z and print/reprint, and the Reports deep link.
|
|
1080
|
+
*/
|
|
1081
|
+
declare function RegisterPanel({ register, currency, registerName, open, onOpenChange, className }: RegisterPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
1082
|
+
|
|
1083
|
+
interface RegisterColumnProps {
|
|
1084
|
+
/** `useRegisterSession`'s return value: decides the picker/open/counting/selling swap. */
|
|
1085
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1086
|
+
/** The register this till is bound to, the same value passed into `useRegisterSession`; `null`
|
|
1087
|
+
* means unbound, since the hook's own return carries no such field (it's the app's input, not
|
|
1088
|
+
* its output). */
|
|
1089
|
+
registerId: string | null;
|
|
1090
|
+
registers: RegisterPickerRegister[];
|
|
1091
|
+
onPick: (id: string) => void;
|
|
1092
|
+
/** ISO 4217 code, forwarded to `OpenRegisterCard`. */
|
|
1093
|
+
currency: string;
|
|
1094
|
+
configuredFloatMinor?: number | null;
|
|
1095
|
+
/** Rendered instead of `children` while a session is counting (Job B fills this), and while its close is in flight
|
|
1096
|
+
* (`register.closing`). A closed session that isn't closing shows the Finish-closing card instead, whose button has
|
|
1097
|
+
* `nativeID="register-column-finish-close-button"`, so an app's `onPressPill` can focus it on the web. */
|
|
1098
|
+
countSlot?: ReactNode;
|
|
1099
|
+
/** Whether the cart has no lines; gates the overdue Close register offer (LEDGER 53). */
|
|
1100
|
+
cartEmpty?: boolean;
|
|
1101
|
+
/** The cart, shown once a register is bound, open, and not counting. */
|
|
1102
|
+
children: ReactNode;
|
|
1103
|
+
}
|
|
1104
|
+
/**
|
|
1105
|
+
* Swaps the cart column's content for register selection, opening or counting when the till
|
|
1106
|
+
* needs it, offering Close register when an open session runs overdue with nothing left to
|
|
1107
|
+
* sell. Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c`'s cart-column register
|
|
1108
|
+
* swap (LEDGER 53), composed here as one small component rather than inline cart-screen logic.
|
|
1109
|
+
*/
|
|
1110
|
+
declare function RegisterColumn({ register, registerId, registers, onPick, currency, configuredFloatMinor, countSlot, cartEmpty, children, }: RegisterColumnProps): react_jsx_runtime.JSX.Element;
|
|
1111
|
+
|
|
1112
|
+
/** The exact refusal shown when Close is over `varianceThreshold` and the host gives no `approve` (the Front desk, 2026-09-28). */
|
|
1113
|
+
declare const APPROVAL_REQUIRED_TEXT = "Manager approval needed. Ask a manager to approve, or count again.";
|
|
1114
|
+
interface RegisterCountProps {
|
|
1115
|
+
/** `useRegisterSession`'s return value: `expected`, `blind`, `varianceThreshold`, and `backToSelling`/`closeSession`. */
|
|
1116
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1117
|
+
/** ISO 4217 code: denomination faces, parsing and display. */
|
|
1118
|
+
currency: string;
|
|
1119
|
+
/**
|
|
1120
|
+
* Above `register.varianceThreshold`, Close asks for this first. `null` refuses and the count
|
|
1121
|
+
* stays; without it, Close refuses outright with `APPROVAL_REQUIRED_TEXT`. Its `approvedBy`
|
|
1122
|
+
* and `approvedByName` go to `closeSession`, which enforces the same gate and puts them on the Z.
|
|
1123
|
+
*/
|
|
1124
|
+
approve?: () => Promise<{
|
|
1125
|
+
approvedBy: string;
|
|
1126
|
+
approvedByName?: string;
|
|
1127
|
+
} | null>;
|
|
1128
|
+
className?: string;
|
|
1129
|
+
}
|
|
1130
|
+
/**
|
|
1131
|
+
* Counts the drawer at close: denomination tiles or a typed cash amount, other tenders kept as
|
|
1132
|
+
* typed, a live variance line, and Close (gated by `approve` over threshold) or Back to selling.
|
|
1133
|
+
* Port provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c` `register-count.tsx` (LEDGER
|
|
1134
|
+
* 59, 60, 65, 67). Leaves out WCPOS's ApproveSheet and server-demanded `approval_required`
|
|
1135
|
+
* (registers c2) — `approve` is the host's own gate, and it runs regardless of `blind`: dropping
|
|
1136
|
+
* the server flag would otherwise leave a blind count with no gate at all over threshold.
|
|
1137
|
+
*/
|
|
1138
|
+
declare function RegisterCount({ register, currency, approve, className }: RegisterCountProps): react_jsx_runtime.JSX.Element | null;
|
|
1139
|
+
|
|
1140
|
+
interface ClosureSheetProps {
|
|
1141
|
+
/** `useRegisterSession`'s return value: reads `lastClosure` and `blind`. */
|
|
1142
|
+
register: ReturnType<typeof useRegisterSession>;
|
|
1143
|
+
/** ISO 4217 code, for the figures. */
|
|
1144
|
+
currency: string;
|
|
1145
|
+
/** Renders no print button when absent — printing is a later job (registers c2). */
|
|
1146
|
+
onPrint?: () => void | Promise<void>;
|
|
1147
|
+
onDone: () => void;
|
|
1148
|
+
}
|
|
1149
|
+
/**
|
|
1150
|
+
* Confirms a closed session from `register.lastClosure`: the local closure number always, and
|
|
1151
|
+
* the counted figures and variance per tender unless `blind`. Port provenance (ADR-032
|
|
1152
|
+
* amendment 1): WCPOS `next` `3b5331b5c` `closure-sheet.tsx` (LEDGER 54, 62). Leaves out the
|
|
1153
|
+
* Z-report preview, print/reprint and the server-number adoption (registers c2) — `onPrint` is
|
|
1154
|
+
* an optional hook for a host that later wires up printing; without it, no button renders.
|
|
1155
|
+
* Unlike WCPOS (which still shows counted cash to a blind cashier), every figure here is hidden
|
|
1156
|
+
* while blind, per the register-screens-b design, since TallyUI's closure lists every tender.
|
|
1157
|
+
*/
|
|
1158
|
+
declare function ClosureSheet({ register, currency, onPrint, onDone }: ClosureSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1159
|
+
|
|
1160
|
+
interface SettingsRowProps extends Omit<ViewProps, 'children'> {
|
|
1161
|
+
label: string;
|
|
1162
|
+
description?: string;
|
|
1163
|
+
action?: ReactNode;
|
|
1164
|
+
className?: string;
|
|
1165
|
+
}
|
|
1166
|
+
declare function SettingsRow({ label, description, action, className, ...viewProps }: SettingsRowProps): react_jsx_runtime.JSX.Element;
|
|
1167
|
+
|
|
1168
|
+
interface SettingsGroupProps extends Omit<ViewProps, 'children'> {
|
|
1169
|
+
title: string;
|
|
1170
|
+
description?: string;
|
|
1171
|
+
children: ReactNode;
|
|
1172
|
+
className?: string;
|
|
1173
|
+
}
|
|
1174
|
+
declare function SettingsGroup({ title, description, children, className, ...viewProps }: SettingsGroupProps): react_jsx_runtime.JSX.Element;
|
|
1175
|
+
|
|
1176
|
+
type ConnectionStatus = 'connected' | 'disconnected' | 'syncing' | 'error';
|
|
1177
|
+
interface ConnectorStatusProps extends Omit<ViewProps, 'children'> {
|
|
1178
|
+
name: string;
|
|
1179
|
+
status: ConnectionStatus;
|
|
1180
|
+
lastSync?: string;
|
|
1181
|
+
error?: string;
|
|
1182
|
+
className?: string;
|
|
1183
|
+
/** Products the sales channel doesn't sell (the calculated-price runner's `unreported`). Hidden when undefined or 0. */
|
|
1184
|
+
unsoldCount?: number;
|
|
1185
|
+
/** True when that count is from an older pass than the last failure (`!isFingerprintResultCurrent(state)`). */
|
|
1186
|
+
unsoldStale?: boolean;
|
|
1187
|
+
/** The line's text; default: `${n} product(s) not sold in this channel`, plus ` (last check failed)` when stale. */
|
|
1188
|
+
formatUnsold?: (count: number, stale: boolean) => string;
|
|
1189
|
+
}
|
|
1190
|
+
declare function ConnectorStatus({ name, status, lastSync, error, className, unsoldCount, unsoldStale, formatUnsold, ...viewProps }: ConnectorStatusProps): react_jsx_runtime.JSX.Element;
|
|
1191
|
+
|
|
1192
|
+
/** `taxLabel` names each tax row; VAT isn't universal, so a platform passes its own (medusapos passes `VAT ${rate}%`). */
|
|
1193
|
+
declare function Cart({ sale, taxLabel }: {
|
|
1194
|
+
sale: ReturnType<typeof useSale>;
|
|
1195
|
+
taxLabel?: (ratePpm: number) => string;
|
|
1196
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1197
|
+
|
|
1198
|
+
/** Phone mode's cart summary (medusapos ADR 0009): the whole bar is one button; the total is the cart's own Total row. */
|
|
1199
|
+
declare function CartBar({ sale, onOpen }: {
|
|
1200
|
+
sale: ReturnType<typeof useSale>;
|
|
1201
|
+
onOpen: () => void;
|
|
1202
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1203
|
+
|
|
1204
|
+
declare function Tender({ sale }: {
|
|
1205
|
+
sale: ReturnType<typeof useSale>;
|
|
1206
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1207
|
+
|
|
1208
|
+
/** The cashier's entry as a TallyUI Discount (a percent, or integer minor units), or the inline error to show. */
|
|
1209
|
+
declare function parseDiscount(type: Discount['type'], text: string, currency: string): Discount | string;
|
|
1210
|
+
/** "10%", or a fixed discount's amount as it actually comes off (amountMinor), never the amount requested. */
|
|
1211
|
+
declare const discountLabel: (discount: AppliedDiscount, currency: string) => string;
|
|
1212
|
+
/** `onApply` returns a refusal to show inline (the capability gate), or null once applied. */
|
|
1213
|
+
declare function DiscountForm({ title, currency, onApply, onClose }: {
|
|
1214
|
+
title: string;
|
|
1215
|
+
currency: string;
|
|
1216
|
+
onApply: (discount: Discount) => string | null;
|
|
1217
|
+
onClose: () => void;
|
|
1218
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1219
|
+
/** Applied discounts as badges; pressing one removes it through TallyUI's builder. */
|
|
1220
|
+
/** `prefix` names a chip that would otherwise read like a fee, e.g. "Order discount −€0.50". */
|
|
1221
|
+
/** `amounts` are order.display's figures by discountId (TallyUI ADR-063): "10% −€0.40", or "−€0.40" for a fixed one. */
|
|
1222
|
+
declare function DiscountChips({ discounts, currency, onRemove, prefix, amounts }: {
|
|
1223
|
+
discounts: AppliedDiscount[];
|
|
1224
|
+
currency: string;
|
|
1225
|
+
onRemove: (id: string) => void;
|
|
1226
|
+
prefix?: string;
|
|
1227
|
+
amounts?: {
|
|
1228
|
+
discountId: string;
|
|
1229
|
+
amountMinor: number;
|
|
1230
|
+
}[];
|
|
1231
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1232
|
+
|
|
1233
|
+
declare function formatStockSyncTime(time: Date, locale?: string, hour12?: boolean, now?: Date): string;
|
|
1234
|
+
declare function Catalogue<Doc>({ products, traits, currency, onSelect, statusText, statusAccessory, lastSyncedAt, lastStockCheckAt, hour12, minCodeLength }: {
|
|
1235
|
+
products: Doc[];
|
|
1236
|
+
traits: ProductTraits<Doc>;
|
|
1237
|
+
currency: string;
|
|
1238
|
+
onSelect: (entry: CatalogueEntry<Doc>) => void;
|
|
1239
|
+
statusText?: string;
|
|
1240
|
+
/** Rendered at the end of the status line, e.g. a register control at phone width; the row renders even without `statusText`. */
|
|
1241
|
+
statusAccessory?: ReactNode;
|
|
1242
|
+
lastSyncedAt: Date | null;
|
|
1243
|
+
/** The last completed stock reconcile pass, persisted across restarts; the later of this and lastSyncedAt wins. */
|
|
1244
|
+
lastStockCheckAt?: Date | null;
|
|
1245
|
+
/** Whether to show a 12- or 24-hour clock in the stock-as-of time; undefined keeps the locale default. A platform
|
|
1246
|
+
* reads this off its own device APIs (e.g. expo-localization's getCalendars()) and passes it in. */
|
|
1247
|
+
hour12?: boolean;
|
|
1248
|
+
/** A till's scanner setting: below this length (after trimming), Enter leaves the typed text as a plain
|
|
1249
|
+
* search instead of doing a code lookup. A scanner's timing threshold is the app's own concern,
|
|
1250
|
+
* in its unfocused wedge listener — not this prop's job. */
|
|
1251
|
+
minCodeLength?: number;
|
|
1252
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1253
|
+
|
|
1254
|
+
/** `store`/`taxLabel`/`topInset`/`formatDate` replace the app's Medusa settings, hard-coded VAT (default matches
|
|
1255
|
+
* TV6a's `Cart`), outbox strip and date util, so `Receipt` stays platform-neutral (ADR-052). */
|
|
1256
|
+
declare function Receipt({ order, store, cashier, registerId, newSale, taxLabel, topInset, formatDate }: {
|
|
1257
|
+
order: Order;
|
|
1258
|
+
store: {
|
|
1259
|
+
name: string;
|
|
1260
|
+
address?: string;
|
|
1261
|
+
};
|
|
1262
|
+
cashier: string;
|
|
1263
|
+
registerId: string;
|
|
1264
|
+
newSale: () => void;
|
|
1265
|
+
taxLabel?: (ratePpm: number) => string;
|
|
1266
|
+
topInset?: number;
|
|
1267
|
+
formatDate?: (iso: string) => string;
|
|
1268
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1269
|
+
|
|
1270
|
+
declare function injectPrintStyle(): void;
|
|
1271
|
+
|
|
1272
|
+
declare function SyncStatus({ state }: {
|
|
1273
|
+
state: OutboxState;
|
|
1274
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1275
|
+
|
|
1276
|
+
/** The "Needs attention" (when not empty) and "Recent" orders, lifted from medusapos/app's orders screen (ADR-052).
|
|
1277
|
+
* `onRetry` is the outbox's `requeue`; `formatDate` replaces the app's date util; `footer` is the app's own content
|
|
1278
|
+
* (medusapos: the feedback link). The router and session redirect stay in the app. */
|
|
1279
|
+
declare function OrdersList({ orders, onRetry, formatDate, footer }: {
|
|
1280
|
+
orders: PosOrder[];
|
|
1281
|
+
onRetry(orderIds: string[]): Promise<number>;
|
|
1282
|
+
formatDate?: (iso: string) => string;
|
|
1283
|
+
footer?: ReactNode;
|
|
1284
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1285
|
+
|
|
1286
|
+
interface POSLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1287
|
+
browseSlot: ReactNode;
|
|
1288
|
+
cartSlot: ReactNode;
|
|
1289
|
+
headerSlot?: ReactNode;
|
|
1290
|
+
layout?: 'split' | 'stacked';
|
|
1291
|
+
breakpoint?: number;
|
|
1292
|
+
className?: string;
|
|
1293
|
+
}
|
|
1294
|
+
declare function POSLayout({ browseSlot, cartSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: POSLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1295
|
+
|
|
1296
|
+
interface CheckoutLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1297
|
+
summarySlot: ReactNode;
|
|
1298
|
+
paymentSlot: ReactNode;
|
|
1299
|
+
headerSlot?: ReactNode;
|
|
1300
|
+
layout?: 'split' | 'stacked';
|
|
1301
|
+
breakpoint?: number;
|
|
1302
|
+
className?: string;
|
|
1303
|
+
}
|
|
1304
|
+
declare function CheckoutLayout({ summarySlot, paymentSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: CheckoutLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1305
|
+
|
|
1306
|
+
interface SettingsLayoutProps extends Omit<ViewProps, 'children'> {
|
|
1307
|
+
navSlot: ReactNode;
|
|
1308
|
+
contentSlot: ReactNode;
|
|
1309
|
+
headerSlot?: ReactNode;
|
|
1310
|
+
layout?: 'split' | 'stacked';
|
|
1311
|
+
breakpoint?: number;
|
|
1312
|
+
className?: string;
|
|
1313
|
+
}
|
|
1314
|
+
declare function SettingsLayout({ navSlot, contentSlot, headerSlot, layout: layoutProp, breakpoint, className, ...viewProps }: SettingsLayoutProps): react_jsx_runtime.JSX.Element;
|
|
1315
|
+
|
|
1316
|
+
/** Mirrors `LiveTabState` from `@tallyui/database`, without depending on that package. */
|
|
1317
|
+
type LiveTabScreenState = 'acquiring' | 'live' | 'parked' | 'blocked';
|
|
1318
|
+
interface LiveTabScreenProps extends Omit<ViewProps, 'children'> {
|
|
1319
|
+
state: LiveTabScreenState;
|
|
1320
|
+
/** Called when the parked screen's "Use here" button is pressed. */
|
|
1321
|
+
onUseHere: () => void;
|
|
1322
|
+
/** Called when the blocked screen's "Reload" button is pressed. */
|
|
1323
|
+
onReload: () => void;
|
|
1324
|
+
/** Title for both the parked and the blocked screen. */
|
|
1325
|
+
parkedTitle?: string;
|
|
1326
|
+
parkedBody?: string;
|
|
1327
|
+
useHereLabel?: string;
|
|
1328
|
+
blockedBody?: string;
|
|
1329
|
+
reloadLabel?: string;
|
|
1330
|
+
className?: string;
|
|
1331
|
+
}
|
|
1332
|
+
/**
|
|
1333
|
+
* ADR-061: what a tab shows once it is no longer the live one. Renders
|
|
1334
|
+
* nothing for `acquiring` and `live`.
|
|
1335
|
+
*/
|
|
1336
|
+
declare function LiveTabScreen({ state, onUseHere, onReload, parkedTitle, parkedBody, useHereLabel, blockedBody, reloadLabel, className, ...viewProps }: LiveTabScreenProps): react_jsx_runtime.JSX.Element | null;
|
|
1337
|
+
|
|
1338
|
+
interface StoreSettingsChoiceScreenProps extends Omit<ViewProps, 'children'> {
|
|
1339
|
+
/** From `StoreSettingsError.choices`. Only the sections present are shown. */
|
|
1340
|
+
choices: StoreSettingsChoices;
|
|
1341
|
+
/** A previous choice to pre-select (for example, a stale stored one); fields that aren't in `choices` are ignored. */
|
|
1342
|
+
initial?: StoreSettingsChoice;
|
|
1343
|
+
/** Called with the full choice when the user confirms. The app persists it per store and retries `storeSettings`. */
|
|
1344
|
+
onSubmit: (choice: StoreSettingsChoice) => void;
|
|
1345
|
+
/** Display name for an ISO 3166-1 alpha-2 code. Default: `Intl.DisplayNames` in `locale`, falling back to the upper-cased code. */
|
|
1346
|
+
countryName?: (code: string) => string;
|
|
1347
|
+
locale?: string;
|
|
1348
|
+
title?: string;
|
|
1349
|
+
body?: string;
|
|
1350
|
+
regionLabel?: string;
|
|
1351
|
+
countryLabel?: string;
|
|
1352
|
+
channelLabel?: string;
|
|
1353
|
+
submitLabel?: string;
|
|
1354
|
+
className?: string;
|
|
1355
|
+
}
|
|
1356
|
+
/**
|
|
1357
|
+
* TV4: shown when `storeSettings` rejects with `choice_required`. The app
|
|
1358
|
+
* persists the returned choice per store and calls `storeSettings(context,
|
|
1359
|
+
* choice)` again; a stored choice that no longer resolves raises
|
|
1360
|
+
* `choice_required` again, and this screen pre-selects what still matches.
|
|
1361
|
+
*/
|
|
1362
|
+
declare function StoreSettingsChoiceScreen({ choices, initial, onSubmit, countryName, locale, title, body, regionLabel, countryLabel, channelLabel, submitLabel, className, ...viewProps }: StoreSettingsChoiceScreenProps): react_jsx_runtime.JSX.Element;
|
|
363
1363
|
|
|
364
|
-
export { CartLine, type
|
|
1364
|
+
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, 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 };
|