@burdenoff/microfe-coolandlovely 2026.614.1
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/README.md +12 -0
- package/dist/coolandlovely/CoolAndLovelyRoot.d.ts +5 -0
- package/dist/coolandlovely/CoolAndLovelyRoot.d.ts.map +1 -0
- package/dist/coolandlovely/CoolAndLovelyRoot.js +177 -0
- package/dist/coolandlovely/CoolAndLovelyRoot.js.map +1 -0
- package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts +4 -0
- package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts.map +1 -0
- package/dist/coolandlovely/CoolAndLovelyRoutes.js +215 -0
- package/dist/coolandlovely/CoolAndLovelyRoutes.js.map +1 -0
- package/dist/coolandlovely/components/CartCard.d.ts +18 -0
- package/dist/coolandlovely/components/CartCard.d.ts.map +1 -0
- package/dist/coolandlovely/components/EmptyState.d.ts +12 -0
- package/dist/coolandlovely/components/EmptyState.d.ts.map +1 -0
- package/dist/coolandlovely/components/EmptyState.js +28 -0
- package/dist/coolandlovely/components/EmptyState.js.map +1 -0
- package/dist/coolandlovely/components/InvestmentCard.d.ts +18 -0
- package/dist/coolandlovely/components/InvestmentCard.d.ts.map +1 -0
- package/dist/coolandlovely/components/InvestmentCard.js +96 -0
- package/dist/coolandlovely/components/InvestmentCard.js.map +1 -0
- package/dist/coolandlovely/components/MetricsCard.d.ts +14 -0
- package/dist/coolandlovely/components/MetricsCard.d.ts.map +1 -0
- package/dist/coolandlovely/components/MetricsCard.js +46 -0
- package/dist/coolandlovely/components/MetricsCard.js.map +1 -0
- package/dist/coolandlovely/components/OrderCard.d.ts +18 -0
- package/dist/coolandlovely/components/OrderCard.d.ts.map +1 -0
- package/dist/coolandlovely/components/PageLayout.d.ts +12 -0
- package/dist/coolandlovely/components/PageLayout.d.ts.map +1 -0
- package/dist/coolandlovely/components/PageLayout.js +26 -0
- package/dist/coolandlovely/components/PageLayout.js.map +1 -0
- package/dist/coolandlovely/components/RatingDisplay.d.ts +12 -0
- package/dist/coolandlovely/components/RatingDisplay.d.ts.map +1 -0
- package/dist/coolandlovely/components/RatingDisplay.js +35 -0
- package/dist/coolandlovely/components/RatingDisplay.js.map +1 -0
- package/dist/coolandlovely/components/StatusBadge.d.ts +9 -0
- package/dist/coolandlovely/components/StatusBadge.d.ts.map +1 -0
- package/dist/coolandlovely/components/StatusBadge.js +45 -0
- package/dist/coolandlovely/components/StatusBadge.js.map +1 -0
- package/dist/coolandlovely/components/index.d.ts +13 -0
- package/dist/coolandlovely/components/index.d.ts.map +1 -0
- package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts +16 -0
- package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts.map +1 -0
- package/dist/coolandlovely/context/CoolAndLovelyContext.js +93 -0
- package/dist/coolandlovely/context/CoolAndLovelyContext.js.map +1 -0
- package/dist/coolandlovely/context/index.d.ts +6 -0
- package/dist/coolandlovely/context/index.d.ts.map +1 -0
- package/dist/coolandlovely/context/index.js +1 -0
- package/dist/coolandlovely/hooks/index.d.ts +2 -0
- package/dist/coolandlovely/hooks/index.d.ts.map +1 -0
- package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts +44 -0
- package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts.map +1 -0
- package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js +223 -0
- package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js.map +1 -0
- package/dist/coolandlovely/index.d.ts +11 -0
- package/dist/coolandlovely/index.d.ts.map +1 -0
- package/dist/coolandlovely/index.js +7 -0
- package/dist/coolandlovely/mocks/data.d.ts +61 -0
- package/dist/coolandlovely/mocks/data.d.ts.map +1 -0
- package/dist/coolandlovely/mocks/data.js +1517 -0
- package/dist/coolandlovely/mocks/data.js.map +1 -0
- package/dist/coolandlovely/mocks/index.d.ts +7 -0
- package/dist/coolandlovely/mocks/index.d.ts.map +1 -0
- package/dist/coolandlovely/mocks/users.d.ts +18 -0
- package/dist/coolandlovely/mocks/users.d.ts.map +1 -0
- package/dist/coolandlovely/mocks/users.js +34 -0
- package/dist/coolandlovely/mocks/users.js.map +1 -0
- package/dist/coolandlovely/pages/HomePage.d.ts +10 -0
- package/dist/coolandlovely/pages/HomePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/HomePage.js +921 -0
- package/dist/coolandlovely/pages/HomePage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.d.ts +11 -0
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js +645 -0
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminDashboard.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/AdminDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminDashboard.js +639 -0
- package/dist/coolandlovely/pages/admin/AdminDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.d.ts +11 -0
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.js +421 -0
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.js +660 -0
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminProfilePage.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/AdminProfilePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminProfilePage.js +259 -0
- package/dist/coolandlovely/pages/admin/AdminProfilePage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.js +649 -0
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/CartManagementPage.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/CartManagementPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/CartManagementPage.js +869 -0
- package/dist/coolandlovely/pages/admin/CartManagementPage.js.map +1 -0
- package/dist/coolandlovely/pages/admin/UserManagementPage.d.ts +10 -0
- package/dist/coolandlovely/pages/admin/UserManagementPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/admin/UserManagementPage.js +893 -0
- package/dist/coolandlovely/pages/admin/UserManagementPage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.d.ts +12 -0
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js +834 -0
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.d.ts +11 -0
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js +700 -0
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.d.ts +11 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js +760 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.d.ts +12 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js +886 -0
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.d.ts +11 -0
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js +631 -0
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.d.ts +11 -0
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js +913 -0
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.d.ts +10 -0
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js +881 -0
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.d.ts +11 -0
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js +833 -0
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js.map +1 -0
- package/dist/coolandlovely/pages/common/HelpSupportPage.d.ts +11 -0
- package/dist/coolandlovely/pages/common/HelpSupportPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/common/HelpSupportPage.js +1325 -0
- package/dist/coolandlovely/pages/common/HelpSupportPage.js.map +1 -0
- package/dist/coolandlovely/pages/common/NotificationCenterPage.d.ts +11 -0
- package/dist/coolandlovely/pages/common/NotificationCenterPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/common/NotificationCenterPage.js +665 -0
- package/dist/coolandlovely/pages/common/NotificationCenterPage.js.map +1 -0
- package/dist/coolandlovely/pages/common/SettingsPage.d.ts +9 -0
- package/dist/coolandlovely/pages/common/SettingsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/common/SettingsPage.js +964 -0
- package/dist/coolandlovely/pages/common/SettingsPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.d.ts +12 -0
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.js +593 -0
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/CartDetailPage.d.ts +13 -0
- package/dist/coolandlovely/pages/customer/CartDetailPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/CartDetailPage.js +620 -0
- package/dist/coolandlovely/pages/customer/CartDetailPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.d.ts +11 -0
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js +547 -0
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/CheckoutPage.d.ts +9 -0
- package/dist/coolandlovely/pages/customer/CheckoutPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/CheckoutPage.js +532 -0
- package/dist/coolandlovely/pages/customer/CheckoutPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/CustomerDashboard.d.ts +10 -0
- package/dist/coolandlovely/pages/customer/CustomerDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/CustomerDashboard.js +496 -0
- package/dist/coolandlovely/pages/customer/CustomerDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.d.ts +10 -0
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.js +621 -0
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.d.ts +12 -0
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js +623 -0
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/FavoritesPage.d.ts +11 -0
- package/dist/coolandlovely/pages/customer/FavoritesPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/FavoritesPage.js +477 -0
- package/dist/coolandlovely/pages/customer/FavoritesPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.d.ts +9 -0
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.js +438 -0
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.d.ts +9 -0
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.js +388 -0
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.d.ts +11 -0
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js +488 -0
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/ReviewsPage.d.ts +11 -0
- package/dist/coolandlovely/pages/customer/ReviewsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/ReviewsPage.js +606 -0
- package/dist/coolandlovely/pages/customer/ReviewsPage.js.map +1 -0
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.d.ts +10 -0
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.js +443 -0
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.d.ts +10 -0
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js +849 -0
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.d.ts +10 -0
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js +939 -0
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.d.ts +11 -0
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js +681 -0
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorDashboard.d.ts +9 -0
- package/dist/coolandlovely/pages/investor/InvestorDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorDashboard.js +419 -0
- package/dist/coolandlovely/pages/investor/InvestorDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.d.ts +10 -0
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js +399 -0
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.d.ts +10 -0
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js +569 -0
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.d.ts +12 -0
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.js +1065 -0
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.js.map +1 -0
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.d.ts +22 -0
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.js +496 -0
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.js.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerDashboard.d.ts +18 -0
- package/dist/coolandlovely/pages/worker/WorkerDashboard.d.ts.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerDashboard.js +634 -0
- package/dist/coolandlovely/pages/worker/WorkerDashboard.js.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.d.ts +18 -0
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js +675 -0
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.d.ts +18 -0
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.js +687 -0
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.js.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.d.ts +17 -0
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.d.ts.map +1 -0
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js +578 -0
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js.map +1 -0
- package/dist/coolandlovely/store/coolandlovelyStore.d.ts +60 -0
- package/dist/coolandlovely/store/coolandlovelyStore.d.ts.map +1 -0
- package/dist/coolandlovely/store/coolandlovelyStore.js +38 -0
- package/dist/coolandlovely/store/coolandlovelyStore.js.map +1 -0
- package/dist/coolandlovely/store/index.d.ts +6 -0
- package/dist/coolandlovely/store/index.d.ts.map +1 -0
- package/dist/coolandlovely/store/index.js +1 -0
- package/dist/coolandlovely/types/index.d.ts +458 -0
- package/dist/coolandlovely/types/index.d.ts.map +1 -0
- package/dist/coolandlovely/utils/cn.d.ts +4 -0
- package/dist/coolandlovely/utils/cn.d.ts.map +1 -0
- package/dist/coolandlovely/utils/cn.js +10 -0
- package/dist/coolandlovely/utils/cn.js.map +1 -0
- package/dist/coolandlovely/utils/formatters.d.ts +78 -0
- package/dist/coolandlovely/utils/formatters.d.ts.map +1 -0
- package/dist/coolandlovely/utils/formatters.js +51 -0
- package/dist/coolandlovely/utils/formatters.js.map +1 -0
- package/dist/coolandlovely/utils/index.d.ts +8 -0
- package/dist/coolandlovely/utils/index.d.ts.map +1 -0
- package/dist/coolandlovely/utils/navigation.d.ts +20 -0
- package/dist/coolandlovely/utils/navigation.d.ts.map +1 -0
- package/dist/coolandlovely/utils/navigation.js +9 -0
- package/dist/coolandlovely/utils/navigation.js.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +23527 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +57851 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
- package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerSchedulePage.js","names":[],"sources":["../../../../src/coolandlovely/pages/worker/WorkerSchedulePage.tsx"],"sourcesContent":["/**\n * Worker Schedule Page\n *\n * Full-featured schedule page with:\n * - Loading state\n * - 3 tabs: My Schedule, Shift Requests, Availability\n * - Week navigation with Previous/Next buttons and date range display\n * - Shift cards with date, time, cart, location, status, earnings, rating, tasks\n * - Check In/Check Out buttons for scheduled/ongoing shifts\n * - Shift Requests tab: list with Accept/Reject for pending\n * - Availability tab: 7-day editor with checkboxes and time pickers + Save button\n * - Stats: Hours This Week, Shifts This Week, Week Earnings, Next Shift\n *\n * @module coolandlovely/pages/worker\n */\n\nimport { useState, useEffect, useMemo } from 'react';\nimport {\n Calendar,\n ShoppingCart,\n CheckCircle2,\n PlayCircle,\n ChevronLeft,\n ChevronRight,\n Loader2,\n MapPin,\n Star,\n LogIn,\n LogOut,\n CalendarDays,\n Send,\n Timer,\n Save,\n} from 'lucide-react';\nimport { PageLayout } from '../../components/PageLayout';\nimport { EmptyState } from '../../components/EmptyState';\nimport { useCoolAndLovely } from '../../context/CoolAndLovelyContext';\nimport { cn } from '../../utils/cn';\nimport { formatCurrency } from '../../utils/formatters';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype ScheduleTab = 'schedule' | 'requests' | 'availability';\n\ninterface Shift {\n id: string;\n date: string;\n startTime: string;\n endTime: string;\n cartId: string;\n cartName: string;\n location: string;\n status: 'scheduled' | 'ongoing' | 'completed' | 'cancelled';\n earnings: number;\n tasksCompleted?: number;\n rating?: number;\n}\n\ninterface ShiftRequest {\n id: string;\n date: string;\n startTime: string;\n endTime: string;\n cartName: string;\n location: string;\n status: 'pending' | 'approved' | 'rejected';\n requestedOn: string;\n}\n\ninterface DayAvailability {\n dayOfWeek: string;\n isAvailable: boolean;\n preferredStartTime: string;\n preferredEndTime: string;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction formatDate(dateString: string): string {\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' });\n}\n\nfunction formatTime(time: string): string {\n const [hours, minutes] = time.split(':');\n const hour = parseInt(hours);\n const ampm = hour >= 12 ? 'PM' : 'AM';\n const displayHour = hour % 12 || 12;\n return `${displayHour}:${minutes} ${ampm}`;\n}\n\nfunction getWeekDates(weekOffset: number) {\n const today = new Date();\n const currentDay = today.getDay();\n const weekStart = new Date(today);\n weekStart.setDate(today.getDate() - currentDay + weekOffset * 7);\n const weekEnd = new Date(weekStart);\n weekEnd.setDate(weekStart.getDate() + 6);\n return {\n start: weekStart.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),\n end: weekEnd.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }),\n };\n}\n\nfunction getShiftStatusStyle(status: Shift['status']) {\n switch (status) {\n case 'scheduled':\n return 'bg-blue-500/20 text-blue-600 dark:text-blue-400';\n case 'ongoing':\n return 'bg-green-500/20 text-green-600 dark:text-green-400';\n case 'completed':\n return 'bg-secondary text-secondary-foreground';\n case 'cancelled':\n return 'bg-red-500/20 text-red-600 dark:text-red-400';\n default:\n return 'bg-secondary text-secondary-foreground';\n }\n}\n\nfunction getRequestStatusStyle(status: ShiftRequest['status']) {\n switch (status) {\n case 'pending':\n return 'bg-yellow-500/20 text-yellow-600 dark:text-yellow-400';\n case 'approved':\n return 'bg-green-500/20 text-green-600 dark:text-green-400';\n case 'rejected':\n return 'bg-red-500/20 text-red-600 dark:text-red-400';\n default:\n return 'bg-secondary text-secondary-foreground';\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const WorkerSchedulePage = () => {\n const { navigateTo } = useCoolAndLovely();\n const [loading, setLoading] = useState(true);\n const [activeTab, setActiveTab] = useState<ScheduleTab>('schedule');\n const [selectedWeek, setSelectedWeek] = useState(0);\n const [shifts, setShifts] = useState<Shift[]>([]);\n const [shiftRequests, setShiftRequests] = useState<ShiftRequest[]>([]);\n const [availability, setAvailability] = useState<DayAvailability[]>([]);\n\n useEffect(() => {\n setLoading(true);\n const timer = setTimeout(() => {\n setShifts([\n {\n id: 'shift-001',\n date: new Date().toISOString().split('T')[0],\n startTime: '09:00',\n endTime: '14:00',\n cartId: 'cart-001',\n cartName: 'South Indian Express',\n location: 'MG Road, Bangalore',\n status: 'ongoing',\n earnings: 1200,\n tasksCompleted: 8,\n },\n {\n id: 'shift-002',\n date: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '14:00',\n endTime: '20:00',\n cartId: 'cart-002',\n cartName: 'Chaat Corner',\n location: 'Brigade Road, Bangalore',\n status: 'scheduled',\n earnings: 1500,\n },\n {\n id: 'shift-003',\n date: new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '10:00',\n endTime: '16:00',\n cartId: 'cart-001',\n cartName: 'South Indian Express',\n location: 'MG Road, Bangalore',\n status: 'completed',\n earnings: 1350,\n tasksCompleted: 12,\n rating: 4.8,\n },\n {\n id: 'shift-004',\n date: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '08:00',\n endTime: '14:00',\n cartId: 'cart-003',\n cartName: 'Biryani Pot',\n location: 'Frazer Town, Bangalore',\n status: 'scheduled',\n earnings: 0,\n },\n ]);\n\n setShiftRequests([\n {\n id: 'req-001',\n date: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '08:00',\n endTime: '14:00',\n cartName: 'Burger Bliss',\n location: 'Koramangala, Bangalore',\n status: 'pending',\n requestedOn: new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString(),\n },\n {\n id: 'req-002',\n date: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '16:00',\n endTime: '22:00',\n cartName: 'Pizza Paradise',\n location: 'Indiranagar, Bangalore',\n status: 'approved',\n requestedOn: new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),\n },\n {\n id: 'req-003',\n date: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n startTime: '10:00',\n endTime: '16:00',\n cartName: 'Dosa Express',\n location: 'BTM Layout, Bangalore',\n status: 'rejected',\n requestedOn: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(),\n },\n ]);\n\n setAvailability([\n {\n dayOfWeek: 'Monday',\n isAvailable: true,\n preferredStartTime: '09:00',\n preferredEndTime: '18:00',\n },\n {\n dayOfWeek: 'Tuesday',\n isAvailable: true,\n preferredStartTime: '09:00',\n preferredEndTime: '18:00',\n },\n {\n dayOfWeek: 'Wednesday',\n isAvailable: true,\n preferredStartTime: '09:00',\n preferredEndTime: '18:00',\n },\n {\n dayOfWeek: 'Thursday',\n isAvailable: true,\n preferredStartTime: '09:00',\n preferredEndTime: '18:00',\n },\n {\n dayOfWeek: 'Friday',\n isAvailable: true,\n preferredStartTime: '09:00',\n preferredEndTime: '20:00',\n },\n {\n dayOfWeek: 'Saturday',\n isAvailable: true,\n preferredStartTime: '10:00',\n preferredEndTime: '20:00',\n },\n {\n dayOfWeek: 'Sunday',\n isAvailable: false,\n preferredStartTime: '09:00',\n preferredEndTime: '18:00',\n },\n ]);\n\n setLoading(false);\n }, 600);\n return () => clearTimeout(timer);\n }, [selectedWeek]);\n\n // Stats\n const weekStats = useMemo(() => {\n const active = shifts.filter((s) => s.status !== 'cancelled');\n const totalHours = active.reduce((sum, s) => {\n const start = new Date(`2024-01-01T${s.startTime}`);\n const end = new Date(`2024-01-01T${s.endTime}`);\n return sum + (end.getTime() - start.getTime()) / (1000 * 60 * 60);\n }, 0);\n const earnings = active.reduce((sum, s) => sum + s.earnings, 0);\n const nextShift = shifts.find((s) => s.status === 'scheduled');\n return {\n hoursThisWeek: totalHours,\n shiftsThisWeek: active.length,\n earningsThisWeek: earnings,\n nextShift,\n };\n }, [shifts]);\n\n const pendingRequestCount = shiftRequests.filter((r) => r.status === 'pending').length;\n const weekDates = getWeekDates(selectedWeek);\n\n const handleCheckIn = (shiftId: string) => {\n setShifts((prev) =>\n prev.map((s) => (s.id === shiftId ? { ...s, status: 'ongoing' as const } : s))\n );\n alert('Checked in successfully');\n };\n\n const handleCheckOut = (shiftId: string) => {\n setShifts((prev) =>\n prev.map((s) => (s.id === shiftId ? { ...s, status: 'completed' as const } : s))\n );\n alert('Checked out successfully');\n };\n\n const handleAcceptShift = (requestId: string) => {\n setShiftRequests((prev) =>\n prev.map((r) => (r.id === requestId ? { ...r, status: 'approved' as const } : r))\n );\n alert('Shift accepted');\n };\n\n const handleRejectShift = (requestId: string) => {\n setShiftRequests((prev) =>\n prev.map((r) => (r.id === requestId ? { ...r, status: 'rejected' as const } : r))\n );\n alert('Shift rejected');\n };\n\n const updateAvailability = (\n dayOfWeek: string,\n field: keyof DayAvailability,\n value: string | boolean\n ) => {\n setAvailability((prev) =>\n prev.map((d) => (d.dayOfWeek === dayOfWeek ? { ...d, [field]: value } : d))\n );\n };\n\n const handleSaveAvailability = () => {\n alert('Availability updated successfully');\n };\n\n if (loading) {\n return (\n <PageLayout title=\"Schedule\" description=\"Manage your work schedule\">\n <div className=\"flex items-center justify-center py-24\">\n <div className=\"text-center\">\n <Loader2 className=\"h-10 w-10 animate-spin text-muted-foreground mx-auto mb-4\" />\n <p className=\"text-sm text-muted-foreground\">Loading schedule...</p>\n </div>\n </div>\n </PageLayout>\n );\n }\n\n return (\n <PageLayout title=\"Schedule\" description=\"Manage your work schedule\">\n <div className=\"space-y-6\">\n {/* Stats Overview */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-3\">\n <div className=\"rounded-lg border border-border bg-card p-4 shadow-sm\">\n <p className=\"text-xs text-muted-foreground\">Hours This Week</p>\n <p className=\"text-2xl font-bold text-foreground\">{weekStats.hoursThisWeek}h</p>\n </div>\n <div className=\"rounded-lg border border-border bg-card p-4 shadow-sm\">\n <p className=\"text-xs text-muted-foreground\">Shifts This Week</p>\n <p className=\"text-2xl font-bold text-foreground\">{weekStats.shiftsThisWeek}</p>\n </div>\n <div className=\"rounded-lg border border-border bg-card p-4 shadow-sm\">\n <p className=\"text-xs text-muted-foreground\">Week Earnings</p>\n <p className=\"text-2xl font-bold text-foreground\">\n {formatCurrency(weekStats.earningsThisWeek, { minimumFractionDigits: 0 })}\n </p>\n </div>\n <div className=\"rounded-lg border border-border bg-card p-4 shadow-sm\">\n <p className=\"text-xs text-muted-foreground\">Next Shift</p>\n <p className=\"text-sm font-bold text-foreground\">\n {weekStats.nextShift\n ? `${formatDate(weekStats.nextShift.date)} ${formatTime(weekStats.nextShift.startTime)}`\n : 'None scheduled'}\n </p>\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"rounded-lg border border-border bg-card shadow-sm overflow-hidden\">\n <div className=\"flex border-b border-border\">\n <button\n type=\"button\"\n onClick={() => setActiveTab('schedule')}\n className={cn(\n 'flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2',\n activeTab === 'schedule'\n ? 'border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 bg-blue-500/5'\n : 'text-muted-foreground hover:text-foreground'\n )}\n >\n <CalendarDays className=\"h-4 w-4\" />\n My Schedule\n </button>\n <button\n type=\"button\"\n onClick={() => setActiveTab('requests')}\n className={cn(\n 'flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2',\n activeTab === 'requests'\n ? 'border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 bg-blue-500/5'\n : 'text-muted-foreground hover:text-foreground'\n )}\n >\n <Send className=\"h-4 w-4\" />\n Shift Requests\n {pendingRequestCount > 0 && (\n <span className=\"ml-1 inline-flex items-center justify-center rounded-full bg-red-500 px-1.5 py-0.5 text-[10px] font-medium text-white\">\n {pendingRequestCount}\n </span>\n )}\n </button>\n <button\n type=\"button\"\n onClick={() => setActiveTab('availability')}\n className={cn(\n 'flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2',\n activeTab === 'availability'\n ? 'border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 bg-blue-500/5'\n : 'text-muted-foreground hover:text-foreground'\n )}\n >\n <Timer className=\"h-4 w-4\" />\n Availability\n </button>\n </div>\n\n <div className=\"p-5\">\n {/* ============= Schedule Tab ============= */}\n {activeTab === 'schedule' && (\n <div>\n {/* Week Navigation */}\n <div className=\"flex items-center justify-between mb-5\">\n <button\n type=\"button\"\n onClick={() => setSelectedWeek((w) => w - 1)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-foreground hover:bg-accent/80 transition-colors\"\n >\n <ChevronLeft className=\"h-3.5 w-3.5\" />\n Previous Week\n </button>\n <h3 className=\"text-sm font-medium text-foreground\">\n {weekDates.start} - {weekDates.end}\n </h3>\n <button\n type=\"button\"\n onClick={() => setSelectedWeek((w) => w + 1)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-foreground hover:bg-accent/80 transition-colors\"\n >\n Next Week\n <ChevronRight className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n\n {/* Shifts */}\n {shifts.length === 0 ? (\n <EmptyState\n icon={<Calendar className=\"h-12 w-12\" />}\n title=\"No shifts scheduled\"\n description=\"No shifts scheduled for this week\"\n />\n ) : (\n <div className=\"space-y-3\">\n {shifts.map((shift) => (\n <div\n key={shift.id}\n className={cn(\n 'rounded-lg border p-4 transition-colors',\n shift.status === 'ongoing'\n ? 'border-green-500/30 bg-green-500/5'\n : 'border-border hover:bg-muted/30'\n )}\n >\n <div className=\"flex items-center justify-between mb-3\">\n <div>\n <div className=\"flex items-center gap-2 flex-wrap\">\n <h4 className=\"text-sm font-semibold text-foreground\">\n {formatDate(shift.date)}\n </h4>\n <span\n className={cn(\n 'inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize',\n getShiftStatusStyle(shift.status)\n )}\n >\n {shift.status === 'ongoing' ? 'Ongoing' : shift.status}\n </span>\n </div>\n <p className=\"text-xs text-muted-foreground mt-1\">\n {formatTime(shift.startTime)} - {formatTime(shift.endTime)}\n </p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-lg font-bold text-foreground\">\n {formatCurrency(shift.earnings, { minimumFractionDigits: 0 })}\n </p>\n {shift.rating != null && (\n <p className=\"text-xs text-muted-foreground flex items-center gap-1 justify-end\">\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n {shift.rating}\n </p>\n )}\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-3 text-sm\">\n <div>\n <p className=\"text-xs text-muted-foreground\">Cart</p>\n <p className=\"text-xs font-medium text-foreground flex items-center gap-1\">\n <ShoppingCart className=\"h-3 w-3 text-muted-foreground\" />\n {shift.cartName}\n </p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Location</p>\n <p className=\"text-xs font-medium text-foreground flex items-center gap-1\">\n <MapPin className=\"h-3 w-3 text-muted-foreground\" />\n {shift.location}\n </p>\n </div>\n {shift.tasksCompleted != null && (\n <div>\n <p className=\"text-xs text-muted-foreground\">Tasks Completed</p>\n <p className=\"text-xs font-medium text-foreground flex items-center gap-1\">\n <CheckCircle2 className=\"h-3 w-3 text-muted-foreground\" />\n {shift.tasksCompleted}\n </p>\n </div>\n )}\n </div>\n\n {shift.status === 'scheduled' && (\n <div className=\"mt-3 pt-3 border-t border-border\">\n <button\n type=\"button\"\n onClick={() => handleCheckIn(shift.id)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-blue-500/10 px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-500/20 transition-colors\"\n >\n <LogIn className=\"h-3.5 w-3.5\" />\n Check In\n </button>\n </div>\n )}\n\n {shift.status === 'ongoing' && (\n <div className=\"mt-3 pt-3 border-t border-green-500/20 flex items-center justify-between\">\n <span className=\"text-xs font-medium text-green-600 dark:text-green-400 flex items-center gap-1\">\n <PlayCircle className=\"h-3.5 w-3.5\" />\n Shift in progress\n </span>\n <button\n type=\"button\"\n onClick={() => handleCheckOut(shift.id)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-foreground hover:bg-accent/80 transition-colors\"\n >\n <LogOut className=\"h-3.5 w-3.5\" />\n Check Out\n </button>\n </div>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* ============= Shift Requests Tab ============= */}\n {activeTab === 'requests' && (\n <div>\n {shiftRequests.length === 0 ? (\n <EmptyState\n icon={<Send className=\"h-12 w-12\" />}\n title=\"No shift requests\"\n description=\"No shift requests available\"\n />\n ) : (\n <div className=\"space-y-3\">\n {shiftRequests.map((request) => (\n <div key={request.id} className=\"rounded-lg border border-border p-4\">\n <div className=\"flex items-center justify-between mb-3\">\n <div>\n <h4 className=\"text-sm font-semibold text-foreground\">\n {formatDate(request.date)}\n </h4>\n <p className=\"text-xs text-muted-foreground mt-0.5\">\n {formatTime(request.startTime)} - {formatTime(request.endTime)}\n </p>\n </div>\n <span\n className={cn(\n 'inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize',\n getRequestStatusStyle(request.status)\n )}\n >\n {request.status}\n </span>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm mb-3\">\n <div>\n <p className=\"text-xs text-muted-foreground\">Cart</p>\n <p className=\"text-xs font-medium text-foreground\">\n {request.cartName}\n </p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Location</p>\n <p className=\"text-xs font-medium text-foreground\">\n {request.location}\n </p>\n </div>\n </div>\n\n <p className=\"text-[10px] text-muted-foreground mb-3\">\n Requested{' '}\n {new Date(request.requestedOn).toLocaleString('en-IN', {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true,\n })}\n </p>\n\n {request.status === 'pending' && (\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n onClick={() => handleAcceptShift(request.id)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-green-500/10 px-3 py-1.5 text-xs font-medium text-green-600 dark:text-green-400 hover:bg-green-500/20 transition-colors\"\n >\n <CheckCircle2 className=\"h-3.5 w-3.5\" />\n Accept\n </button>\n <button\n type=\"button\"\n onClick={() => handleRejectShift(request.id)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-red-500/10 px-3 py-1.5 text-xs font-medium text-red-600 dark:text-red-400 hover:bg-red-500/20 transition-colors\"\n >\n Reject\n </button>\n </div>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* ============= Availability Tab ============= */}\n {activeTab === 'availability' && (\n <div>\n <p className=\"text-xs text-muted-foreground mb-5\">\n Set your preferred working hours for each day of the week\n </p>\n\n <div className=\"space-y-3\">\n {availability.map((day) => (\n <div\n key={day.dayOfWeek}\n className={cn(\n 'flex flex-col sm:flex-row sm:items-center gap-3 p-3 rounded-lg border',\n day.isAvailable ? 'border-border bg-card' : 'border-border/50 bg-muted/30'\n )}\n >\n <div className=\"w-32 shrink-0\">\n <label className=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={day.isAvailable}\n onChange={(e) =>\n updateAvailability(day.dayOfWeek, 'isAvailable', e.target.checked)\n }\n className=\"h-4 w-4 rounded border-border text-blue-600 focus:ring-blue-500/40\"\n />\n <span className=\"text-sm font-medium text-foreground\">\n {day.dayOfWeek}\n </span>\n </label>\n </div>\n\n {day.isAvailable ? (\n <div className=\"flex flex-col sm:flex-row gap-3 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-xs text-muted-foreground w-10\">From</span>\n <input\n type=\"time\"\n value={day.preferredStartTime}\n onChange={(e) =>\n updateAvailability(\n day.dayOfWeek,\n 'preferredStartTime',\n e.target.value\n )\n }\n className=\"rounded-md border border-border bg-background px-3 py-1.5 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500/40\"\n />\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-xs text-muted-foreground w-10\">To</span>\n <input\n type=\"time\"\n value={day.preferredEndTime}\n onChange={(e) =>\n updateAvailability(\n day.dayOfWeek,\n 'preferredEndTime',\n e.target.value\n )\n }\n className=\"rounded-md border border-border bg-background px-3 py-1.5 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500/40\"\n />\n </div>\n </div>\n ) : (\n <span className=\"text-xs text-muted-foreground\">Not available</span>\n )}\n </div>\n ))}\n </div>\n\n <div className=\"mt-5\">\n <button\n type=\"button\"\n onClick={handleSaveAvailability}\n className=\"inline-flex items-center gap-2 rounded-md bg-blue-500/10 px-4 py-2 text-sm font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-500/20 transition-colors\"\n >\n <Save className=\"h-4 w-4\" />\n Save Availability\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ViewMode } from '../types';
|
|
2
|
+
|
|
3
|
+
interface CoolAndLovelyState {
|
|
4
|
+
viewMode: ViewMode;
|
|
5
|
+
activeSection: string;
|
|
6
|
+
sidebarCollapsed: boolean;
|
|
7
|
+
searchQuery: string;
|
|
8
|
+
categoryFilter: string;
|
|
9
|
+
selectedCartId: string | null;
|
|
10
|
+
selectedOrderId: string | null;
|
|
11
|
+
setViewMode: (mode: ViewMode) => void;
|
|
12
|
+
setActiveSection: (section: string) => void;
|
|
13
|
+
setSearchQuery: (query: string) => void;
|
|
14
|
+
setCategoryFilter: (category: string) => void;
|
|
15
|
+
setSelectedCartId: (cartId: string | null) => void;
|
|
16
|
+
setSelectedOrderId: (orderId: string | null) => void;
|
|
17
|
+
toggleSidebar: () => void;
|
|
18
|
+
reset: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const useCoolAndLovelyStore: import('zustand').UseBoundStore<Omit<Omit<import('zustand').StoreApi<CoolAndLovelyState>, "setState" | "devtools"> & {
|
|
21
|
+
setState(partial: CoolAndLovelyState | Partial<CoolAndLovelyState> | ((state: CoolAndLovelyState) => CoolAndLovelyState | Partial<CoolAndLovelyState>), replace?: false | undefined, action?: (string | {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
[x: number]: unknown;
|
|
24
|
+
[x: symbol]: unknown;
|
|
25
|
+
type: string;
|
|
26
|
+
}) | undefined): void;
|
|
27
|
+
setState(state: CoolAndLovelyState | ((state: CoolAndLovelyState) => CoolAndLovelyState), replace: true, action?: (string | {
|
|
28
|
+
[x: string]: unknown;
|
|
29
|
+
[x: number]: unknown;
|
|
30
|
+
[x: symbol]: unknown;
|
|
31
|
+
type: string;
|
|
32
|
+
}) | undefined): void;
|
|
33
|
+
devtools: {
|
|
34
|
+
cleanup: () => void;
|
|
35
|
+
};
|
|
36
|
+
}, "setState" | "persist"> & {
|
|
37
|
+
setState(partial: CoolAndLovelyState | Partial<CoolAndLovelyState> | ((state: CoolAndLovelyState) => CoolAndLovelyState | Partial<CoolAndLovelyState>), replace?: false | undefined, action?: (string | {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
[x: number]: unknown;
|
|
40
|
+
[x: symbol]: unknown;
|
|
41
|
+
type: string;
|
|
42
|
+
}) | undefined): unknown;
|
|
43
|
+
setState(state: CoolAndLovelyState | ((state: CoolAndLovelyState) => CoolAndLovelyState), replace: true, action?: (string | {
|
|
44
|
+
[x: string]: unknown;
|
|
45
|
+
[x: number]: unknown;
|
|
46
|
+
[x: symbol]: unknown;
|
|
47
|
+
type: string;
|
|
48
|
+
}) | undefined): unknown;
|
|
49
|
+
persist: {
|
|
50
|
+
setOptions: (options: Partial<import('zustand/middleware').PersistOptions<CoolAndLovelyState, unknown, unknown>>) => void;
|
|
51
|
+
clearStorage: () => void;
|
|
52
|
+
rehydrate: () => Promise<void> | void;
|
|
53
|
+
hasHydrated: () => boolean;
|
|
54
|
+
onHydrate: (fn: (state: CoolAndLovelyState) => void) => () => void;
|
|
55
|
+
onFinishHydration: (fn: (state: CoolAndLovelyState) => void) => () => void;
|
|
56
|
+
getOptions: () => Partial<import('zustand/middleware').PersistOptions<CoolAndLovelyState, unknown, unknown>>;
|
|
57
|
+
};
|
|
58
|
+
}>;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=coolandlovelyStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coolandlovelyStore.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/store/coolandlovelyStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMzC,UAAU,kBAAkB;IAE1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAG1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAGvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAsBD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { create as e } from "zustand";
|
|
2
|
+
import { devtools as t, persist as n } from "zustand/middleware";
|
|
3
|
+
import { createProfileScopedStorage as r } from "@burdenoff/fe-libs/shared/utils";
|
|
4
|
+
//#region src/coolandlovely/store/coolandlovelyStore.ts
|
|
5
|
+
var i = {
|
|
6
|
+
viewMode: "grid",
|
|
7
|
+
activeSection: "dashboard",
|
|
8
|
+
sidebarCollapsed: !1,
|
|
9
|
+
searchQuery: "",
|
|
10
|
+
categoryFilter: "",
|
|
11
|
+
selectedCartId: null,
|
|
12
|
+
selectedOrderId: null
|
|
13
|
+
}, a = e()(t(n((e) => ({
|
|
14
|
+
...i,
|
|
15
|
+
setViewMode: (t) => e({ viewMode: t }),
|
|
16
|
+
setActiveSection: (t) => e({ activeSection: t }),
|
|
17
|
+
toggleSidebar: () => e((e) => ({ sidebarCollapsed: !e.sidebarCollapsed })),
|
|
18
|
+
setSearchQuery: (t) => e({ searchQuery: t }),
|
|
19
|
+
setCategoryFilter: (t) => e({ categoryFilter: t }),
|
|
20
|
+
setSelectedCartId: (t) => e({ selectedCartId: t }),
|
|
21
|
+
setSelectedOrderId: (t) => e({ selectedOrderId: t }),
|
|
22
|
+
reset: () => e(i)
|
|
23
|
+
}), {
|
|
24
|
+
name: "burdenoff-coolandlovely-storage",
|
|
25
|
+
storage: r(),
|
|
26
|
+
partialize: (e) => ({
|
|
27
|
+
viewMode: e.viewMode,
|
|
28
|
+
sidebarCollapsed: e.sidebarCollapsed,
|
|
29
|
+
activeSection: e.activeSection
|
|
30
|
+
})
|
|
31
|
+
}), {
|
|
32
|
+
name: "CoolAndLovely Store",
|
|
33
|
+
enabled: !1
|
|
34
|
+
}));
|
|
35
|
+
//#endregion
|
|
36
|
+
export { a as useCoolAndLovelyStore };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=coolandlovelyStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coolandlovelyStore.js","names":[],"sources":["../../../src/coolandlovely/store/coolandlovelyStore.ts"],"sourcesContent":["/**\n * CoolAndLovely Zustand Store\n * @module coolandlovely/store\n */\n\nimport { create } from 'zustand';\nimport { devtools, persist } from 'zustand/middleware';\nimport { createProfileScopedStorage } from '@burdenoff/fe-libs/shared/utils';\nimport type { ViewMode } from '../types';\n\n// ============================================================================\n// State Interface\n// ============================================================================\n\ninterface CoolAndLovelyState {\n // View state\n viewMode: ViewMode;\n activeSection: string;\n sidebarCollapsed: boolean;\n\n // Search & filters\n searchQuery: string;\n categoryFilter: string;\n\n // Selected entities\n selectedCartId: string | null;\n selectedOrderId: string | null;\n\n // Actions\n setViewMode: (mode: ViewMode) => void;\n setActiveSection: (section: string) => void;\n setSearchQuery: (query: string) => void;\n setCategoryFilter: (category: string) => void;\n setSelectedCartId: (cartId: string | null) => void;\n setSelectedOrderId: (orderId: string | null) => void;\n toggleSidebar: () => void;\n reset: () => void;\n}\n\n// ============================================================================\n// Initial State\n// ============================================================================\n\nconst initialState = {\n viewMode: 'grid' as ViewMode,\n activeSection: 'dashboard',\n sidebarCollapsed: false,\n\n searchQuery: '',\n categoryFilter: '',\n\n selectedCartId: null,\n selectedOrderId: null,\n};\n\n// ============================================================================\n// Store\n// ============================================================================\n\nexport const useCoolAndLovelyStore = create<CoolAndLovelyState>()(\n devtools(\n persist(\n (set) => ({\n ...initialState,\n\n // View actions\n setViewMode: (mode) => set({ viewMode: mode }),\n setActiveSection: (section) => set({ activeSection: section }),\n toggleSidebar: () => set((state) => ({ sidebarCollapsed: !state.sidebarCollapsed })),\n\n // Search & filter actions\n setSearchQuery: (query) => set({ searchQuery: query }),\n setCategoryFilter: (category) => set({ categoryFilter: category }),\n\n // Selection actions\n setSelectedCartId: (cartId) => set({ selectedCartId: cartId }),\n setSelectedOrderId: (orderId) => set({ selectedOrderId: orderId }),\n\n // Reset\n reset: () => set(initialState),\n }),\n {\n name: 'burdenoff-coolandlovely-storage',\n storage: createProfileScopedStorage(),\n partialize: (state) => ({\n viewMode: state.viewMode,\n sidebarCollapsed: state.sidebarCollapsed,\n activeSection: state.activeSection,\n }),\n }\n ),\n { name: 'CoolAndLovely Store', enabled: import.meta.env.DEV }\n )\n);\n"],"mappings":";;;;AA2CA,IAAM,IAAe;CACnB,UAAU;CACV,eAAe;CACf,kBAAkB;CAElB,aAAa;CACb,gBAAgB;CAEhB,gBAAgB;CAChB,iBAAiB;CAClB,EAMY,IAAwB,GAA4B,CAC/D,EACE,GACG,OAAS;CACR,GAAG;CAGH,cAAc,MAAS,EAAI,EAAE,UAAU,GAAM,CAAC;CAC9C,mBAAmB,MAAY,EAAI,EAAE,eAAe,GAAS,CAAC;CAC9D,qBAAqB,GAAK,OAAW,EAAE,kBAAkB,CAAC,EAAM,kBAAkB,EAAE;CAGpF,iBAAiB,MAAU,EAAI,EAAE,aAAa,GAAO,CAAC;CACtD,oBAAoB,MAAa,EAAI,EAAE,gBAAgB,GAAU,CAAC;CAGlE,oBAAoB,MAAW,EAAI,EAAE,gBAAgB,GAAQ,CAAC;CAC9D,qBAAqB,MAAY,EAAI,EAAE,iBAAiB,GAAS,CAAC;CAGlE,aAAa,EAAI,EAAa;CAC/B,GACD;CACE,MAAM;CACN,SAAS,GAA4B;CACrC,aAAa,OAAW;EACtB,UAAU,EAAM;EAChB,kBAAkB,EAAM;EACxB,eAAe,EAAM;EACtB;CACF,CACF,EACD;CAAE,MAAM;CAAuB,SAAA;CAA8B,CAC9D,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/store/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./coolandlovelyStore.js";
|