@zorgo/next 1.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.
Files changed (64) hide show
  1. package/README.md +19 -0
  2. package/dist/cli.d.mts +5 -0
  3. package/dist/cli.d.ts +5 -0
  4. package/dist/cli.js +2 -0
  5. package/dist/cli.mjs +2 -0
  6. package/dist/components.d.mts +337 -0
  7. package/dist/components.d.ts +337 -0
  8. package/dist/components.js +1996 -0
  9. package/dist/components.js.map +1 -0
  10. package/dist/components.mjs +1962 -0
  11. package/dist/components.mjs.map +1 -0
  12. package/dist/index.d.mts +305 -0
  13. package/dist/index.d.ts +305 -0
  14. package/dist/index.js +2 -0
  15. package/dist/index.mjs +2 -0
  16. package/dist/seo.d.mts +30 -0
  17. package/dist/seo.d.ts +30 -0
  18. package/dist/seo.js +82 -0
  19. package/dist/seo.js.map +1 -0
  20. package/dist/seo.mjs +56 -0
  21. package/dist/seo.mjs.map +1 -0
  22. package/dist/slugs.d.mts +1 -0
  23. package/dist/slugs.d.ts +1 -0
  24. package/dist/slugs.js +47 -0
  25. package/dist/slugs.js.map +1 -0
  26. package/dist/slugs.mjs +19 -0
  27. package/dist/slugs.mjs.map +1 -0
  28. package/dist/tree/.env.gen.ts +27 -0
  29. package/dist/tree/README.md +0 -0
  30. package/dist/tree/app/api/zorgo-token/route.ts +11 -0
  31. package/dist/tree/app/apple-icon.tsx.gen.ts +54 -0
  32. package/dist/tree/app/checkout/page.tsx +10 -0
  33. package/dist/tree/app/components/Footer.tsx +50 -0
  34. package/dist/tree/app/components/Header.tsx +128 -0
  35. package/dist/tree/app/components/ModalHost.tsx +56 -0
  36. package/dist/tree/app/components/ModalRegistry.tsx +113 -0
  37. package/dist/tree/app/components/TestCard.tsx +35 -0
  38. package/dist/tree/app/components/index.ts +3 -0
  39. package/dist/tree/app/error.tsx +10 -0
  40. package/dist/tree/app/global-error.tsx +12 -0
  41. package/dist/tree/app/globals.css.gen.ts +123 -0
  42. package/dist/tree/app/icon.tsx.gen.ts +87 -0
  43. package/dist/tree/app/layout.tsx.gen.ts +55 -0
  44. package/dist/tree/app/locations/page.tsx +30 -0
  45. package/dist/tree/app/manifest.ts.gen.ts +39 -0
  46. package/dist/tree/app/menu/[slug]/ItemCustomizationClient.tsx +18 -0
  47. package/dist/tree/app/menu/[slug]/page.tsx +78 -0
  48. package/dist/tree/app/menu/page.tsx +36 -0
  49. package/dist/tree/app/not-found.tsx +8 -0
  50. package/dist/tree/app/opengraph-image.tsx.gen.ts +82 -0
  51. package/dist/tree/app/page.tsx +19 -0
  52. package/dist/tree/app/privacy/page.tsx.gen.ts +15 -0
  53. package/dist/tree/app/robots.ts +9 -0
  54. package/dist/tree/app/sitemap.ts +26 -0
  55. package/dist/tree/app/terms/page.tsx.gen.ts +16 -0
  56. package/dist/tree/gitignore +44 -0
  57. package/dist/tree/lib/zorgoSiteToken.ts +20 -0
  58. package/dist/tree/next.config.ts +14 -0
  59. package/dist/tree/open-next.config.ts +4 -0
  60. package/dist/tree/package.json.gen.ts +24 -0
  61. package/dist/tree/postcss.config.mjs +7 -0
  62. package/dist/tree/scripts/prebuild.ts +448 -0
  63. package/dist/tree/tsconfig.json +35 -0
  64. package/package.json +72 -0
