Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11)
FastAPI backend (Python 3.11, MSSQL ODBC for SambaPOS, Azure DI OCR),
kitchen_db on central PG. React/TS/Vite frontend with navy sidebar layout.
Backend: auth.py (APP_SLUG=kitchen, SimpleNamespace — archive routes use
.kitchen_id/.is_admin without modification), main.py (51 migrations, scheduler,
internal router for KDS bookings feed), api/internal.py, full archive API
(31 routers: invoices, recipes, menus, sambapos, resos, newbook, disputes,
purchase_orders, etc.), models, migrations, OCR pipeline.
kitchen_id pinned to 1 (B1 — single hotel).
Frontend: AuthGate (app=kitchen, token shim for archive compat — B5b pending),
Layout (navy sidebar, 6 sections, Lucide icons, teal --app-primary),
App.tsx (Outlet pattern, UploadApp outside Layout), index.css (full :root block).
strict: false — archive components have type issues; build clean.
Note: 45 archive components call fetch('/api/...') without /kitchen/ prefix
(B5b). Runtime 404s; deferred until after initial testing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
8d688b459d
10003 changed files with 1928395 additions and 0 deletions
44
frontend/node_modules/lucide-react/dist/esm/Icon.js
generated
vendored
Normal file
44
frontend/node_modules/lucide-react/dist/esm/Icon.js
generated
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/**
|
||||
* @license lucide-react v0.395.0 - ISC
|
||||
*
|
||||
* This source code is licensed under the ISC license.
|
||||
* See the LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import { forwardRef, createElement } from 'react';
|
||||
import defaultAttributes from './defaultAttributes.js';
|
||||
import { mergeClasses } from './shared/src/utils.js';
|
||||
|
||||
const Icon = forwardRef(
|
||||
({
|
||||
color = "currentColor",
|
||||
size = 24,
|
||||
strokeWidth = 2,
|
||||
absoluteStrokeWidth,
|
||||
className = "",
|
||||
children,
|
||||
iconNode,
|
||||
...rest
|
||||
}, ref) => {
|
||||
return createElement(
|
||||
"svg",
|
||||
{
|
||||
ref,
|
||||
...defaultAttributes,
|
||||
width: size,
|
||||
height: size,
|
||||
stroke: color,
|
||||
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
|
||||
className: mergeClasses("lucide", className),
|
||||
...rest
|
||||
},
|
||||
[
|
||||
...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
|
||||
...Array.isArray(children) ? children : [children]
|
||||
]
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
export { Icon as default };
|
||||
//# sourceMappingURL=Icon.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue