react-component-kit-ui 0.0.0-stage → 0.1.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/CHANGELOG.md +25 -0
- package/LICENSE +21 -0
- package/README.md +225 -2
- package/dist/apexcharts.js +327 -0
- package/dist/app.js +21 -0
- package/dist/buttons.js +26 -0
- package/dist/cards.js +26 -0
- package/dist/charts.js +50 -0
- package/dist/chunks/ActivityHeatmapGrid-P3FP0D6z.js +416 -0
- package/dist/chunks/AnimatedCheckmark-CJEmTxC6.js +19 -0
- package/dist/chunks/AnimatedInput-Dt37HZSs.js +21 -0
- package/dist/chunks/AuthCard-BkWHMFho.js +1409 -0
- package/dist/chunks/Badge-CHkR__dT.js +11 -0
- package/dist/chunks/CartPageList-DvsbjjCi.js +331 -0
- package/dist/chunks/CartToast-UIJFD2CK.js +570 -0
- package/dist/chunks/ChangelogSection-eY4neMby.js +2409 -0
- package/dist/chunks/CountdownBanner-CcpsvvE8.js +1263 -0
- package/dist/chunks/CtaNewsletterSection-Cl3fLVpQ.js +75 -0
- package/dist/chunks/CustomRadioGroup-DAwliU9n.js +26 -0
- package/dist/chunks/DiagonalSectionDivider-CwOOEFbn.js +541 -0
- package/dist/chunks/FloatingFeedbackWidget-D_0EpalW.js +348 -0
- package/dist/chunks/FooterMegaSection-DG1qtKuZ.js +67 -0
- package/dist/chunks/HackerDecodeText-hutANQXI.js +289 -0
- package/dist/chunks/LogoWallGrid-BEpsn1Gt.js +433 -0
- package/dist/chunks/LogoWithGalaxy-q_3-9vGU.js +139 -0
- package/dist/chunks/ProductCardMinimal-lQi5vy3-.js +88 -0
- package/dist/chunks/QuickJumpDock-DZzwR0vg.js +294 -0
- package/dist/chunks/SegmentedBarChart-DEBZURnS.js +384 -0
- package/dist/chunks/ShopCategoryHero-BLlWZ-i3.js +695 -0
- package/dist/chunks/StackedAreaChart-DF1-3rDG.js +453 -0
- package/dist/chunks/StatsTrendCard--nij2Jv0.js +491 -0
- package/dist/chunks/StatusTimelineFeed-BRYwz08g.js +62 -0
- package/dist/chunks/StepBreadcrumbBar-BGXvx5NX.js +32 -0
- package/dist/chunks/StepperInput-Ck_9n2BL.js +30 -0
- package/dist/chunks/TagsAutocompleteInput-BdbVqPbF.js +467 -0
- package/dist/chunks/TiltGlowButton-BRHwq9Af.js +650 -0
- package/dist/chunks/TypingIndicator-DshBNXhx.js +373 -0
- package/dist/chunks/WaterfallChart-C6NFbfO0.js +1337 -0
- package/dist/chunks/cart-store-u-ScUvte.js +212 -0
- package/dist/chunks/chart-tooltip-C7pIc_Su.js +49 -0
- package/dist/chunks/galaxy-scene-C854qLoX.js +231 -0
- package/dist/data.js +28 -0
- package/dist/ecommerce.js +43 -0
- package/dist/favicon.svg +14 -0
- package/dist/feedback.js +28 -0
- package/dist/forms.js +31 -0
- package/dist/global.css +254 -0
- package/dist/index.js +397 -0
- package/dist/layout.js +26 -0
- package/dist/logo-animated.svg +46 -0
- package/dist/logo.svg +46 -0
- package/dist/navigation.js +28 -0
- package/dist/overlays.js +27 -0
- package/dist/robots.txt +4 -0
- package/dist/sections.js +68 -0
- package/dist/styles.css +1 -0
- package/dist/templates/ecommerce-editorial.js +481 -0
- package/dist/templates/ecommerce.js +556 -0
- package/dist/templates/saas-hotel.js +540 -0
- package/dist/three.js +17 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/components/apexcharts.d.ts +3 -0
- package/dist/types/components/index.d.ts +15 -0
- package/dist/types/components/lib/AnimatedGalaxy.d.ts +8 -0
- package/dist/types/components/lib/Galaxy3D.d.ts +15 -0
- package/dist/types/components/lib/LogoWithGalaxy.d.ts +8 -0
- package/dist/types/components/lib/app/AppSidebar.d.ts +53 -0
- package/dist/types/components/lib/app/AppTopbar.d.ts +52 -0
- package/dist/types/components/lib/app/ArrivalsBoard.d.ts +45 -0
- package/dist/types/components/lib/app/AuthCard.d.ts +45 -0
- package/dist/types/components/lib/app/DataTable.d.ts +54 -0
- package/dist/types/components/lib/app/GuestProfileCard.d.ts +48 -0
- package/dist/types/components/lib/app/HousekeepingBoard.d.ts +38 -0
- package/dist/types/components/lib/app/PageHeader.d.ts +45 -0
- package/dist/types/components/lib/app/PlanUsageCard.d.ts +44 -0
- package/dist/types/components/lib/app/RoomRack.d.ts +42 -0
- package/dist/types/components/lib/app/SettingsSection.d.ts +34 -0
- package/dist/types/components/lib/app/SwitchRow.d.ts +28 -0
- package/dist/types/components/lib/app/TeamMembers.d.ts +33 -0
- package/dist/types/components/lib/app/app-icons.d.ts +37 -0
- package/dist/types/components/lib/app/index.d.ts +15 -0
- package/dist/types/components/lib/buttons/AnimatedIconButton.d.ts +22 -0
- package/dist/types/components/lib/buttons/BorderDrawButton.d.ts +19 -0
- package/dist/types/components/lib/buttons/CyberpunkButton.d.ts +23 -0
- package/dist/types/components/lib/buttons/DoubleBorderButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/GhostOutlineButton.d.ts +21 -0
- package/dist/types/components/lib/buttons/GlassButton.d.ts +23 -0
- package/dist/types/components/lib/buttons/GlowButton.d.ts +19 -0
- package/dist/types/components/lib/buttons/LiquidButton.d.ts +19 -0
- package/dist/types/components/lib/buttons/LoadingButton.d.ts +20 -0
- package/dist/types/components/lib/buttons/MagneticButton.d.ts +21 -0
- package/dist/types/components/lib/buttons/MinimalPillButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/NeonBorderButton.d.ts +19 -0
- package/dist/types/components/lib/buttons/NeumorphicButton.d.ts +21 -0
- package/dist/types/components/lib/buttons/PulseButton.d.ts +20 -0
- package/dist/types/components/lib/buttons/RetroArcadeButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/RetroShadowButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/RippleButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/ShimmerButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/ShinyButton.d.ts +17 -0
- package/dist/types/components/lib/buttons/SlideRevealButton.d.ts +20 -0
- package/dist/types/components/lib/buttons/ThreeDPushButton.d.ts +19 -0
- package/dist/types/components/lib/buttons/TiltGlowButton.d.ts +21 -0
- package/dist/types/components/lib/buttons/index.d.ts +22 -0
- package/dist/types/components/lib/cards/BlogHorizontalCard.d.ts +17 -0
- package/dist/types/components/lib/cards/CyberFeatureCard.d.ts +15 -0
- package/dist/types/components/lib/cards/EcommerceProductCard.d.ts +21 -0
- package/dist/types/components/lib/cards/GithubRepoCard.d.ts +25 -0
- package/dist/types/components/lib/cards/GlassCard.d.ts +19 -0
- package/dist/types/components/lib/cards/GlassEventCard.d.ts +17 -0
- package/dist/types/components/lib/cards/GlowPortfolioCard.d.ts +17 -0
- package/dist/types/components/lib/cards/InteractiveTiltCard.d.ts +13 -0
- package/dist/types/components/lib/cards/KanbanItemCard.d.ts +15 -0
- package/dist/types/components/lib/cards/MinimalLinkCard.d.ts +13 -0
- package/dist/types/components/lib/cards/MusicPlayerMini.d.ts +17 -0
- package/dist/types/components/lib/cards/NeumorphicCard.d.ts +13 -0
- package/dist/types/components/lib/cards/NotificationCard.d.ts +15 -0
- package/dist/types/components/lib/cards/PricingCard.d.ts +17 -0
- package/dist/types/components/lib/cards/PricingCompareMiniCard.d.ts +25 -0
- package/dist/types/components/lib/cards/ProfileCard.d.ts +17 -0
- package/dist/types/components/lib/cards/RetroGameCard.d.ts +15 -0
- package/dist/types/components/lib/cards/StatCard.d.ts +15 -0
- package/dist/types/components/lib/cards/StatsTrendCard.d.ts +19 -0
- package/dist/types/components/lib/cards/TaskKanbanCard.d.ts +17 -0
- package/dist/types/components/lib/cards/TestimonialCardClean.d.ts +17 -0
- package/dist/types/components/lib/cards/WeatherWidgetCard.d.ts +17 -0
- package/dist/types/components/lib/cards/index.d.ts +22 -0
- package/dist/types/components/lib/charts/ActivityRings.d.ts +26 -0
- package/dist/types/components/lib/charts/AreaChart.d.ts +16 -0
- package/dist/types/components/lib/charts/BarChart.d.ts +17 -0
- package/dist/types/components/lib/charts/BoxPlotChart.d.ts +26 -0
- package/dist/types/components/lib/charts/BubbleChart.d.ts +35 -0
- package/dist/types/components/lib/charts/BulletChart.d.ts +29 -0
- package/dist/types/components/lib/charts/BumpChart.d.ts +25 -0
- package/dist/types/components/lib/charts/CandlestickChart.d.ts +30 -0
- package/dist/types/components/lib/charts/ChartFrame.d.ts +43 -0
- package/dist/types/components/lib/charts/DivergingBarChart.d.ts +31 -0
- package/dist/types/components/lib/charts/DonutChart.d.ts +16 -0
- package/dist/types/components/lib/charts/DumbbellChart.d.ts +31 -0
- package/dist/types/components/lib/charts/ForecastLineChart.d.ts +30 -0
- package/dist/types/components/lib/charts/FunnelChart.d.ts +24 -0
- package/dist/types/components/lib/charts/GaugeChart.d.ts +29 -0
- package/dist/types/components/lib/charts/GoalProgressChart.d.ts +29 -0
- package/dist/types/components/lib/charts/GroupedBarChart.d.ts +32 -0
- package/dist/types/components/lib/charts/HeatmapChart.d.ts +29 -0
- package/dist/types/components/lib/charts/HistogramChart.d.ts +27 -0
- package/dist/types/components/lib/charts/HorizontalBarChart.d.ts +32 -0
- package/dist/types/components/lib/charts/KpiStatTile.d.ts +28 -0
- package/dist/types/components/lib/charts/KpiTrendGrid.d.ts +27 -0
- package/dist/types/components/lib/charts/LineChart.d.ts +38 -0
- package/dist/types/components/lib/charts/LinearProgressGauge.d.ts +19 -0
- package/dist/types/components/lib/charts/LollipopChart.d.ts +32 -0
- package/dist/types/components/lib/charts/MeterGauge.d.ts +32 -0
- package/dist/types/components/lib/charts/MetricDeltaTable.d.ts +36 -0
- package/dist/types/components/lib/charts/PieChart.d.ts +32 -0
- package/dist/types/components/lib/charts/PolarAreaChart.d.ts +27 -0
- package/dist/types/components/lib/charts/PopulationPyramid.d.ts +31 -0
- package/dist/types/components/lib/charts/PunchCardChart.d.ts +26 -0
- package/dist/types/components/lib/charts/RadarChart.d.ts +28 -0
- package/dist/types/components/lib/charts/RadarMetricChart.d.ts +20 -0
- package/dist/types/components/lib/charts/RadialBarChart.d.ts +27 -0
- package/dist/types/components/lib/charts/RangeAreaChart.d.ts +34 -0
- package/dist/types/components/lib/charts/RetentionCohortTable.d.ts +27 -0
- package/dist/types/components/lib/charts/SankeyChart.d.ts +30 -0
- package/dist/types/components/lib/charts/ScatterPlot.d.ts +35 -0
- package/dist/types/components/lib/charts/SegmentedBarChart.d.ts +30 -0
- package/dist/types/components/lib/charts/SlopeChart.d.ts +33 -0
- package/dist/types/components/lib/charts/SparklineChart.d.ts +24 -0
- package/dist/types/components/lib/charts/StackedAreaChart.d.ts +34 -0
- package/dist/types/components/lib/charts/StackedBarChart.d.ts +33 -0
- package/dist/types/components/lib/charts/SunburstChart.d.ts +33 -0
- package/dist/types/components/lib/charts/TreemapChart.d.ts +31 -0
- package/dist/types/components/lib/charts/WaffleChart.d.ts +26 -0
- package/dist/types/components/lib/charts/WaterfallChart.d.ts +32 -0
- package/dist/types/components/lib/charts/chart-tooltip.d.ts +1 -0
- package/dist/types/components/lib/charts/chart-utils.d.ts +46 -0
- package/dist/types/components/lib/charts/index.d.ts +44 -0
- package/dist/types/components/lib/data/AccordionGroupGlass.d.ts +6 -0
- package/dist/types/components/lib/data/ActivityHeatmapGrid.d.ts +13 -0
- package/dist/types/components/lib/data/AvatarGroupStack.d.ts +6 -0
- package/dist/types/components/lib/data/CalendarGridView.d.ts +6 -0
- package/dist/types/components/lib/data/DataChipsGroup.d.ts +6 -0
- package/dist/types/components/lib/data/DescriptionListHoriz.d.ts +6 -0
- package/dist/types/components/lib/data/FileTreeView.d.ts +6 -0
- package/dist/types/components/lib/data/GanttChartMinimal.d.ts +6 -0
- package/dist/types/components/lib/data/GlassTable.d.ts +6 -0
- package/dist/types/components/lib/data/KeyValuePillGroup.d.ts +6 -0
- package/dist/types/components/lib/data/MetricComparisonRow.d.ts +19 -0
- package/dist/types/components/lib/data/PriceCompareTable.d.ts +6 -0
- package/dist/types/components/lib/data/ProgressListSmall.d.ts +6 -0
- package/dist/types/components/lib/data/RatingBreakdownBar.d.ts +6 -0
- package/dist/types/components/lib/data/SparklineStatCard.d.ts +6 -0
- package/dist/types/components/lib/data/StatsGridDashboard.d.ts +6 -0
- package/dist/types/components/lib/data/StatusTimelineFeed.d.ts +16 -0
- package/dist/types/components/lib/data/StepperDataVertical.d.ts +6 -0
- package/dist/types/components/lib/data/TagCloudData.d.ts +6 -0
- package/dist/types/components/lib/data/TimelineHorizSteps.d.ts +6 -0
- package/dist/types/components/lib/data/TreeItemInteractive.d.ts +6 -0
- package/dist/types/components/lib/data/UserDirectoryItem.d.ts +6 -0
- package/dist/types/components/lib/data/VerticalTimeline.d.ts +6 -0
- package/dist/types/components/lib/data/index.d.ts +23 -0
- package/dist/types/components/lib/ecommerce/CartDrawer.d.ts +43 -0
- package/dist/types/components/lib/ecommerce/CartPageList.d.ts +36 -0
- package/dist/types/components/lib/ecommerce/CartToast.d.ts +34 -0
- package/dist/types/components/lib/ecommerce/CategoryTiles.d.ts +32 -0
- package/dist/types/components/lib/ecommerce/CheckoutForm.d.ts +44 -0
- package/dist/types/components/lib/ecommerce/CountdownBanner.d.ts +38 -0
- package/dist/types/components/lib/ecommerce/FilterBar.d.ts +48 -0
- package/dist/types/components/lib/ecommerce/FilterSidebar.d.ts +42 -0
- package/dist/types/components/lib/ecommerce/LiveActivityToast.d.ts +43 -0
- package/dist/types/components/lib/ecommerce/OrderSummary.d.ts +39 -0
- package/dist/types/components/lib/ecommerce/ProductBuyBox.d.ts +39 -0
- package/dist/types/components/lib/ecommerce/ProductCardMinimal.d.ts +38 -0
- package/dist/types/components/lib/ecommerce/ProductGallery.d.ts +29 -0
- package/dist/types/components/lib/ecommerce/ProductGrid.d.ts +41 -0
- package/dist/types/components/lib/ecommerce/ProductMedia.d.ts +30 -0
- package/dist/types/components/lib/ecommerce/ProductRating.d.ts +23 -0
- package/dist/types/components/lib/ecommerce/ProductToolbar.d.ts +35 -0
- package/dist/types/components/lib/ecommerce/PromoBar.d.ts +29 -0
- package/dist/types/components/lib/ecommerce/StockIndicator.d.ts +29 -0
- package/dist/types/components/lib/ecommerce/StoreHeader.d.ts +54 -0
- package/dist/types/components/lib/ecommerce/StoreHero.d.ts +48 -0
- package/dist/types/components/lib/ecommerce/StoreProductCard.d.ts +40 -0
- package/dist/types/components/lib/ecommerce/TrustBadges.d.ts +24 -0
- package/dist/types/components/lib/ecommerce/VariantPicker.d.ts +37 -0
- package/dist/types/components/lib/ecommerce/cart-store.d.ts +31 -0
- package/dist/types/components/lib/ecommerce/catalog-filter.d.ts +12 -0
- package/dist/types/components/lib/ecommerce/index.d.ts +30 -0
- package/dist/types/components/lib/ecommerce/product-icons.d.ts +20 -0
- package/dist/types/components/lib/ecommerce/types.d.ts +61 -0
- package/dist/types/components/lib/feedback/AnimatedCheckmark.d.ts +14 -0
- package/dist/types/components/lib/feedback/Badge.d.ts +17 -0
- package/dist/types/components/lib/feedback/CircleProgress.d.ts +18 -0
- package/dist/types/components/lib/feedback/ConfettiFeedback.d.ts +18 -0
- package/dist/types/components/lib/feedback/CyberGlitchAlert.d.ts +14 -0
- package/dist/types/components/lib/feedback/EmptyStateCard.d.ts +20 -0
- package/dist/types/components/lib/feedback/GlassAlert.d.ts +15 -0
- package/dist/types/components/lib/feedback/GlassModal.d.ts +24 -0
- package/dist/types/components/lib/feedback/GlassProgress.d.ts +14 -0
- package/dist/types/components/lib/feedback/IndicatorBadgeMinimal.d.ts +17 -0
- package/dist/types/components/lib/feedback/NeonSpinner.d.ts +16 -0
- package/dist/types/components/lib/feedback/ProgressRingCounter.d.ts +22 -0
- package/dist/types/components/lib/feedback/PulseDot.d.ts +14 -0
- package/dist/types/components/lib/feedback/RatingPill.d.ts +15 -0
- package/dist/types/components/lib/feedback/ShakeErrorGroup.d.ts +17 -0
- package/dist/types/components/lib/feedback/SimpleTooltip.d.ts +15 -0
- package/dist/types/components/lib/feedback/SkeletonList.d.ts +12 -0
- package/dist/types/components/lib/feedback/Spotlight.d.ts +15 -0
- package/dist/types/components/lib/feedback/StepProgress.d.ts +16 -0
- package/dist/types/components/lib/feedback/ToastNotif.d.ts +18 -0
- package/dist/types/components/lib/feedback/ToastNotificationGroup.d.ts +22 -0
- package/dist/types/components/lib/feedback/TypingIndicator.d.ts +14 -0
- package/dist/types/components/lib/feedback/index.d.ts +22 -0
- package/dist/types/components/lib/forms/AnimatedInput.d.ts +23 -0
- package/dist/types/components/lib/forms/ChipInput.d.ts +17 -0
- package/dist/types/components/lib/forms/ColorPickerInput.d.ts +17 -0
- package/dist/types/components/lib/forms/CurrencyInput.d.ts +21 -0
- package/dist/types/components/lib/forms/CustomRadioGroup.d.ts +21 -0
- package/dist/types/components/lib/forms/CyberpunkCheckbox.d.ts +17 -0
- package/dist/types/components/lib/forms/DragDropUpload.d.ts +19 -0
- package/dist/types/components/lib/forms/ErrorInput.d.ts +19 -0
- package/dist/types/components/lib/forms/FloatingPassword.d.ts +17 -0
- package/dist/types/components/lib/forms/FormGroupVertical.d.ts +21 -0
- package/dist/types/components/lib/forms/GlassInlineToggleGroup.d.ts +21 -0
- package/dist/types/components/lib/forms/GlassSlider.d.ts +23 -0
- package/dist/types/components/lib/forms/GlassTextarea.d.ts +21 -0
- package/dist/types/components/lib/forms/ModernSelect.d.ts +23 -0
- package/dist/types/components/lib/forms/NeumorphicSwitch.d.ts +17 -0
- package/dist/types/components/lib/forms/OTPInput.d.ts +17 -0
- package/dist/types/components/lib/forms/PasswordStrengthInput.d.ts +19 -0
- package/dist/types/components/lib/forms/PhoneCountryInput.d.ts +19 -0
- package/dist/types/components/lib/forms/RatingStars.d.ts +17 -0
- package/dist/types/components/lib/forms/SearchReveal.d.ts +15 -0
- package/dist/types/components/lib/forms/SegmentedControl.d.ts +19 -0
- package/dist/types/components/lib/forms/SimpleFileInput.d.ts +17 -0
- package/dist/types/components/lib/forms/StepperInput.d.ts +23 -0
- package/dist/types/components/lib/forms/TagsAutocompleteInput.d.ts +19 -0
- package/dist/types/components/lib/forms/index.d.ts +24 -0
- package/dist/types/components/lib/galaxy-scene.d.ts +5 -0
- package/dist/types/components/lib/layout/BentoGrid3.d.ts +14 -0
- package/dist/types/components/lib/layout/CenterFixedBox.d.ts +11 -0
- package/dist/types/components/lib/layout/CenteredContainer.d.ts +27 -0
- package/dist/types/components/lib/layout/ClusterHorizontal.d.ts +13 -0
- package/dist/types/components/lib/layout/DiagonalSectionDivider.d.ts +17 -0
- package/dist/types/components/lib/layout/FeatureHero.d.ts +35 -0
- package/dist/types/components/lib/layout/FooterCenteredMinimal.d.ts +23 -0
- package/dist/types/components/lib/layout/FullBleedSection.d.ts +11 -0
- package/dist/types/components/lib/layout/GalleryGrid4.d.ts +11 -0
- package/dist/types/components/lib/layout/GlassCardGrid.d.ts +16 -0
- package/dist/types/components/lib/layout/GlassSectionHeader.d.ts +30 -0
- package/dist/types/components/lib/layout/HolyGrailGrid.d.ts +23 -0
- package/dist/types/components/lib/layout/LandingSectionSplit.d.ts +14 -0
- package/dist/types/components/lib/layout/MasonryGrid.d.ts +13 -0
- package/dist/types/components/lib/layout/MinimalFooterGrid.d.ts +10 -0
- package/dist/types/components/lib/layout/ScrollSnapSection.d.ts +12 -0
- package/dist/types/components/lib/layout/SectionDividerText.d.ts +23 -0
- package/dist/types/components/lib/layout/SidebarLayoutWrapper.d.ts +33 -0
- package/dist/types/components/lib/layout/SplitScreenLayout.d.ts +12 -0
- package/dist/types/components/lib/layout/StepLayoutVertical.d.ts +9 -0
- package/dist/types/components/lib/layout/StickySidebarWrapper.d.ts +35 -0
- package/dist/types/components/lib/layout/VerticalStack.d.ts +27 -0
- package/dist/types/components/lib/layout/index.d.ts +22 -0
- package/dist/types/components/lib/navigation/AnchorSideNav.d.ts +6 -0
- package/dist/types/components/lib/navigation/BottomNavMobile.d.ts +6 -0
- package/dist/types/components/lib/navigation/BreadcrumbsMinimal.d.ts +6 -0
- package/dist/types/components/lib/navigation/BurgerMorphIcon.d.ts +6 -0
- package/dist/types/components/lib/navigation/CommandPaletteUI.d.ts +6 -0
- package/dist/types/components/lib/navigation/DotNavigationSlider.d.ts +6 -0
- package/dist/types/components/lib/navigation/FloatingTabBar.d.ts +6 -0
- package/dist/types/components/lib/navigation/GlassNavbar.d.ts +12 -0
- package/dist/types/components/lib/navigation/LangSwitcherPill.d.ts +6 -0
- package/dist/types/components/lib/navigation/MegaMenuGlass.d.ts +6 -0
- package/dist/types/components/lib/navigation/MinimalSidebar.d.ts +6 -0
- package/dist/types/components/lib/navigation/PaginationGlass.d.ts +6 -0
- package/dist/types/components/lib/navigation/PaginationInfiniteUI.d.ts +6 -0
- package/dist/types/components/lib/navigation/QuickJumpDock.d.ts +15 -0
- package/dist/types/components/lib/navigation/RadialIconMenu.d.ts +6 -0
- package/dist/types/components/lib/navigation/RetroArcadeMenu.d.ts +6 -0
- package/dist/types/components/lib/navigation/ScrollProgressTop.d.ts +6 -0
- package/dist/types/components/lib/navigation/SimpleFooterGlass.d.ts +6 -0
- package/dist/types/components/lib/navigation/StepBreadcrumbBar.d.ts +16 -0
- package/dist/types/components/lib/navigation/SubNavbarPills.d.ts +18 -0
- package/dist/types/components/lib/navigation/TabUnderline.d.ts +6 -0
- package/dist/types/components/lib/navigation/UserProfileNav.d.ts +6 -0
- package/dist/types/components/lib/navigation/VerticalTabs.d.ts +6 -0
- package/dist/types/components/lib/navigation/index.d.ts +23 -0
- package/dist/types/components/lib/overlays/AgeVerificationOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/BackdropBlurMask.d.ts +6 -0
- package/dist/types/components/lib/overlays/BottomSheetMobile.d.ts +6 -0
- package/dist/types/components/lib/overlays/CommandDialog.d.ts +6 -0
- package/dist/types/components/lib/overlays/ContextMenuOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/CookieBannerGlass.d.ts +6 -0
- package/dist/types/components/lib/overlays/CookiePreferencesDrawer.d.ts +13 -0
- package/dist/types/components/lib/overlays/ExitIntentOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/FloatingFeedbackWidget.d.ts +13 -0
- package/dist/types/components/lib/overlays/FloatingTrayActions.d.ts +6 -0
- package/dist/types/components/lib/overlays/HelpBubbleOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/ImageCompareSlider.d.ts +19 -0
- package/dist/types/components/lib/overlays/LightboxOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/LoadingOverlayFull.d.ts +6 -0
- package/dist/types/components/lib/overlays/MobileNavOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/OverlayModal.d.ts +6 -0
- package/dist/types/components/lib/overlays/PopoverMenuGlass.d.ts +6 -0
- package/dist/types/components/lib/overlays/SearchOverlayFullscreen.d.ts +6 -0
- package/dist/types/components/lib/overlays/SideDrawerRight.d.ts +8 -0
- package/dist/types/components/lib/overlays/SplashIntroOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/SpotlightIndicator.d.ts +6 -0
- package/dist/types/components/lib/overlays/ToastStackOverlay.d.ts +6 -0
- package/dist/types/components/lib/overlays/TooltipActionTray.d.ts +6 -0
- package/dist/types/components/lib/overlays/index.d.ts +23 -0
- package/dist/types/components/lib/sections/AgencyContactBrief.d.ts +44 -0
- package/dist/types/components/lib/sections/AgencyFooterCta.d.ts +46 -0
- package/dist/types/components/lib/sections/AgencyHeader.d.ts +37 -0
- package/dist/types/components/lib/sections/AgencyHeroKinetic.d.ts +45 -0
- package/dist/types/components/lib/sections/AgencyServicesList.d.ts +35 -0
- package/dist/types/components/lib/sections/AgencyTeamGrid.d.ts +45 -0
- package/dist/types/components/lib/sections/AgencyWorkGrid.d.ts +42 -0
- package/dist/types/components/lib/sections/BlogGridSection.d.ts +35 -0
- package/dist/types/components/lib/sections/ButtonsShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/CardsShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/CareersOpenings.d.ts +37 -0
- package/dist/types/components/lib/sections/ChangelogSection.d.ts +37 -0
- package/dist/types/components/lib/sections/ContactGlassForm.d.ts +16 -0
- package/dist/types/components/lib/sections/ContactSplitMap.d.ts +36 -0
- package/dist/types/components/lib/sections/CtaAppDownload.d.ts +16 -0
- package/dist/types/components/lib/sections/CtaGlowBanner.d.ts +20 -0
- package/dist/types/components/lib/sections/CtaNewsletterSection.d.ts +28 -0
- package/dist/types/components/lib/sections/CtaSplitImage.d.ts +39 -0
- package/dist/types/components/lib/sections/DataShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/FaqAccordionSection.d.ts +16 -0
- package/dist/types/components/lib/sections/FaqTwoColumn.d.ts +32 -0
- package/dist/types/components/lib/sections/FeatureAlternatingRows.d.ts +29 -0
- package/dist/types/components/lib/sections/FeatureBentoGrid.d.ts +16 -0
- package/dist/types/components/lib/sections/FeatureIconGrid.d.ts +33 -0
- package/dist/types/components/lib/sections/FeatureTabsShowcase.d.ts +30 -0
- package/dist/types/components/lib/sections/FeatureTimelineFlow.d.ts +16 -0
- package/dist/types/components/lib/sections/FeedbackShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/FooterMegaSection.d.ts +40 -0
- package/dist/types/components/lib/sections/FormsShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/HeroDashboardPreview.d.ts +32 -0
- package/dist/types/components/lib/sections/HeroGlass.d.ts +8 -0
- package/dist/types/components/lib/sections/HeroGradient.d.ts +8 -0
- package/dist/types/components/lib/sections/HeroMinimalCentered.d.ts +36 -0
- package/dist/types/components/lib/sections/HeroShowcaseSplit.d.ts +25 -0
- package/dist/types/components/lib/sections/HeroSplit.d.ts +8 -0
- package/dist/types/components/lib/sections/HeroTerminal.d.ts +35 -0
- package/dist/types/components/lib/sections/HeroWaitlist.d.ts +30 -0
- package/dist/types/components/lib/sections/HowItWorksSteps.d.ts +32 -0
- package/dist/types/components/lib/sections/IntegrationsGrid.d.ts +28 -0
- package/dist/types/components/lib/sections/LayoutShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/LogoCloudSection.d.ts +16 -0
- package/dist/types/components/lib/sections/LogoWallGrid.d.ts +28 -0
- package/dist/types/components/lib/sections/NavigationShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/OverlaysShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/PricingComparisonMatrix.d.ts +16 -0
- package/dist/types/components/lib/sections/PricingSinglePlan.d.ts +37 -0
- package/dist/types/components/lib/sections/PricingTierCards.d.ts +16 -0
- package/dist/types/components/lib/sections/PricingToggleCards.d.ts +36 -0
- package/dist/types/components/lib/sections/ShopCategoryHero.d.ts +41 -0
- package/dist/types/components/lib/sections/ShopCollectionMosaic.d.ts +37 -0
- package/dist/types/components/lib/sections/ShopFooterWordmark.d.ts +38 -0
- package/dist/types/components/lib/sections/ShopHeaderEditorial.d.ts +61 -0
- package/dist/types/components/lib/sections/ShopHeroEditorial.d.ts +45 -0
- package/dist/types/components/lib/sections/ShopLookbook.d.ts +47 -0
- package/dist/types/components/lib/sections/ShopNewsletterEditorial.d.ts +33 -0
- package/dist/types/components/lib/sections/ShopProductRail.d.ts +41 -0
- package/dist/types/components/lib/sections/ShopReviewsEditorial.d.ts +34 -0
- package/dist/types/components/lib/sections/ShopValuesMarquee.d.ts +28 -0
- package/dist/types/components/lib/sections/StatsCounterBand.d.ts +30 -0
- package/dist/types/components/lib/sections/StatsDashboardSection.d.ts +31 -0
- package/dist/types/components/lib/sections/StatsMetricShowcase.d.ts +16 -0
- package/dist/types/components/lib/sections/TeamGridSection.d.ts +16 -0
- package/dist/types/components/lib/sections/TestimonialCarousel.d.ts +26 -0
- package/dist/types/components/lib/sections/TestimonialFeatured.d.ts +34 -0
- package/dist/types/components/lib/sections/TestimonialGridSection.d.ts +15 -0
- package/dist/types/components/lib/sections/TestimonialWallGlass.d.ts +16 -0
- package/dist/types/components/lib/sections/TypographyShowcase.d.ts +8 -0
- package/dist/types/components/lib/sections/index.d.ts +60 -0
- package/dist/types/components/lib/templates/ecommerce/StoreCategoryPage.d.ts +28 -0
- package/dist/types/components/lib/templates/ecommerce/StoreCheckoutPage.d.ts +25 -0
- package/dist/types/components/lib/templates/ecommerce/StoreHomePage.d.ts +25 -0
- package/dist/types/components/lib/templates/ecommerce/StoreLayout.d.ts +41 -0
- package/dist/types/components/lib/templates/ecommerce/StoreProductPage.d.ts +28 -0
- package/dist/types/components/lib/templates/ecommerce/data.d.ts +49 -0
- package/dist/types/components/lib/templates/ecommerce/index.d.ts +7 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialBagPage.d.ts +25 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialCheckoutPage.d.ts +25 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialHomePage.d.ts +25 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialLayout.d.ts +36 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialProductPage.d.ts +29 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/EditorialShopPage.d.ts +28 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/data.d.ts +50 -0
- package/dist/types/components/lib/templates/ecommerce-editorial/index.d.ts +8 -0
- package/dist/types/components/lib/templates/saas-hotel/AppLayout.d.ts +30 -0
- package/dist/types/components/lib/templates/saas-hotel/DashboardPage.d.ts +20 -0
- package/dist/types/components/lib/templates/saas-hotel/GuestsPage.d.ts +20 -0
- package/dist/types/components/lib/templates/saas-hotel/LandingPage.d.ts +24 -0
- package/dist/types/components/lib/templates/saas-hotel/ReportsPage.d.ts +20 -0
- package/dist/types/components/lib/templates/saas-hotel/ReservationsPage.d.ts +20 -0
- package/dist/types/components/lib/templates/saas-hotel/RoomsPage.d.ts +20 -0
- package/dist/types/components/lib/templates/saas-hotel/SettingsPage.d.ts +21 -0
- package/dist/types/components/lib/templates/saas-hotel/SignInPage.d.ts +23 -0
- package/dist/types/components/lib/templates/saas-hotel/data.d.ts +224 -0
- package/dist/types/components/lib/templates/saas-hotel/index.d.ts +11 -0
- package/dist/types/components/lib/typography/AnimatedCounterText.d.ts +19 -0
- package/dist/types/components/lib/typography/AnimatedUnderlineLink.d.ts +9 -0
- package/dist/types/components/lib/typography/BackgroundClipMask.d.ts +8 -0
- package/dist/types/components/lib/typography/CodeInlineGlass.d.ts +8 -0
- package/dist/types/components/lib/typography/CurvedPathHeading.d.ts +15 -0
- package/dist/types/components/lib/typography/CyberpunkGlitchText.d.ts +7 -0
- package/dist/types/components/lib/typography/DropCapParagraph.d.ts +8 -0
- package/dist/types/components/lib/typography/FadedVerticalText.d.ts +8 -0
- package/dist/types/components/lib/typography/FloatingTextLabel.d.ts +8 -0
- package/dist/types/components/lib/typography/GlassBlockQuote.d.ts +8 -0
- package/dist/types/components/lib/typography/GlassTextReveal.d.ts +8 -0
- package/dist/types/components/lib/typography/GradientHeading.d.ts +11 -0
- package/dist/types/components/lib/typography/GradientTextMarquee.d.ts +15 -0
- package/dist/types/components/lib/typography/GradientUnderlineLink.d.ts +8 -0
- package/dist/types/components/lib/typography/HackerDecodeText.d.ts +15 -0
- package/dist/types/components/lib/typography/KbdIndicator.d.ts +8 -0
- package/dist/types/components/lib/typography/LetterSpacingWide.d.ts +8 -0
- package/dist/types/components/lib/typography/MinimalListMarkers.d.ts +8 -0
- package/dist/types/components/lib/typography/MonospaceStatLine.d.ts +8 -0
- package/dist/types/components/lib/typography/NeonTextHighlight.d.ts +8 -0
- package/dist/types/components/lib/typography/ShadowRevealText.d.ts +8 -0
- package/dist/types/components/lib/typography/StrokeHeadingOutline.d.ts +8 -0
- package/dist/types/components/lib/typography/Text3DLayer.d.ts +8 -0
- package/dist/types/components/lib/typography/TypewriterText.d.ts +8 -0
- package/dist/types/components/lib/typography/index.d.ts +24 -0
- package/dist/types/components/three.d.ts +1 -0
- package/dist/typography.js +28 -0
- package/package.json +237 -4
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as t, Fragment as c, jsxs as a } from "react/jsx-runtime";
|
|
3
|
+
import { useRef as R, useEffect as x } from "react";
|
|
4
|
+
/* empty css */
|
|
5
|
+
import { A as G, a as W, c as F, P as h, b as O, R as U, D as T, H as $, G as q, S as w, e as v, T as z, d as J } from "../chunks/AuthCard-BkWHMFho.js";
|
|
6
|
+
import { H as V, L as Y, a as K, b as j, S as Q, P as Z, T as X, F as ee } from "../chunks/LogoWallGrid-BEpsn1Gt.js";
|
|
7
|
+
import { F as te } from "../chunks/FooterMegaSection-DG1qtKuZ.js";
|
|
8
|
+
import { K as f, a as ae, H as ie } from "../chunks/StackedAreaChart-DF1-3rDG.js";
|
|
9
|
+
import { G as re, P as ne, b as oe, S as L, F as se, H as le, a as ce, M as de } from "../chunks/SegmentedBarChart-DEBZURnS.js";
|
|
10
|
+
import { S as ue } from "../chunks/StatusTimelineFeed-BRYwz08g.js";
|
|
11
|
+
import { A as k, M as S } from "../chunks/AnimatedInput-Dt37HZSs.js";
|
|
12
|
+
const u = {
|
|
13
|
+
landing: "/",
|
|
14
|
+
signIn: "/sign-in/",
|
|
15
|
+
dashboard: "/app/",
|
|
16
|
+
reservations: "/app/reservations/",
|
|
17
|
+
rooms: "/app/rooms/",
|
|
18
|
+
guests: "/app/guests/",
|
|
19
|
+
reports: "/app/reports/",
|
|
20
|
+
settings: "/app/settings/"
|
|
21
|
+
}, C = [
|
|
22
|
+
["Elena Duarte", "Spain"],
|
|
23
|
+
["James Whitfield", "UK"],
|
|
24
|
+
["Aiko Tanaka", "Japan"],
|
|
25
|
+
["Marco Bellini", "Italy"],
|
|
26
|
+
["Sofía Ramos", "Mexico"],
|
|
27
|
+
["Hans Müller", "Germany"],
|
|
28
|
+
["Priya Nair", "India"],
|
|
29
|
+
["The Okafor family", "Nigeria"],
|
|
30
|
+
["Chloé Martin", "France"],
|
|
31
|
+
["Tom Becker", "Austria"],
|
|
32
|
+
["Ana Costa", "Portugal"],
|
|
33
|
+
["Liam O’Connor", "Ireland"],
|
|
34
|
+
["Mei Chen", "Singapore"],
|
|
35
|
+
["Lucas Silva", "Brazil"],
|
|
36
|
+
["Nora Lindqvist", "Sweden"],
|
|
37
|
+
["David Cohen", "USA"]
|
|
38
|
+
], D = ["Direct", "Booking.com", "Expedia", "Airbnb", "Direct", "Booking.com"], me = { Standard: 118, Deluxe: 176, Suite: 312 }, P = [
|
|
39
|
+
...["101", "102", "103", "104", "105", "106"].map((e) => ({ id: e, name: e, type: "Standard", floor: "Floor 1" })),
|
|
40
|
+
...["201", "202", "203", "204", "205", "206"].map((e) => ({ id: e, name: e, type: "Deluxe", floor: "Floor 2" })),
|
|
41
|
+
...["301", "302", "303", "304"].map((e) => ({ id: e, name: e, type: "Suite", floor: "Floor 3" }))
|
|
42
|
+
];
|
|
43
|
+
function he(e, r) {
|
|
44
|
+
const n = /* @__PURE__ */ new Date();
|
|
45
|
+
n.setUTCHours(0, 0, 0, 0), n.setUTCDate(n.getUTCDate() - 1);
|
|
46
|
+
const i = new Intl.DateTimeFormat(r, { weekday: "short", day: "numeric", timeZone: "UTC" }), o = [], s = [];
|
|
47
|
+
for (let l = 0; l < e; l++) {
|
|
48
|
+
const d = new Date(n);
|
|
49
|
+
d.setUTCDate(n.getUTCDate() + l), o.push(i.format(d).replace(",", "")), s.push(d.toISOString().slice(0, 10));
|
|
50
|
+
}
|
|
51
|
+
return { labels: o, iso: s };
|
|
52
|
+
}
|
|
53
|
+
const M = "en-GB", y = he(14, M), be = [
|
|
54
|
+
["101", 0, 3, "checked-in"],
|
|
55
|
+
["101", 4, 2, "confirmed"],
|
|
56
|
+
["101", 8, 4, "pending"],
|
|
57
|
+
["102", 1, 5, "confirmed"],
|
|
58
|
+
["102", 7, 3, "confirmed"],
|
|
59
|
+
["103", 0, 2, "checked-in"],
|
|
60
|
+
["103", 3, 6, "confirmed"],
|
|
61
|
+
["104", 2, 2, "blocked"],
|
|
62
|
+
["104", 5, 4, "confirmed"],
|
|
63
|
+
["105", 0, 4, "checked-in"],
|
|
64
|
+
["105", 6, 3, "pending"],
|
|
65
|
+
["105", 10, 3, "confirmed"],
|
|
66
|
+
["106", 1, 2, "confirmed"],
|
|
67
|
+
["106", 4, 5, "confirmed"],
|
|
68
|
+
["201", 0, 6, "checked-in"],
|
|
69
|
+
["201", 7, 2, "confirmed"],
|
|
70
|
+
["202", 2, 3, "confirmed"],
|
|
71
|
+
["202", 6, 5, "pending"],
|
|
72
|
+
["203", 0, 1, "checked-in"],
|
|
73
|
+
["203", 3, 4, "confirmed"],
|
|
74
|
+
["203", 9, 3, "confirmed"],
|
|
75
|
+
["204", 1, 3, "confirmed"],
|
|
76
|
+
["204", 5, 2, "blocked"],
|
|
77
|
+
["205", 0, 3, "checked-in"],
|
|
78
|
+
["205", 4, 4, "confirmed"],
|
|
79
|
+
["206", 2, 6, "confirmed"],
|
|
80
|
+
["301", 1, 6, "confirmed"],
|
|
81
|
+
["301", 9, 3, "pending"],
|
|
82
|
+
["302", 0, 2, "checked-in"],
|
|
83
|
+
["302", 4, 4, "confirmed"],
|
|
84
|
+
["303", 3, 3, "confirmed"],
|
|
85
|
+
["304", 0, 5, "checked-in"],
|
|
86
|
+
["304", 8, 4, "confirmed"]
|
|
87
|
+
], A = be.map(([e, r, n, i], o) => {
|
|
88
|
+
const [s] = C[o % C.length];
|
|
89
|
+
return { room: e, guest: i === "blocked" ? "Maintenance" : s, start: r, nights: n, status: i, ref: i === "blocked" ? void 0 : `MR-${2810 + o}`, channel: i === "blocked" ? void 0 : D[o % D.length] };
|
|
90
|
+
}), pe = (e, r) => e === "checked-in" ? "Checked in" : e === "pending" ? "Pending" : r % 9 === 4 ? "Cancelled" : "Confirmed", ge = A.filter((e) => e.status !== "blocked").map((e, r) => {
|
|
91
|
+
const n = P.find((o) => o.id === e.room), i = pe(e.status, r);
|
|
92
|
+
return {
|
|
93
|
+
ref: e.ref,
|
|
94
|
+
guest: { name: e.guest, sub: e.channel },
|
|
95
|
+
room: `${n.name} · ${n.type}`,
|
|
96
|
+
checkIn: y.iso[e.start],
|
|
97
|
+
nights: e.nights,
|
|
98
|
+
status: i,
|
|
99
|
+
total: i === "Cancelled" ? 0 : e.nights * me[n.type]
|
|
100
|
+
};
|
|
101
|
+
}), fe = P.map((e, r) => {
|
|
102
|
+
const n = A.find((s) => s.room === e.id && s.status === "checked-in"), i = ["clean", "dirty", "inspecting", "clean", "dirty"];
|
|
103
|
+
if (e.id === "104") return { number: e.name, floor: e.floor, type: e.type, status: "ooo", note: "Plumbing repair" };
|
|
104
|
+
if (n) return { number: e.name, floor: e.floor, type: e.type, status: "occupied", guest: n.guest.split(" ").slice(-1)[0] };
|
|
105
|
+
const o = i[r % i.length];
|
|
106
|
+
return { number: e.name, floor: e.floor, type: e.type, status: o, assignee: o !== "clean" ? ["Rosa", "Luis", "Inés"][r % 3] : void 0 };
|
|
107
|
+
}), ye = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], m = {
|
|
108
|
+
product: "Lobby",
|
|
109
|
+
workspace: { name: "Hotel Mirador", plan: "Pro plan", initials: "HM" },
|
|
110
|
+
user: { name: "Lucía Ortega", role: "General manager", email: "lucia@mirador.com" },
|
|
111
|
+
currency: "EUR",
|
|
112
|
+
locale: M,
|
|
113
|
+
days: y.labels,
|
|
114
|
+
rooms: P,
|
|
115
|
+
bookings: A,
|
|
116
|
+
reservations: ge,
|
|
117
|
+
housekeeping: fe,
|
|
118
|
+
kpis: [
|
|
119
|
+
{ label: "Occupancy", value: "84%", change: 6.2, trend: [62, 66, 70, 68, 74, 78, 80, 84] },
|
|
120
|
+
{ label: "ADR", value: "€168", change: 3.4, trend: [150, 152, 158, 155, 160, 162, 165, 168] },
|
|
121
|
+
{ label: "RevPAR", value: "€141", change: 9.1, trend: [98, 104, 110, 106, 118, 124, 132, 141] },
|
|
122
|
+
{ label: "Cancellations", value: "3.1%", change: -1.2, invert: !0, trend: [5, 4.6, 4.8, 4.1, 3.9, 3.6, 3.4, 3.1] }
|
|
123
|
+
],
|
|
124
|
+
revenue: {
|
|
125
|
+
categories: ["W1", "W2", "W3", "W4", "W5", "W6", "W7", "W8", "W9", "W10", "W11", "W12"],
|
|
126
|
+
series: [
|
|
127
|
+
{ name: "Rooms", data: [38, 41, 39, 44, 47, 52, 49, 55, 58, 61, 57, 64] },
|
|
128
|
+
{ name: "F&B", data: [9, 10, 9, 11, 12, 13, 12, 14, 15, 16, 15, 17] },
|
|
129
|
+
{ name: "Spa & extras", data: [4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9] }
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
occupancyByType: {
|
|
133
|
+
categories: ye.slice(4, 11),
|
|
134
|
+
series: [
|
|
135
|
+
{ name: "Standard", data: [72, 78, 88, 91, 84, 76, 81] },
|
|
136
|
+
{ name: "Deluxe", data: [64, 71, 85, 89, 79, 70, 77] },
|
|
137
|
+
{ name: "Suite", data: [48, 55, 74, 80, 66, 58, 63] }
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
channels: [
|
|
141
|
+
{ label: "Direct", value: 38 },
|
|
142
|
+
{ label: "Booking.com", value: 31 },
|
|
143
|
+
{ label: "Expedia", value: 17 },
|
|
144
|
+
{ label: "Airbnb", value: 9 },
|
|
145
|
+
{ label: "Corporate", value: 5 }
|
|
146
|
+
],
|
|
147
|
+
forecast: {
|
|
148
|
+
categories: ["Oct 28", "Oct 31", "Nov 3", "Nov 6", "Nov 9", "Nov 12", "Nov 15", "Nov 18", "Nov 21", "Nov 24"],
|
|
149
|
+
actual: [71, 74, 80, 84],
|
|
150
|
+
forecast: [84, 82, 79, 86, 91, 88, 76, 72]
|
|
151
|
+
},
|
|
152
|
+
pace: {
|
|
153
|
+
rows: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
|
|
154
|
+
columns: ["0–7d", "8–14d", "15–30d", "31–60d", "61–90d", "90d+"],
|
|
155
|
+
values: [
|
|
156
|
+
[12, 9, 14, 8, 4, 2],
|
|
157
|
+
[10, 8, 12, 7, 3, 2],
|
|
158
|
+
[11, 10, 13, 9, 4, 3],
|
|
159
|
+
[14, 12, 15, 10, 6, 3],
|
|
160
|
+
[22, 18, 20, 14, 9, 5],
|
|
161
|
+
[26, 21, 22, 16, 10, 6],
|
|
162
|
+
[15, 11, 12, 8, 5, 3]
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
funnel: [
|
|
166
|
+
{ label: "Website visits", value: 18400 },
|
|
167
|
+
{ label: "Searched dates", value: 7350 },
|
|
168
|
+
{ label: "Viewed rooms", value: 3920 },
|
|
169
|
+
{ label: "Started booking", value: 1180 },
|
|
170
|
+
{ label: "Booked", value: 612 }
|
|
171
|
+
],
|
|
172
|
+
segments: [
|
|
173
|
+
{ label: "Leisure", value: 46 },
|
|
174
|
+
{ label: "Business", value: 28 },
|
|
175
|
+
{ label: "Groups", value: 14 },
|
|
176
|
+
{ label: "Long stay", value: 12 }
|
|
177
|
+
],
|
|
178
|
+
arrivals: [
|
|
179
|
+
{ guest: "Elena Duarte", room: "204", time: "14:00", nights: 3, vip: !0, note: "Anniversary, late arrival" },
|
|
180
|
+
{ guest: "Aiko Tanaka", room: "102", time: "15:30", nights: 5 },
|
|
181
|
+
{ guest: "The Okafor family", room: "301", time: "16:00", nights: 6, note: "Baby cot", done: !0 },
|
|
182
|
+
{ guest: "David Cohen", room: "106", time: "18:45", nights: 2 }
|
|
183
|
+
],
|
|
184
|
+
departures: [
|
|
185
|
+
{ guest: "Hans Müller", room: "203", time: "11:00", balance: "€0", done: !0 },
|
|
186
|
+
{ guest: "Priya Nair", room: "302", time: "12:00", balance: "€48" },
|
|
187
|
+
{ guest: "Lucas Silva", room: "105", time: "12:00", balance: "€0" }
|
|
188
|
+
],
|
|
189
|
+
inHouse: [
|
|
190
|
+
{ guest: "James Whitfield", room: "201", until: y.labels[6] },
|
|
191
|
+
{ guest: "Mei Chen", room: "304", until: y.labels[5] },
|
|
192
|
+
{ guest: "Nora Lindqvist", room: "205", until: y.labels[3] }
|
|
193
|
+
],
|
|
194
|
+
activity: [
|
|
195
|
+
{ title: "Check-in completed", desc: "The Okafor family · Suite 301", time: "09:42", status: "done" },
|
|
196
|
+
{ title: "Payment captured", desc: "MR-2840 · €890 · Visa", time: "09:15", status: "done" },
|
|
197
|
+
{ title: "Room 104 out of order", desc: "Plumbing — technician on site", time: "08:50", status: "active" },
|
|
198
|
+
{ title: "Rate update pushed", desc: "Weekend +8% on all channels", time: "08:05", status: "pending" }
|
|
199
|
+
],
|
|
200
|
+
notifications: [
|
|
201
|
+
{ title: "New booking from Booking.com", text: "Deluxe King · 3 nights · €528", time: "2 min ago", unread: !0, tone: "success" },
|
|
202
|
+
{ title: "Room 104 out of order", text: "Plumbing repair scheduled", time: "1 h ago", unread: !0, tone: "warning" },
|
|
203
|
+
{ title: "Weekly report ready", text: "Occupancy up 6.2% vs last week", time: "Yesterday", tone: "info" }
|
|
204
|
+
],
|
|
205
|
+
guests: C.slice(0, 12).map(([e, r], n) => ({
|
|
206
|
+
guest: { name: e, sub: `${e.toLowerCase().replace(/[^a-z]+/g, ".").replace(/^\.|\.$/g, "")}@mail.com` },
|
|
207
|
+
country: r,
|
|
208
|
+
stays: [7, 3, 1, 2, 4, 9, 1, 2, 5, 1, 3, 6][n],
|
|
209
|
+
spend: [4820, 2140, 476, 980, 1730, 6120, 290, 1880, 2410, 340, 1290, 3980][n],
|
|
210
|
+
tier: ["Gold", "Silver", "Member", "Member", "Silver", "Platinum", "Member", "Silver", "Gold", "Member", "Silver", "Gold"][n],
|
|
211
|
+
tags: [["VIP", "Anniversary"], ["Business"], ["First stay"], ["Repeat"], ["Spa"], ["VIP", "Long stay"], [], ["Family"], ["Business"], [], ["Repeat"], ["VIP"]][n]
|
|
212
|
+
})),
|
|
213
|
+
team: [
|
|
214
|
+
{ name: "Lucía Ortega", email: "lucia@mirador.com", role: "Owner", status: "active", you: !0 },
|
|
215
|
+
{ name: "Daniel Kim", email: "daniel@mirador.com", role: "Manager", status: "active" },
|
|
216
|
+
{ name: "Rosa Jiménez", email: "rosa@mirador.com", role: "Housekeeping", status: "active" },
|
|
217
|
+
{ name: "Omar Haddad", email: "omar@mirador.com", role: "Front desk", status: "invited" }
|
|
218
|
+
]
|
|
219
|
+
};
|
|
220
|
+
function b({
|
|
221
|
+
title: e,
|
|
222
|
+
description: r,
|
|
223
|
+
current: n = "dashboard",
|
|
224
|
+
data: i = m,
|
|
225
|
+
routes: o = u,
|
|
226
|
+
theme: s = "light",
|
|
227
|
+
noindex: l = !0,
|
|
228
|
+
lang: d = "en",
|
|
229
|
+
children: E
|
|
230
|
+
}) {
|
|
231
|
+
const B = i.reservations.filter((p) => p.status === "Pending").length, I = i.housekeeping.filter((p) => p.status === "dirty").length, H = [
|
|
232
|
+
{ items: [
|
|
233
|
+
{ label: "Dashboard", href: o.dashboard, icon: "dashboard" },
|
|
234
|
+
{ label: "Reservations", href: o.reservations, icon: "calendar", badge: B || void 0 },
|
|
235
|
+
{ label: "Rooms", href: o.rooms, icon: "bed", badge: I || void 0 },
|
|
236
|
+
{ label: "Guests", href: o.guests, icon: "users" }
|
|
237
|
+
] },
|
|
238
|
+
{ label: "Insights", items: [{ label: "Reports", href: o.reports, icon: "chart" }] },
|
|
239
|
+
{ label: "Workspace", items: [{ label: "Settings", href: o.settings, icon: "settings" }] }
|
|
240
|
+
], _ = o[n], N = R(!1);
|
|
241
|
+
return x(() => {
|
|
242
|
+
if (N.current) return;
|
|
243
|
+
N.current = !0, document.documentElement.hasAttribute("lang") || document.documentElement.setAttribute("lang", String(d)), document.documentElement.classList.add(..."theme-lobby".split(/\s+/).filter(Boolean)), document.documentElement.hasAttribute("data-theme") || document.documentElement.setAttribute("data-theme", String(s === "auto" ? "light" : s)), document.body.classList.add(..."lobby".split(/\s+/).filter(Boolean));
|
|
244
|
+
const { initial: p } = { initial: s };
|
|
245
|
+
(function() {
|
|
246
|
+
var g = p;
|
|
247
|
+
try {
|
|
248
|
+
g = localStorage.getItem("ack-theme") || g;
|
|
249
|
+
} catch {
|
|
250
|
+
}
|
|
251
|
+
g === "auto" && (g = matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"), document.documentElement.dataset.theme = g;
|
|
252
|
+
})();
|
|
253
|
+
}, []), /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(c, { children: [
|
|
254
|
+
/* @__PURE__ */ a(c, { children: [
|
|
255
|
+
/* @__PURE__ */ t("title", { children: `${e} · ${i.workspace.name} — ${i.product}` }),
|
|
256
|
+
r && /* @__PURE__ */ t("meta", { name: "description", content: r }),
|
|
257
|
+
l && /* @__PURE__ */ t("meta", { name: "robots", content: "noindex, follow" })
|
|
258
|
+
] }),
|
|
259
|
+
/* @__PURE__ */ a(c, { children: [
|
|
260
|
+
/* @__PURE__ */ t("a", { className: "lobby__skip", href: "#main", children: "Skip to content" }),
|
|
261
|
+
/* @__PURE__ */ a("div", { className: "lobby__shell", children: [
|
|
262
|
+
/* @__PURE__ */ t(G, { workspace: i.workspace, groups: H, currentHref: _, promo: { title: "Channel manager", text: "4 of 5 channels in sync", href: o.settings, cta: "Connect Airbnb", progress: 80 } }),
|
|
263
|
+
/* @__PURE__ */ a("div", { className: "lobby__main", children: [
|
|
264
|
+
/* @__PURE__ */ t(W, { notifications: i.notifications, user: i.user, userLinks: [{ label: "Your profile", href: o.settings }, { label: "Team & billing", href: `${o.settings}#team` }], signOutHref: o.signIn }),
|
|
265
|
+
/* @__PURE__ */ t("main", { id: "main", className: "lobby__content", tabIndex: -1, children: E })
|
|
266
|
+
] })
|
|
267
|
+
] })
|
|
268
|
+
] })
|
|
269
|
+
] }) });
|
|
270
|
+
}
|
|
271
|
+
function Te({ routes: e = u, theme: r = "light", noindex: n = !1 }) {
|
|
272
|
+
const i = R(!1);
|
|
273
|
+
return x(() => {
|
|
274
|
+
var s;
|
|
275
|
+
if (i.current) return;
|
|
276
|
+
i.current = !0, document.documentElement.hasAttribute("lang") || document.documentElement.setAttribute("lang", "en"), document.documentElement.classList.add(..."theme-lobby".split(/\s+/).filter(Boolean)), document.documentElement.hasAttribute("data-theme") || document.documentElement.setAttribute("data-theme", String(r === "auto" ? "light" : r)), document.body.classList.add(..."lobby lobby--site".split(/\s+/).filter(Boolean));
|
|
277
|
+
const { initial: o } = { initial: r };
|
|
278
|
+
(function() {
|
|
279
|
+
var l = o;
|
|
280
|
+
try {
|
|
281
|
+
l = localStorage.getItem("ack-theme") || l;
|
|
282
|
+
} catch {
|
|
283
|
+
}
|
|
284
|
+
l === "auto" && (l = matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"), document.documentElement.dataset.theme = l;
|
|
285
|
+
})(), (s = document.querySelector("[data-site-theme]")) == null || s.addEventListener("click", () => {
|
|
286
|
+
const l = document.documentElement, d = l.dataset.theme === "light" ? "dark" : "light";
|
|
287
|
+
l.dataset.theme = d;
|
|
288
|
+
try {
|
|
289
|
+
window.localStorage.setItem("ack-theme", d);
|
|
290
|
+
} catch {
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
}, []), /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(c, { children: [
|
|
294
|
+
/* @__PURE__ */ a(c, { children: [
|
|
295
|
+
/* @__PURE__ */ t("title", { "data-rk-757ecd": "", children: "Lobby — the operating system for independent hotels" }),
|
|
296
|
+
/* @__PURE__ */ t("meta", { name: "description", content: "Reservations, housekeeping, guest CRM and revenue reports in one calm workspace. Built for independent hotels.", "data-rk-757ecd": "" }),
|
|
297
|
+
n && /* @__PURE__ */ t("meta", { name: "robots", content: "noindex, follow", "data-rk-757ecd": "" })
|
|
298
|
+
] }),
|
|
299
|
+
/* @__PURE__ */ a(c, { children: [
|
|
300
|
+
/* @__PURE__ */ t("a", { className: "lobby__skip", href: "#main", "data-rk-757ecd": "", children: "Skip to content" }),
|
|
301
|
+
/* @__PURE__ */ t("header", { className: "site-nav", "data-rk-757ecd": "", children: /* @__PURE__ */ a("div", { className: "site-nav__inner", "data-rk-757ecd": "", children: [
|
|
302
|
+
/* @__PURE__ */ a("a", { className: "site-nav__brand", href: e.landing, "data-rk-757ecd": "", children: [
|
|
303
|
+
/* @__PURE__ */ t("span", { "aria-hidden": "true", "data-rk-757ecd": "", children: "L" }),
|
|
304
|
+
"Lobby"
|
|
305
|
+
] }),
|
|
306
|
+
/* @__PURE__ */ t("nav", { "aria-label": "Main", "data-rk-757ecd": "", children: /* @__PURE__ */ a("ul", { "data-rk-757ecd": "", children: [
|
|
307
|
+
/* @__PURE__ */ t("li", { "data-rk-757ecd": "", children: /* @__PURE__ */ t("a", { href: "#features", "data-rk-757ecd": "", children: "Product" }) }),
|
|
308
|
+
/* @__PURE__ */ t("li", { "data-rk-757ecd": "", children: /* @__PURE__ */ t("a", { href: "#how", "data-rk-757ecd": "", children: "How it works" }) }),
|
|
309
|
+
/* @__PURE__ */ t("li", { "data-rk-757ecd": "", children: /* @__PURE__ */ t("a", { href: "#pricing", "data-rk-757ecd": "", children: "Pricing" }) }),
|
|
310
|
+
/* @__PURE__ */ t("li", { "data-rk-757ecd": "", children: /* @__PURE__ */ t("a", { href: "#faq", "data-rk-757ecd": "", children: "FAQ" }) })
|
|
311
|
+
] }) }),
|
|
312
|
+
/* @__PURE__ */ a("div", { className: "site-nav__cta", "data-rk-757ecd": "", children: [
|
|
313
|
+
/* @__PURE__ */ t("button", { type: "button", className: "site-nav__theme", "aria-label": "Switch theme", "data-site-theme": !0, "data-rk-757ecd": "", children: /* @__PURE__ */ a("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": "true", "data-rk-757ecd": "", children: [
|
|
314
|
+
/* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "8", "data-rk-757ecd": "" }),
|
|
315
|
+
/* @__PURE__ */ t("path", { d: "M12 4a8 8 0 0 1 0 16z", fill: "currentColor", "data-rk-757ecd": "" })
|
|
316
|
+
] }) }),
|
|
317
|
+
/* @__PURE__ */ t("a", { className: "site-nav__link", href: e.signIn, "data-rk-757ecd": "", children: "Sign in" }),
|
|
318
|
+
/* @__PURE__ */ t("a", { className: "site-nav__btn", href: e.dashboard, "data-rk-757ecd": "", children: "Open demo" })
|
|
319
|
+
] })
|
|
320
|
+
] }) }),
|
|
321
|
+
/* @__PURE__ */ a("main", { id: "main", tabIndex: -1, "data-rk-757ecd": "", children: [
|
|
322
|
+
/* @__PURE__ */ t(V, { badge: "New · AI rate suggestions", title: "The calm way to run an independent hotel", subtitle: "Reservations, housekeeping, guest profiles and revenue reports in one workspace your whole team will actually enjoy using.", primary: { label: "Start free trial", href: e.signIn }, secondary: { label: "Explore the demo", href: e.dashboard }, variant: "browser", "data-rk-757ecd": "" }),
|
|
323
|
+
/* @__PURE__ */ t(Y, { title: "Trusted by 2,400+ independent hotels", columns: 6, variant: "plain", logos: [{ name: "Casa Mirador" }, { name: "Hotel Alba" }, { name: "The Linden" }, { name: "Nordlys Inn" }, { name: "Villa Sole" }, { name: "Harbour House" }] }),
|
|
324
|
+
/* @__PURE__ */ t("div", { id: "features", "data-rk-757ecd": "", children: /* @__PURE__ */ t(K, { eyebrow: "Everything in one place", title: "Built for the front desk, loved by the back office", subtitle: "Replace spreadsheets, sticky notes and three logins with one fast, accessible workspace.", columns: 3, features: [
|
|
325
|
+
{ icon: "layers", title: "Room rack", text: "Drag-free tape chart for the next 90 days with live occupancy per night." },
|
|
326
|
+
{ icon: "users", title: "Guest CRM", text: "Preferences, stays and notes follow every guest — across every channel." },
|
|
327
|
+
{ icon: "sparkles", title: "Housekeeping board", text: "Clean, dirty, inspecting: rooms update in real time on any device." },
|
|
328
|
+
{ icon: "chart", title: "Revenue reports", text: "Forecasts, booking pace and channel mix without exporting a single CSV." },
|
|
329
|
+
{ icon: "globe", title: "Channel manager", text: "Booking.com, Expedia and Airbnb in sync — no more overbookings." },
|
|
330
|
+
{ icon: "shield", title: "Secure by default", text: "Role-based access, audit log and PCI-compliant payments." }
|
|
331
|
+
] }) }),
|
|
332
|
+
/* @__PURE__ */ t("div", { id: "how", "data-rk-757ecd": "", children: /* @__PURE__ */ t(j, { eyebrow: "Up and running in a day", title: "From signup to first check-in", steps: [
|
|
333
|
+
{ title: "Import your rooms", text: "Upload your room list or connect your current PMS — we map types and rates for you.", time: "10 min" },
|
|
334
|
+
{ title: "Connect your channels", text: "Link Booking.com, Expedia and your website booking engine in a few clicks.", time: "20 min" },
|
|
335
|
+
{ title: "Invite your team", text: "Give front desk, housekeeping and managers exactly the access they need.", time: "5 min" }
|
|
336
|
+
], cta: { label: "Start your free trial", href: e.signIn } }) }),
|
|
337
|
+
/* @__PURE__ */ t(Q, { title: "What hotels see after three months", stats: [
|
|
338
|
+
{ value: 9, prefix: "+", suffix: "%", label: "occupancy" },
|
|
339
|
+
{ value: 38, suffix: "%", label: "less admin time" },
|
|
340
|
+
{ value: 2.4, prefix: "+€", suffix: "k", decimals: 1, label: "direct revenue / month" },
|
|
341
|
+
{ value: 4.9, suffix: "/5", decimals: 1, label: "support rating" }
|
|
342
|
+
] }),
|
|
343
|
+
/* @__PURE__ */ t("div", { id: "pricing", "data-rk-757ecd": "", children: /* @__PURE__ */ t(Z, { title: "Simple pricing, per property", subtitle: "All plans include unlimited reservations, guest profiles and support in your language.", currency: "€", plans: [
|
|
344
|
+
{ name: "Starter", monthly: 69, yearly: 55, description: "Up to 15 rooms", features: ["Room rack & reservations", "Housekeeping board", "Guest CRM", "2 channels"], cta: "Start free", href: e.signIn },
|
|
345
|
+
{ name: "Pro", monthly: 149, yearly: 119, description: "Up to 50 rooms", features: ["Everything in Starter", "Revenue reports", "5 channels", "Team roles & audit log"], cta: "Start free trial", href: e.signIn, featured: !0 },
|
|
346
|
+
{ name: "Business", monthly: 299, yearly: 239, description: "Unlimited rooms", features: ["Everything in Pro", "Multi-property", "API & webhooks", "Dedicated success manager"], cta: "Talk to sales", href: "#" }
|
|
347
|
+
] }) }),
|
|
348
|
+
/* @__PURE__ */ t(X, { title: "Hoteliers on Lobby", items: [
|
|
349
|
+
{ quote: "We replaced three tools with Lobby. Check-in takes half the time and occupancy is up 9% this season.", name: "Lucía Ortega", role: "GM, Hotel Mirador", rating: 5 },
|
|
350
|
+
{ quote: "Housekeeping finally knows which rooms to prioritise. No more radio calls.", name: "Rosa Jiménez", role: "Head of housekeeping, Casa Alba", rating: 5 },
|
|
351
|
+
{ quote: "The reports alone paid for the subscription in the first month.", name: "Daniel Kim", role: "Revenue manager, The Linden", rating: 5 }
|
|
352
|
+
] }),
|
|
353
|
+
/* @__PURE__ */ t("div", { id: "faq", "data-rk-757ecd": "", children: /* @__PURE__ */ t(ee, { title: "Questions, answered", subtitle: "Can’t find what you need? Our team replies in under 2 hours.", support: { label: "Contact support", href: "#" }, items: [
|
|
354
|
+
{ q: "Can I migrate from my current PMS?", a: "Yes. We import rooms, rates, future reservations and guest profiles from the most common systems at no cost." },
|
|
355
|
+
{ q: "Do you charge per booking?", a: "No commissions, ever. You pay a flat monthly price per property." },
|
|
356
|
+
{ q: "Does it work on tablets and phones?", a: "Every screen is responsive and accessible, so housekeeping can update rooms from any device." },
|
|
357
|
+
{ q: "Is my data safe?", a: "Data is encrypted at rest and in transit, hosted in the EU, with daily backups and role-based access." }
|
|
358
|
+
] }) })
|
|
359
|
+
] }),
|
|
360
|
+
/* @__PURE__ */ t(te, { brand: "Lobby", tagline: "The calm operating system for independent hotels.", columns: [
|
|
361
|
+
{ title: "Product", links: [{ label: "Room rack", href: "#features" }, { label: "Housekeeping", href: "#features" }, { label: "Reports", href: "#features" }, { label: "Pricing", href: "#pricing" }] },
|
|
362
|
+
{ title: "Company", links: [{ label: "About", href: "#" }, { label: "Careers", href: "#" }, { label: "Contact", href: "#" }] },
|
|
363
|
+
{ title: "Resources", links: [{ label: "Help center", href: "#" }, { label: "API docs", href: "#" }, { label: "Status", href: "#" }] },
|
|
364
|
+
{ title: "Legal", links: [{ label: "Privacy", href: "#" }, { label: "Terms", href: "#" }, { label: "DPA", href: "#" }] }
|
|
365
|
+
], copyright: `© ${(/* @__PURE__ */ new Date()).getFullYear()} Lobby. Demo template built with React Components Kit.` })
|
|
366
|
+
] })
|
|
367
|
+
] }) });
|
|
368
|
+
}
|
|
369
|
+
function Le({ mode: e = "signin", routes: r = u, theme: n = "light", noindex: i = !0 }) {
|
|
370
|
+
const o = R(!1);
|
|
371
|
+
return x(() => {
|
|
372
|
+
if (o.current) return;
|
|
373
|
+
o.current = !0, document.documentElement.hasAttribute("lang") || document.documentElement.setAttribute("lang", "en"), document.documentElement.classList.add(..."theme-lobby".split(/\s+/).filter(Boolean)), document.documentElement.hasAttribute("data-theme") || document.documentElement.setAttribute("data-theme", String(n === "auto" ? "light" : n)), document.body.classList.add(..."lobby".split(/\s+/).filter(Boolean));
|
|
374
|
+
const { initial: s } = { initial: n };
|
|
375
|
+
(function() {
|
|
376
|
+
var l = s;
|
|
377
|
+
try {
|
|
378
|
+
l = localStorage.getItem("ack-theme") || l;
|
|
379
|
+
} catch {
|
|
380
|
+
}
|
|
381
|
+
l === "auto" && (l = matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"), document.documentElement.dataset.theme = l;
|
|
382
|
+
})();
|
|
383
|
+
}, []), /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(c, { children: [
|
|
384
|
+
/* @__PURE__ */ a(c, { children: [
|
|
385
|
+
/* @__PURE__ */ a("title", { children: [
|
|
386
|
+
e === "signin" ? "Sign in" : "Start your free trial",
|
|
387
|
+
" — Lobby"
|
|
388
|
+
] }),
|
|
389
|
+
i && /* @__PURE__ */ t("meta", { name: "robots", content: "noindex, follow" })
|
|
390
|
+
] }),
|
|
391
|
+
/* @__PURE__ */ t(c, { children: /* @__PURE__ */ t("main", { children: /* @__PURE__ */ t(F, { mode: e, brand: "Lobby", successHref: r.dashboard, switchHref: r.landing }) }) })
|
|
392
|
+
] }) });
|
|
393
|
+
}
|
|
394
|
+
function Me({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
395
|
+
const i = e.housekeeping.filter((s) => s.status === "occupied").length + e.arrivals.length, o = Math.min(100, Math.round(i / e.rooms.length * 100));
|
|
396
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Dashboard", description: "Hotel performance at a glance", current: "dashboard", data: e, routes: r, theme: n, children: [
|
|
397
|
+
/* @__PURE__ */ t(h, { title: "Dashboard", description: `Good morning, ${e.user.name.split(" ")[0]} — here is what is happening at ${e.workspace.name} today.`, actions: [{ label: "Export", icon: "download" }, { label: "New booking", icon: "plus", primary: !0, href: r.reservations }], periods: ["Today", "7 days", "30 days", "Year"], activePeriod: 2 }),
|
|
398
|
+
/* @__PURE__ */ t("div", { className: "lobby-grid lobby-grid--kpis", children: e.kpis.map((s, l) => /* @__PURE__ */ t(f, { label: s.label, value: s.value, change: s.change, invert: s.invert, trend: s.trend, period: "vs last month", variant: "solid" }, l)) }),
|
|
399
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--2-1", children: [
|
|
400
|
+
/* @__PURE__ */ t(ae, { title: "Revenue by department", subtitle: "Weekly, in € thousands", categories: e.revenue.categories, series: e.revenue.series, prefix: "€", suffix: "k", variant: "solid", height: 260 }),
|
|
401
|
+
/* @__PURE__ */ t(re, { prefix: "", title: "Tonight", subtitle: `${i} of ${e.rooms.length} rooms sold`, value: o, max: 100, label: "Occupancy", suffix: "%", variant: "solid" })
|
|
402
|
+
] }),
|
|
403
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--1-1", children: [
|
|
404
|
+
/* @__PURE__ */ t(O, { arrivals: e.arrivals, departures: e.departures, inHouse: e.inHouse }),
|
|
405
|
+
/* @__PURE__ */ t(ne, { prefix: "", title: "Bookings by channel", subtitle: "Share of room nights, last 30 days", slices: e.channels, donut: !0, centerLabel: "Direct 38%", suffix: "%", variant: "solid" })
|
|
406
|
+
] }),
|
|
407
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--2-1", children: [
|
|
408
|
+
/* @__PURE__ */ t(oe, { prefix: "", title: "Occupancy by room type", subtitle: "May – Nov", categories: e.occupancyByType.categories, series: e.occupancyByType.series, suffix: "%", variant: "solid", height: 240 }),
|
|
409
|
+
/* @__PURE__ */ a("section", { className: "lobby-card", "aria-labelledby": "activity-title", children: [
|
|
410
|
+
/* @__PURE__ */ t("h2", { id: "activity-title", className: "lobby-card__title", children: "Live activity" }),
|
|
411
|
+
/* @__PURE__ */ t(ue, { events: e.activity })
|
|
412
|
+
] })
|
|
413
|
+
] })
|
|
414
|
+
] }) });
|
|
415
|
+
}
|
|
416
|
+
function Ee({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
417
|
+
const i = (o) => e.reservations.filter((s) => s.status === o).length;
|
|
418
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Reservations", current: "reservations", data: e, routes: r, theme: n, children: [
|
|
419
|
+
/* @__PURE__ */ t(h, { title: "Reservations", description: `${e.reservations.length} bookings in the next 14 days · ${i("Pending")} waiting for confirmation`, breadcrumb: [{ label: e.workspace.name, href: r.dashboard }, { label: "Reservations" }], actions: [{ label: "Import", icon: "download" }, { label: "New booking", icon: "plus", primary: !0 }], periods: [] }),
|
|
420
|
+
/* @__PURE__ */ t(U, { days: e.days, today: 1, rooms: e.rooms, bookings: e.bookings }),
|
|
421
|
+
/* @__PURE__ */ t(T, { id: "reservations", title: "All reservations", rows: e.reservations, searchPlaceholder: "Search guest, booking or room…", bulkActions: ["Send confirmation", "Export CSV", "Assign rooms"], pageSize: 8, currency: e.currency, locale: e.locale })
|
|
422
|
+
] }) });
|
|
423
|
+
}
|
|
424
|
+
function Be({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
425
|
+
const i = (s) => e.housekeeping.filter((l) => l.status === s).length, o = Array.from(new Set(e.rooms.map((s) => s.type))).map((s) => ({ label: s, value: e.rooms.filter((l) => l.type === s).length }));
|
|
426
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Rooms", current: "rooms", data: e, routes: r, theme: n, children: [
|
|
427
|
+
/* @__PURE__ */ t(h, { title: "Rooms & housekeeping", description: "Tap a dirty room to move it to inspection, then to clean.", breadcrumb: [{ label: e.workspace.name, href: r.dashboard }, { label: "Rooms" }], actions: [{ label: "Assign tasks", icon: "broom" }, { label: "Block room", icon: "door", primary: !0 }], periods: [] }),
|
|
428
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--kpis", children: [
|
|
429
|
+
/* @__PURE__ */ t(f, { label: "Ready to sell", value: String(i("clean")), change: 12, period: "vs yesterday", variant: "solid", size: "sm" }),
|
|
430
|
+
/* @__PURE__ */ t(f, { label: "To clean", value: String(i("dirty")), change: -8, invert: !0, period: "vs yesterday", variant: "solid", size: "sm" }),
|
|
431
|
+
/* @__PURE__ */ t(f, { label: "Occupied", value: String(i("occupied")), change: 4, period: "vs yesterday", variant: "solid", size: "sm" }),
|
|
432
|
+
/* @__PURE__ */ t(f, { label: "Out of order", value: String(i("ooo")), change: 0, invert: !0, period: "vs yesterday", variant: "solid", size: "sm" })
|
|
433
|
+
] }),
|
|
434
|
+
/* @__PURE__ */ t(L, { title: "Inventory by room type", segments: o, total: `${e.rooms.length} rooms`, suffix: " rooms", variant: "solid" }),
|
|
435
|
+
/* @__PURE__ */ t($, { rooms: e.housekeeping, title: "Room board" })
|
|
436
|
+
] }) });
|
|
437
|
+
}
|
|
438
|
+
function Ie({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
439
|
+
const i = e.guests[0];
|
|
440
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Guests", current: "guests", data: e, routes: r, theme: n, children: [
|
|
441
|
+
/* @__PURE__ */ t(h, { title: "Guests", description: `${e.guests.length} profiles · ${e.guests.filter((o) => o.tier === "Gold" || o.tier === "Platinum").length} loyalty members`, breadcrumb: [{ label: e.workspace.name, href: r.dashboard }, { label: "Guests" }], actions: [{ label: "Export", icon: "download" }, { label: "Add guest", icon: "plus", primary: !0 }], periods: [] }),
|
|
442
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--2-1", children: [
|
|
443
|
+
/* @__PURE__ */ t(T, { id: "guests", title: "Guest directory", columns: [
|
|
444
|
+
{ key: "guest", label: "Guest", type: "person", sortable: !0 },
|
|
445
|
+
{ key: "country", label: "Country", sortable: !0 },
|
|
446
|
+
{ key: "tier", label: "Tier", type: "status" },
|
|
447
|
+
{ key: "stays", label: "Stays", type: "number", align: "right", sortable: !0 },
|
|
448
|
+
{ key: "spend", label: "Lifetime", type: "money", align: "right", sortable: !0 },
|
|
449
|
+
{ key: "tags", label: "Tags", type: "tags" }
|
|
450
|
+
], rows: e.guests, statusTones: { Platinum: "info", Gold: "warning", Silver: "default", Member: "default" }, filterKey: "tier", bulkActions: ["Send offer", "Export"], searchPlaceholder: "Search guests…", pageSize: 8, currency: e.currency, locale: e.locale }),
|
|
451
|
+
/* @__PURE__ */ t(q, { guest: { name: i.guest.name, email: i.guest.sub, phone: "+34 612 345 678", country: i.country, since: "Mar 2022" }, tier: i.tier, stats: [{ label: "Stays", value: String(i.stays) }, { label: "Nights", value: "19" }, { label: "Lifetime", value: `€${i.spend.toLocaleString("en-GB")}` }, { label: "Rating", value: "4.9" }] })
|
|
452
|
+
] })
|
|
453
|
+
] }) });
|
|
454
|
+
}
|
|
455
|
+
function He({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
456
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Reports", current: "reports", data: e, routes: r, theme: n, children: [
|
|
457
|
+
/* @__PURE__ */ t(h, { title: "Reports", description: "Revenue, pace and conversion — updated every hour.", breadcrumb: [{ label: e.workspace.name, href: r.dashboard }, { label: "Reports" }], actions: [{ label: "Schedule", icon: "calendar" }, { label: "Download PDF", icon: "download", primary: !0 }], periods: ["30 days", "Quarter", "Year"], activePeriod: 0 }),
|
|
458
|
+
/* @__PURE__ */ t(se, { prefix: "", title: "Occupancy forecast", subtitle: "Actual vs. forecast with 90% confidence", categories: e.forecast.categories, actual: e.forecast.actual, forecast: e.forecast.forecast, suffix: "%", variant: "solid", height: 260 }),
|
|
459
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--1-1", children: [
|
|
460
|
+
/* @__PURE__ */ t(le, { title: "Booking pace", subtitle: "Rooms booked by arrival weekday and lead time", rows: e.pace.rows, columns: e.pace.columns, values: e.pace.values, showValues: !0, variant: "solid" }),
|
|
461
|
+
/* @__PURE__ */ t(ce, { title: "Direct booking funnel", subtitle: "Website, last 30 days", stages: e.funnel, variant: "solid" })
|
|
462
|
+
] }),
|
|
463
|
+
/* @__PURE__ */ a("div", { className: "lobby-grid lobby-grid--1-1", children: [
|
|
464
|
+
/* @__PURE__ */ t(L, { title: "Guest segments", segments: e.segments, total: "Room nights", suffix: "%", variant: "solid" }),
|
|
465
|
+
/* @__PURE__ */ t(ie, { title: "ADR by channel", items: [{ label: "Direct", value: 182 }, { label: "Corporate", value: 171 }, { label: "Booking.com", value: 164 }, { label: "Expedia", value: 158 }, { label: "Airbnb", value: 149 }], highlight: "Direct", prefix: "€", variant: "solid" })
|
|
466
|
+
] }),
|
|
467
|
+
/* @__PURE__ */ t(de, { title: "Month over month", currentLabel: "October", previousLabel: "September", rows: [
|
|
468
|
+
{ label: "Occupancy (%)", current: 84, previous: 79, trend: [70, 74, 79, 84] },
|
|
469
|
+
{ label: "ADR (€)", current: 168, previous: 162, trend: [150, 158, 162, 168] },
|
|
470
|
+
{ label: "RevPAR (€)", current: 141, previous: 128, trend: [105, 117, 128, 141] },
|
|
471
|
+
{ label: "Cancellation rate (%)", current: 3.1, previous: 4.2, invert: !0, trend: [5.1, 4.8, 4.2, 3.1] }
|
|
472
|
+
], variant: "solid" })
|
|
473
|
+
] }) });
|
|
474
|
+
}
|
|
475
|
+
function _e({ data: e = m, routes: r = u, theme: n = "light" }) {
|
|
476
|
+
return /* @__PURE__ */ t(c, { children: /* @__PURE__ */ a(b, { title: "Settings", current: "settings", data: e, routes: r, theme: n, children: [
|
|
477
|
+
/* @__PURE__ */ t(h, { title: "Settings", description: "Manage your profile, property, team and billing.", breadcrumb: [{ label: e.workspace.name, href: r.dashboard }, { label: "Settings" }], actions: [], periods: [], tabs: [
|
|
478
|
+
{ label: "Profile", href: "#profile" },
|
|
479
|
+
{ label: "Property", href: "#property" },
|
|
480
|
+
{ label: "Notifications", href: "#notifications" },
|
|
481
|
+
{ label: "Team", href: "#team", count: e.team.length },
|
|
482
|
+
{ label: "Billing", href: "#billing" }
|
|
483
|
+
], currentTab: "#profile" }),
|
|
484
|
+
/* @__PURE__ */ a("div", { className: "settings", "data-rk-882bc7": "", children: [
|
|
485
|
+
/* @__PURE__ */ t("div", { id: "profile", "data-rk-882bc7": "", children: /* @__PURE__ */ a(w, { id: "set-profile", title: "Your profile", description: "How you appear to your team and in guest messages.", children: [
|
|
486
|
+
/* @__PURE__ */ a("div", { className: "settings__row", "data-rk-882bc7": "", children: [
|
|
487
|
+
/* @__PURE__ */ t(k, { label: "Full name", id: "set-name", name: "name", required: !0, autocomplete: "name", placeholder: " " }),
|
|
488
|
+
/* @__PURE__ */ t(k, { label: "Email", id: "set-email", name: "email", type: "email", required: !0, autocomplete: "email" })
|
|
489
|
+
] }),
|
|
490
|
+
/* @__PURE__ */ a("div", { className: "settings__row", "data-rk-882bc7": "", children: [
|
|
491
|
+
/* @__PURE__ */ t(k, { label: "Job title", id: "set-role", name: "role", autocomplete: "organization-title" }),
|
|
492
|
+
/* @__PURE__ */ t(S, { label: "Language", id: "set-lang", name: "lang", options: [{ label: "English", value: "en" }, { label: "Español", value: "es" }, { label: "Русский", value: "ru" }] })
|
|
493
|
+
] })
|
|
494
|
+
] }) }),
|
|
495
|
+
/* @__PURE__ */ t("div", { id: "property", "data-rk-882bc7": "", children: /* @__PURE__ */ a(w, { id: "set-property", title: "Property", description: "Details used on invoices, confirmations and your booking engine.", children: [
|
|
496
|
+
/* @__PURE__ */ a("div", { className: "settings__row", "data-rk-882bc7": "", children: [
|
|
497
|
+
/* @__PURE__ */ t(k, { label: "Property name", id: "set-prop", name: "property", required: !0 }),
|
|
498
|
+
/* @__PURE__ */ t(S, { label: "Currency", id: "set-cur", name: "currency", options: [{ label: "Euro (€)", value: "EUR" }, { label: "US dollar ($)", value: "USD" }, { label: "Pound (£)", value: "GBP" }] })
|
|
499
|
+
] }),
|
|
500
|
+
/* @__PURE__ */ a("div", { className: "settings__row", "data-rk-882bc7": "", children: [
|
|
501
|
+
/* @__PURE__ */ t(S, { label: "Check-in time", id: "set-in", name: "checkin", options: [{ label: "14:00", value: "14" }, { label: "15:00", value: "15" }, { label: "16:00", value: "16" }] }),
|
|
502
|
+
/* @__PURE__ */ t(S, { label: "Check-out time", id: "set-out", name: "checkout", options: [{ label: "11:00", value: "11" }, { label: "12:00", value: "12" }] })
|
|
503
|
+
] })
|
|
504
|
+
] }) }),
|
|
505
|
+
/* @__PURE__ */ t("div", { id: "notifications", "data-rk-882bc7": "", children: /* @__PURE__ */ a(w, { id: "set-notes", title: "Notifications", description: "Choose what reaches your inbox and phone.", children: [
|
|
506
|
+
/* @__PURE__ */ t(v, { name: "n-bookings", label: "New bookings & cancellations", description: "Instant email for every change from any channel.", checked: !0 }),
|
|
507
|
+
/* @__PURE__ */ t(v, { name: "n-house", label: "Housekeeping alerts", description: "Push notification when a room is out of order.", checked: !0 }),
|
|
508
|
+
/* @__PURE__ */ t(v, { name: "n-reviews", label: "New guest reviews", description: "Daily digest at 9:00.", checked: !1 }),
|
|
509
|
+
/* @__PURE__ */ t(v, { name: "n-report", label: "Weekly performance report", description: "Occupancy, ADR and RevPAR every Monday.", checked: !0 })
|
|
510
|
+
] }) }),
|
|
511
|
+
/* @__PURE__ */ a("div", { id: "team", className: "settings__block", "data-rk-882bc7": "", children: [
|
|
512
|
+
/* @__PURE__ */ a("div", { className: "settings__intro", "data-rk-882bc7": "", children: [
|
|
513
|
+
/* @__PURE__ */ t("h2", { "data-rk-882bc7": "", children: "Team" }),
|
|
514
|
+
/* @__PURE__ */ t("p", { "data-rk-882bc7": "", children: "Invite colleagues and choose what each role can see and do." })
|
|
515
|
+
] }),
|
|
516
|
+
/* @__PURE__ */ t(z, { members: e.team, seats: 10 })
|
|
517
|
+
] }),
|
|
518
|
+
/* @__PURE__ */ a("div", { id: "billing", className: "settings__block", "data-rk-882bc7": "", children: [
|
|
519
|
+
/* @__PURE__ */ a("div", { className: "settings__intro", "data-rk-882bc7": "", children: [
|
|
520
|
+
/* @__PURE__ */ t("h2", { "data-rk-882bc7": "", children: "Plan & billing" }),
|
|
521
|
+
/* @__PURE__ */ t("p", { "data-rk-882bc7": "", children: "Your subscription renews automatically. Change or cancel any time." })
|
|
522
|
+
] }),
|
|
523
|
+
/* @__PURE__ */ t(J, { variant: "accent", upgrade: { label: "Upgrade to Business", href: r.landing + "#pricing" } })
|
|
524
|
+
] })
|
|
525
|
+
] })
|
|
526
|
+
] }) });
|
|
527
|
+
}
|
|
528
|
+
export {
|
|
529
|
+
b as AppLayout,
|
|
530
|
+
Me as DashboardPage,
|
|
531
|
+
Ie as GuestsPage,
|
|
532
|
+
Te as LandingPage,
|
|
533
|
+
He as ReportsPage,
|
|
534
|
+
Ee as ReservationsPage,
|
|
535
|
+
Be as RoomsPage,
|
|
536
|
+
_e as SettingsPage,
|
|
537
|
+
Le as SignInPage,
|
|
538
|
+
m as lobbyData,
|
|
539
|
+
u as saasRoutes
|
|
540
|
+
};
|
package/dist/three.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import { useRef as c, useEffect as s } from "react";
|
|
4
|
+
function f({ className: n = "" }) {
|
|
5
|
+
const r = c(null);
|
|
6
|
+
return s(() => {
|
|
7
|
+
let e, t = !1;
|
|
8
|
+
return Promise.all([import("three"), import("./chunks/galaxy-scene-C854qLoX.js")]).then(([i, { mountGalaxy: l }]) => {
|
|
9
|
+
!t && r.current && (e = l(r.current, i));
|
|
10
|
+
}), () => {
|
|
11
|
+
t = !0, e == null || e();
|
|
12
|
+
};
|
|
13
|
+
}, []), /* @__PURE__ */ a("div", { className: `galaxy-3d-container ${n}`.trim(), "aria-hidden": "true", children: /* @__PURE__ */ a("canvas", { id: "galaxy-3d-canvas", ref: r }) });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
f as Galaxy3D
|
|
17
|
+
};
|