@@ -0,0 +1,305 @@
1
+ export * from '@zorgo/universal/hooks/hooks';
2
+ export * from '@zorgo/universal/components/Form';
3
+
4
+ type LocationStatus = "active" | "permanently_closed";
5
+ interface Location {
6
+ location_id: number;
7
+ franchise_id: number;
8
+ name: string;
9
+ address?: string;
10
+ force_close?: boolean;
11
+ status?: LocationStatus | null;
12
+ stripe_account_id?: string;
13
+ stripe_location_id?: string;
14
+ monday_open?: string;
15
+ monday_close?: string;
16
+ tuesday_open?: string;
17
+ tuesday_close?: string;
18
+ wednesday_open?: string;
19
+ wednesday_close?: string;
20
+ thursday_open?: string;
21
+ thursday_close?: string;
22
+ friday_open?: string;
23
+ friday_close?: string;
24
+ saturday_open?: string;
25
+ saturday_close?: string;
26
+ sunday_open?: string;
27
+ sunday_close?: string;
28
+ }
29
+ /** Single source for ordering channels (website, kiosk, POS). Values match DB strings. */
30
+ declare enum Platforms {
31
+ Website = "website",
32
+ Kiosk = "kiosk",
33
+ Pos = "pos",
34
+ KitchenDisplay = "kitchen_display"
35
+ }
36
+ interface Category {
37
+ category_id: number;
38
+ name: string;
39
+ is_catering?: boolean;
40
+ rules: Rule[];
41
+ active_promo_id?: number;
42
+ }
43
+ interface ItemVariant {
44
+ item_id: number;
45
+ name: string;
46
+ price: number;
47
+ components?: Component[];
48
+ base_item_id?: number;
49
+ rules?: Rule[];
50
+ display_price?: number;
51
+ active_promo_id?: number;
52
+ }
53
+ interface MenuItem {
54
+ base_item_id: number;
55
+ category_id: number;
56
+ franchise_id: number;
57
+ name: string;
58
+ per_person?: boolean | null;
59
+ image_path?: string | null;
60
+ variants: ItemVariant[];
61
+ rules: Rule[];
62
+ description?: string | null;
63
+ active_promo_id?: number;
64
+ is_catering?: boolean;
65
+ }
66
+ interface ScalingBehavior {
67
+ headcount_threshold: number;
68
+ starting_amount: number;
69
+ step_interval: number;
70
+ step_size: number;
71
+ maximum: number | null;
72
+ }
73
+ interface Component {
74
+ id: number;
75
+ servings_per_item?: number;
76
+ is_base?: boolean;
77
+ price_per_serving?: number;
78
+ franchise_id?: number;
79
+ component_type_id: number;
80
+ serving_weight?: number;
81
+ name: string;
82
+ item_id?: number;
83
+ prep_ahead?: boolean;
84
+ measurement_type?: "weight" | "count";
85
+ display_unit?: string;
86
+ behavior?: ScalingBehavior;
87
+ }
88
+ interface Rule {
89
+ rule_id?: number;
90
+ item_id?: number;
91
+ base_item_id?: number;
92
+ category_id?: number;
93
+ group_name: string;
94
+ min_selection: number;
95
+ max_selection?: number;
96
+ included_quantity: number;
97
+ items?: RuleItem[];
98
+ components?: RuleComponent[];
99
+ }
100
+ interface RuleItem {
101
+ item_id: number;
102
+ name: string;
103
+ quantity: number;
104
+ upcharge_price: number;
105
+ description?: string | null;
106
+ behavior?: ScalingBehavior;
107
+ }
108
+ interface RuleComponent {
109
+ component_id: number;
110
+ name: string;
111
+ quantity: number;
112
+ upcharge_price: number;
113
+ description?: string | null;
114
+ behavior?: ScalingBehavior;
115
+ serving_weight?: number;
116
+ }
117
+ interface CustomizationOption {
118
+ key: string;
119
+ id: number;
120
+ type: "item" | "component";
121
+ name: string;
122
+ description?: string | null;
123
+ upcharge: number;
124
+ selected: boolean;
125
+ disabled: boolean;
126
+ toggle: () => void;
127
+ }
128
+ interface CustomizationRule extends Rule {
129
+ rule_id: number;
130
+ max: number;
131
+ selectedCount: number;
132
+ satisfied: boolean;
133
+ message: () => string | null;
134
+ options: CustomizationOption[];
135
+ }
136
+ interface OrderItem {
137
+ item_id: number;
138
+ base_item_id: number;
139
+ name: string;
140
+ quantity: number;
141
+ price: number;
142
+ display_price?: number;
143
+ order_item_id?: number;
144
+ category_id: number;
145
+ category_name?: string;
146
+ is_catering?: boolean;
147
+ /** When true, each unit counts toward catering headcount minimums (menu `per_person`). */
148
+ per_person?: boolean | null;
149
+ components?: OrderComponent[];
150
+ selections?: RuleSelection[];
151
+ comments?: string;
152
+ status?: "removed" | "modified";
153
+ applied_promo_id?: number;
154
+ discount_amount?: number;
155
+ }
156
+ interface OrderComponent extends Component {
157
+ quantity_servings: number;
158
+ upcharge?: number;
159
+ rule_id?: number;
160
+ }
161
+ interface RuleSelection {
162
+ rule_id: number;
163
+ group_name?: string;
164
+ selections: Selection[];
165
+ }
166
+ interface Selection {
167
+ type: "item" | "component";
168
+ id: number;
169
+ quantity: number;
170
+ upcharge: number;
171
+ serving_price?: number;
172
+ name: string;
173
+ status?: "removed" | "modified" | "added";
174
+ component_type_id?: number;
175
+ serving_weight?: number;
176
+ measurement_type?: "weight" | "count";
177
+ display_unit?: string;
178
+ }
179
+ interface Customer {
180
+ customer_id?: number;
181
+ first_name: string;
182
+ last_name?: string;
183
+ phone: string;
184
+ email?: string;
185
+ allow_marketing?: boolean;
186
+ }
187
+ interface OrderMeta {
188
+ ready_at?: Date | string | null;
189
+ requested_minutes?: number | null;
190
+ is_scheduled?: boolean;
191
+ is_catering?: boolean;
192
+ is_third_party?: boolean;
193
+ source?: string;
194
+ tags?: string[];
195
+ name_override?: string;
196
+ }
197
+ interface Order {
198
+ order_id: number;
199
+ order_code?: string;
200
+ customer: Customer;
201
+ location_id: number;
202
+ location_name?: string;
203
+ franchise_id?: number;
204
+ method_id: number;
205
+ type_id: number;
206
+ time_placed: Date;
207
+ time_requested?: string;
208
+ items: OrderItem[];
209
+ order_status: number;
210
+ is_catering?: boolean;
211
+ promo_code?: string;
212
+ charges: Charge[];
213
+ subtotal?: number;
214
+ total?: number;
215
+ tax?: number;
216
+ service_fee?: number;
217
+ discount?: number;
218
+ tip?: number;
219
+ meta?: OrderMeta;
220
+ /** Single-line mailing-style address when order is delivery (e.g. "123 Main St, City, MI 48103"). */
221
+ delivery_address?: string;
222
+ revision?: number;
223
+ updated_at?: Date | string;
224
+ table_number?: number;
225
+ }
226
+ interface Charge {
227
+ id?: number;
228
+ order_id?: number;
229
+ total: number;
230
+ subtotal: number;
231
+ tax: number;
232
+ tip?: number;
233
+ discount?: number;
234
+ service_fee?: number;
235
+ charge_id?: string;
236
+ charge_status?: number;
237
+ created_at?: Date;
238
+ payment_method?: string;
239
+ refund_amount?: number;
240
+ refunded_at?: Date | string;
241
+ refund_id?: string;
242
+ drawer_session_id?: number;
243
+ setup_intent_id?: string;
244
+ stripe_payment_method_id?: string;
245
+ stripe_customer_id?: string;
246
+ }
247
+ interface Promotion {
248
+ id?: number;
249
+ created_at?: string;
250
+ /** Platforms where this promotion applies; omit, null, [], or all enum values => all platforms. Persist [] for “all”. */
251
+ platforms?: Platforms[] | null;
252
+ name: string;
253
+ description?: string;
254
+ discount_value: number;
255
+ promotion_type_id: number;
256
+ franchise_id?: number;
257
+ location_id: number | null;
258
+ customer_group_id?: number;
259
+ is_automatic: boolean;
260
+ promo_code: string | null;
261
+ start_date: Date | null;
262
+ end_date: Date | null;
263
+ schedule_details_json: PromotionScheduleDetails;
264
+ min_purchase_amount?: number | null;
265
+ min_purchase_quantity?: number | null;
266
+ discount_target_type: "category" | "item" | "item_variant" | null;
267
+ discount_target_ids?: number[];
268
+ is_active: boolean;
269
+ /** When true, only applies to catering orders. Uses sigmoid bulk discount when min_purchase_quantity is set. */
270
+ is_catering_only?: boolean | null;
271
+ }
272
+ interface PromotionScheduleDetails {
273
+ days?: number[];
274
+ interval: "weekly" | "monthly" | "daily";
275
+ start_time?: string;
276
+ end_time?: string;
277
+ }
278
+ type RecommendationStrategy = "top_items" | "discover";
279
+ interface RecommendationRequest {
280
+ userKey: string;
281
+ locationId: number;
282
+ topK?: number;
283
+ strategy?: RecommendationStrategy;
284
+ sampleSize?: number;
285
+ seed?: number;
286
+ }
287
+ interface RecommendationResult {
288
+ item: OrderItem;
289
+ base_item_id: number;
290
+ description?: string | null;
291
+ final_score?: number;
292
+ score?: number;
293
+ probability?: number;
294
+ ingredient_score?: number;
295
+ molecular_score?: number;
296
+ }
297
+
298
+ interface Menu {
299
+ items: MenuItem[];
300
+ categories: Category[];
301
+ components: Component[];
302
+ rules: Rule[];
303
+ }
304
+
305
+ export type { Category, Customer, CustomizationOption, CustomizationRule, ItemVariant, Location, Menu, MenuItem, Order, OrderComponent, OrderItem, Promotion, RecommendationRequest, RecommendationResult, RecommendationStrategy, Rule, RuleComponent, RuleItem, RuleSelection, Selection };