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.
Files changed (472) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +225 -2
  4. package/dist/apexcharts.js +327 -0
  5. package/dist/app.js +21 -0
  6. package/dist/buttons.js +26 -0
  7. package/dist/cards.js +26 -0
  8. package/dist/charts.js +50 -0
  9. package/dist/chunks/ActivityHeatmapGrid-P3FP0D6z.js +416 -0
  10. package/dist/chunks/AnimatedCheckmark-CJEmTxC6.js +19 -0
  11. package/dist/chunks/AnimatedInput-Dt37HZSs.js +21 -0
  12. package/dist/chunks/AuthCard-BkWHMFho.js +1409 -0
  13. package/dist/chunks/Badge-CHkR__dT.js +11 -0
  14. package/dist/chunks/CartPageList-DvsbjjCi.js +331 -0
  15. package/dist/chunks/CartToast-UIJFD2CK.js +570 -0
  16. package/dist/chunks/ChangelogSection-eY4neMby.js +2409 -0
  17. package/dist/chunks/CountdownBanner-CcpsvvE8.js +1263 -0
  18. package/dist/chunks/CtaNewsletterSection-Cl3fLVpQ.js +75 -0
  19. package/dist/chunks/CustomRadioGroup-DAwliU9n.js +26 -0
  20. package/dist/chunks/DiagonalSectionDivider-CwOOEFbn.js +541 -0
  21. package/dist/chunks/FloatingFeedbackWidget-D_0EpalW.js +348 -0
  22. package/dist/chunks/FooterMegaSection-DG1qtKuZ.js +67 -0
  23. package/dist/chunks/HackerDecodeText-hutANQXI.js +289 -0
  24. package/dist/chunks/LogoWallGrid-BEpsn1Gt.js +433 -0
  25. package/dist/chunks/LogoWithGalaxy-q_3-9vGU.js +139 -0
  26. package/dist/chunks/ProductCardMinimal-lQi5vy3-.js +88 -0
  27. package/dist/chunks/QuickJumpDock-DZzwR0vg.js +294 -0
  28. package/dist/chunks/SegmentedBarChart-DEBZURnS.js +384 -0
  29. package/dist/chunks/ShopCategoryHero-BLlWZ-i3.js +695 -0
  30. package/dist/chunks/StackedAreaChart-DF1-3rDG.js +453 -0
  31. package/dist/chunks/StatsTrendCard--nij2Jv0.js +491 -0
  32. package/dist/chunks/StatusTimelineFeed-BRYwz08g.js +62 -0
  33. package/dist/chunks/StepBreadcrumbBar-BGXvx5NX.js +32 -0
  34. package/dist/chunks/StepperInput-Ck_9n2BL.js +30 -0
  35. package/dist/chunks/TagsAutocompleteInput-BdbVqPbF.js +467 -0
  36. package/dist/chunks/TiltGlowButton-BRHwq9Af.js +650 -0
  37. package/dist/chunks/TypingIndicator-DshBNXhx.js +373 -0
  38. package/dist/chunks/WaterfallChart-C6NFbfO0.js +1337 -0
  39. package/dist/chunks/cart-store-u-ScUvte.js +212 -0
  40. package/dist/chunks/chart-tooltip-C7pIc_Su.js +49 -0
  41. package/dist/chunks/galaxy-scene-C854qLoX.js +231 -0
  42. package/dist/data.js +28 -0
  43. package/dist/ecommerce.js +43 -0
  44. package/dist/favicon.svg +14 -0
  45. package/dist/feedback.js +28 -0
  46. package/dist/forms.js +31 -0
  47. package/dist/global.css +254 -0
  48. package/dist/index.js +397 -0
  49. package/dist/layout.js +26 -0
  50. package/dist/logo-animated.svg +46 -0
  51. package/dist/logo.svg +46 -0
  52. package/dist/navigation.js +28 -0
  53. package/dist/overlays.js +27 -0
  54. package/dist/robots.txt +4 -0
  55. package/dist/sections.js +68 -0
  56. package/dist/styles.css +1 -0
  57. package/dist/templates/ecommerce-editorial.js +481 -0
  58. package/dist/templates/ecommerce.js +556 -0
  59. package/dist/templates/saas-hotel.js +540 -0
  60. package/dist/three.js +17 -0
  61. package/dist/tsconfig.build.tsbuildinfo +1 -0
  62. package/dist/types/components/apexcharts.d.ts +3 -0
  63. package/dist/types/components/index.d.ts +15 -0
  64. package/dist/types/components/lib/AnimatedGalaxy.d.ts +8 -0
  65. package/dist/types/components/lib/Galaxy3D.d.ts +15 -0
  66. package/dist/types/components/lib/LogoWithGalaxy.d.ts +8 -0
  67. package/dist/types/components/lib/app/AppSidebar.d.ts +53 -0
  68. package/dist/types/components/lib/app/AppTopbar.d.ts +52 -0
  69. package/dist/types/components/lib/app/ArrivalsBoard.d.ts +45 -0
  70. package/dist/types/components/lib/app/AuthCard.d.ts +45 -0
  71. package/dist/types/components/lib/app/DataTable.d.ts +54 -0
  72. package/dist/types/components/lib/app/GuestProfileCard.d.ts +48 -0
  73. package/dist/types/components/lib/app/HousekeepingBoard.d.ts +38 -0
  74. package/dist/types/components/lib/app/PageHeader.d.ts +45 -0
  75. package/dist/types/components/lib/app/PlanUsageCard.d.ts +44 -0
  76. package/dist/types/components/lib/app/RoomRack.d.ts +42 -0
  77. package/dist/types/components/lib/app/SettingsSection.d.ts +34 -0
  78. package/dist/types/components/lib/app/SwitchRow.d.ts +28 -0
  79. package/dist/types/components/lib/app/TeamMembers.d.ts +33 -0
  80. package/dist/types/components/lib/app/app-icons.d.ts +37 -0
  81. package/dist/types/components/lib/app/index.d.ts +15 -0
  82. package/dist/types/components/lib/buttons/AnimatedIconButton.d.ts +22 -0
  83. package/dist/types/components/lib/buttons/BorderDrawButton.d.ts +19 -0
  84. package/dist/types/components/lib/buttons/CyberpunkButton.d.ts +23 -0
  85. package/dist/types/components/lib/buttons/DoubleBorderButton.d.ts +17 -0
  86. package/dist/types/components/lib/buttons/GhostOutlineButton.d.ts +21 -0
  87. package/dist/types/components/lib/buttons/GlassButton.d.ts +23 -0
  88. package/dist/types/components/lib/buttons/GlowButton.d.ts +19 -0
  89. package/dist/types/components/lib/buttons/LiquidButton.d.ts +19 -0
  90. package/dist/types/components/lib/buttons/LoadingButton.d.ts +20 -0
  91. package/dist/types/components/lib/buttons/MagneticButton.d.ts +21 -0
  92. package/dist/types/components/lib/buttons/MinimalPillButton.d.ts +17 -0
  93. package/dist/types/components/lib/buttons/NeonBorderButton.d.ts +19 -0
  94. package/dist/types/components/lib/buttons/NeumorphicButton.d.ts +21 -0
  95. package/dist/types/components/lib/buttons/PulseButton.d.ts +20 -0
  96. package/dist/types/components/lib/buttons/RetroArcadeButton.d.ts +17 -0
  97. package/dist/types/components/lib/buttons/RetroShadowButton.d.ts +17 -0
  98. package/dist/types/components/lib/buttons/RippleButton.d.ts +17 -0
  99. package/dist/types/components/lib/buttons/ShimmerButton.d.ts +17 -0
  100. package/dist/types/components/lib/buttons/ShinyButton.d.ts +17 -0
  101. package/dist/types/components/lib/buttons/SlideRevealButton.d.ts +20 -0
  102. package/dist/types/components/lib/buttons/ThreeDPushButton.d.ts +19 -0
  103. package/dist/types/components/lib/buttons/TiltGlowButton.d.ts +21 -0
  104. package/dist/types/components/lib/buttons/index.d.ts +22 -0
  105. package/dist/types/components/lib/cards/BlogHorizontalCard.d.ts +17 -0
  106. package/dist/types/components/lib/cards/CyberFeatureCard.d.ts +15 -0
  107. package/dist/types/components/lib/cards/EcommerceProductCard.d.ts +21 -0
  108. package/dist/types/components/lib/cards/GithubRepoCard.d.ts +25 -0
  109. package/dist/types/components/lib/cards/GlassCard.d.ts +19 -0
  110. package/dist/types/components/lib/cards/GlassEventCard.d.ts +17 -0
  111. package/dist/types/components/lib/cards/GlowPortfolioCard.d.ts +17 -0
  112. package/dist/types/components/lib/cards/InteractiveTiltCard.d.ts +13 -0
  113. package/dist/types/components/lib/cards/KanbanItemCard.d.ts +15 -0
  114. package/dist/types/components/lib/cards/MinimalLinkCard.d.ts +13 -0
  115. package/dist/types/components/lib/cards/MusicPlayerMini.d.ts +17 -0
  116. package/dist/types/components/lib/cards/NeumorphicCard.d.ts +13 -0
  117. package/dist/types/components/lib/cards/NotificationCard.d.ts +15 -0
  118. package/dist/types/components/lib/cards/PricingCard.d.ts +17 -0
  119. package/dist/types/components/lib/cards/PricingCompareMiniCard.d.ts +25 -0
  120. package/dist/types/components/lib/cards/ProfileCard.d.ts +17 -0
  121. package/dist/types/components/lib/cards/RetroGameCard.d.ts +15 -0
  122. package/dist/types/components/lib/cards/StatCard.d.ts +15 -0
  123. package/dist/types/components/lib/cards/StatsTrendCard.d.ts +19 -0
  124. package/dist/types/components/lib/cards/TaskKanbanCard.d.ts +17 -0
  125. package/dist/types/components/lib/cards/TestimonialCardClean.d.ts +17 -0
  126. package/dist/types/components/lib/cards/WeatherWidgetCard.d.ts +17 -0
  127. package/dist/types/components/lib/cards/index.d.ts +22 -0
  128. package/dist/types/components/lib/charts/ActivityRings.d.ts +26 -0
  129. package/dist/types/components/lib/charts/AreaChart.d.ts +16 -0
  130. package/dist/types/components/lib/charts/BarChart.d.ts +17 -0
  131. package/dist/types/components/lib/charts/BoxPlotChart.d.ts +26 -0
  132. package/dist/types/components/lib/charts/BubbleChart.d.ts +35 -0
  133. package/dist/types/components/lib/charts/BulletChart.d.ts +29 -0
  134. package/dist/types/components/lib/charts/BumpChart.d.ts +25 -0
  135. package/dist/types/components/lib/charts/CandlestickChart.d.ts +30 -0
  136. package/dist/types/components/lib/charts/ChartFrame.d.ts +43 -0
  137. package/dist/types/components/lib/charts/DivergingBarChart.d.ts +31 -0
  138. package/dist/types/components/lib/charts/DonutChart.d.ts +16 -0
  139. package/dist/types/components/lib/charts/DumbbellChart.d.ts +31 -0
  140. package/dist/types/components/lib/charts/ForecastLineChart.d.ts +30 -0
  141. package/dist/types/components/lib/charts/FunnelChart.d.ts +24 -0
  142. package/dist/types/components/lib/charts/GaugeChart.d.ts +29 -0
  143. package/dist/types/components/lib/charts/GoalProgressChart.d.ts +29 -0
  144. package/dist/types/components/lib/charts/GroupedBarChart.d.ts +32 -0
  145. package/dist/types/components/lib/charts/HeatmapChart.d.ts +29 -0
  146. package/dist/types/components/lib/charts/HistogramChart.d.ts +27 -0
  147. package/dist/types/components/lib/charts/HorizontalBarChart.d.ts +32 -0
  148. package/dist/types/components/lib/charts/KpiStatTile.d.ts +28 -0
  149. package/dist/types/components/lib/charts/KpiTrendGrid.d.ts +27 -0
  150. package/dist/types/components/lib/charts/LineChart.d.ts +38 -0
  151. package/dist/types/components/lib/charts/LinearProgressGauge.d.ts +19 -0
  152. package/dist/types/components/lib/charts/LollipopChart.d.ts +32 -0
  153. package/dist/types/components/lib/charts/MeterGauge.d.ts +32 -0
  154. package/dist/types/components/lib/charts/MetricDeltaTable.d.ts +36 -0
  155. package/dist/types/components/lib/charts/PieChart.d.ts +32 -0
  156. package/dist/types/components/lib/charts/PolarAreaChart.d.ts +27 -0
  157. package/dist/types/components/lib/charts/PopulationPyramid.d.ts +31 -0
  158. package/dist/types/components/lib/charts/PunchCardChart.d.ts +26 -0
  159. package/dist/types/components/lib/charts/RadarChart.d.ts +28 -0
  160. package/dist/types/components/lib/charts/RadarMetricChart.d.ts +20 -0
  161. package/dist/types/components/lib/charts/RadialBarChart.d.ts +27 -0
  162. package/dist/types/components/lib/charts/RangeAreaChart.d.ts +34 -0
  163. package/dist/types/components/lib/charts/RetentionCohortTable.d.ts +27 -0
  164. package/dist/types/components/lib/charts/SankeyChart.d.ts +30 -0
  165. package/dist/types/components/lib/charts/ScatterPlot.d.ts +35 -0
  166. package/dist/types/components/lib/charts/SegmentedBarChart.d.ts +30 -0
  167. package/dist/types/components/lib/charts/SlopeChart.d.ts +33 -0
  168. package/dist/types/components/lib/charts/SparklineChart.d.ts +24 -0
  169. package/dist/types/components/lib/charts/StackedAreaChart.d.ts +34 -0
  170. package/dist/types/components/lib/charts/StackedBarChart.d.ts +33 -0
  171. package/dist/types/components/lib/charts/SunburstChart.d.ts +33 -0
  172. package/dist/types/components/lib/charts/TreemapChart.d.ts +31 -0
  173. package/dist/types/components/lib/charts/WaffleChart.d.ts +26 -0
  174. package/dist/types/components/lib/charts/WaterfallChart.d.ts +32 -0
  175. package/dist/types/components/lib/charts/chart-tooltip.d.ts +1 -0
  176. package/dist/types/components/lib/charts/chart-utils.d.ts +46 -0
  177. package/dist/types/components/lib/charts/index.d.ts +44 -0
  178. package/dist/types/components/lib/data/AccordionGroupGlass.d.ts +6 -0
  179. package/dist/types/components/lib/data/ActivityHeatmapGrid.d.ts +13 -0
  180. package/dist/types/components/lib/data/AvatarGroupStack.d.ts +6 -0
  181. package/dist/types/components/lib/data/CalendarGridView.d.ts +6 -0
  182. package/dist/types/components/lib/data/DataChipsGroup.d.ts +6 -0
  183. package/dist/types/components/lib/data/DescriptionListHoriz.d.ts +6 -0
  184. package/dist/types/components/lib/data/FileTreeView.d.ts +6 -0
  185. package/dist/types/components/lib/data/GanttChartMinimal.d.ts +6 -0
  186. package/dist/types/components/lib/data/GlassTable.d.ts +6 -0
  187. package/dist/types/components/lib/data/KeyValuePillGroup.d.ts +6 -0
  188. package/dist/types/components/lib/data/MetricComparisonRow.d.ts +19 -0
  189. package/dist/types/components/lib/data/PriceCompareTable.d.ts +6 -0
  190. package/dist/types/components/lib/data/ProgressListSmall.d.ts +6 -0
  191. package/dist/types/components/lib/data/RatingBreakdownBar.d.ts +6 -0
  192. package/dist/types/components/lib/data/SparklineStatCard.d.ts +6 -0
  193. package/dist/types/components/lib/data/StatsGridDashboard.d.ts +6 -0
  194. package/dist/types/components/lib/data/StatusTimelineFeed.d.ts +16 -0
  195. package/dist/types/components/lib/data/StepperDataVertical.d.ts +6 -0
  196. package/dist/types/components/lib/data/TagCloudData.d.ts +6 -0
  197. package/dist/types/components/lib/data/TimelineHorizSteps.d.ts +6 -0
  198. package/dist/types/components/lib/data/TreeItemInteractive.d.ts +6 -0
  199. package/dist/types/components/lib/data/UserDirectoryItem.d.ts +6 -0
  200. package/dist/types/components/lib/data/VerticalTimeline.d.ts +6 -0
  201. package/dist/types/components/lib/data/index.d.ts +23 -0
  202. package/dist/types/components/lib/ecommerce/CartDrawer.d.ts +43 -0
  203. package/dist/types/components/lib/ecommerce/CartPageList.d.ts +36 -0
  204. package/dist/types/components/lib/ecommerce/CartToast.d.ts +34 -0
  205. package/dist/types/components/lib/ecommerce/CategoryTiles.d.ts +32 -0
  206. package/dist/types/components/lib/ecommerce/CheckoutForm.d.ts +44 -0
  207. package/dist/types/components/lib/ecommerce/CountdownBanner.d.ts +38 -0
  208. package/dist/types/components/lib/ecommerce/FilterBar.d.ts +48 -0
  209. package/dist/types/components/lib/ecommerce/FilterSidebar.d.ts +42 -0
  210. package/dist/types/components/lib/ecommerce/LiveActivityToast.d.ts +43 -0
  211. package/dist/types/components/lib/ecommerce/OrderSummary.d.ts +39 -0
  212. package/dist/types/components/lib/ecommerce/ProductBuyBox.d.ts +39 -0
  213. package/dist/types/components/lib/ecommerce/ProductCardMinimal.d.ts +38 -0
  214. package/dist/types/components/lib/ecommerce/ProductGallery.d.ts +29 -0
  215. package/dist/types/components/lib/ecommerce/ProductGrid.d.ts +41 -0
  216. package/dist/types/components/lib/ecommerce/ProductMedia.d.ts +30 -0
  217. package/dist/types/components/lib/ecommerce/ProductRating.d.ts +23 -0
  218. package/dist/types/components/lib/ecommerce/ProductToolbar.d.ts +35 -0
  219. package/dist/types/components/lib/ecommerce/PromoBar.d.ts +29 -0
  220. package/dist/types/components/lib/ecommerce/StockIndicator.d.ts +29 -0
  221. package/dist/types/components/lib/ecommerce/StoreHeader.d.ts +54 -0
  222. package/dist/types/components/lib/ecommerce/StoreHero.d.ts +48 -0
  223. package/dist/types/components/lib/ecommerce/StoreProductCard.d.ts +40 -0
  224. package/dist/types/components/lib/ecommerce/TrustBadges.d.ts +24 -0
  225. package/dist/types/components/lib/ecommerce/VariantPicker.d.ts +37 -0
  226. package/dist/types/components/lib/ecommerce/cart-store.d.ts +31 -0
  227. package/dist/types/components/lib/ecommerce/catalog-filter.d.ts +12 -0
  228. package/dist/types/components/lib/ecommerce/index.d.ts +30 -0
  229. package/dist/types/components/lib/ecommerce/product-icons.d.ts +20 -0
  230. package/dist/types/components/lib/ecommerce/types.d.ts +61 -0
  231. package/dist/types/components/lib/feedback/AnimatedCheckmark.d.ts +14 -0
  232. package/dist/types/components/lib/feedback/Badge.d.ts +17 -0
  233. package/dist/types/components/lib/feedback/CircleProgress.d.ts +18 -0
  234. package/dist/types/components/lib/feedback/ConfettiFeedback.d.ts +18 -0
  235. package/dist/types/components/lib/feedback/CyberGlitchAlert.d.ts +14 -0
  236. package/dist/types/components/lib/feedback/EmptyStateCard.d.ts +20 -0
  237. package/dist/types/components/lib/feedback/GlassAlert.d.ts +15 -0
  238. package/dist/types/components/lib/feedback/GlassModal.d.ts +24 -0
  239. package/dist/types/components/lib/feedback/GlassProgress.d.ts +14 -0
  240. package/dist/types/components/lib/feedback/IndicatorBadgeMinimal.d.ts +17 -0
  241. package/dist/types/components/lib/feedback/NeonSpinner.d.ts +16 -0
  242. package/dist/types/components/lib/feedback/ProgressRingCounter.d.ts +22 -0
  243. package/dist/types/components/lib/feedback/PulseDot.d.ts +14 -0
  244. package/dist/types/components/lib/feedback/RatingPill.d.ts +15 -0
  245. package/dist/types/components/lib/feedback/ShakeErrorGroup.d.ts +17 -0
  246. package/dist/types/components/lib/feedback/SimpleTooltip.d.ts +15 -0
  247. package/dist/types/components/lib/feedback/SkeletonList.d.ts +12 -0
  248. package/dist/types/components/lib/feedback/Spotlight.d.ts +15 -0
  249. package/dist/types/components/lib/feedback/StepProgress.d.ts +16 -0
  250. package/dist/types/components/lib/feedback/ToastNotif.d.ts +18 -0
  251. package/dist/types/components/lib/feedback/ToastNotificationGroup.d.ts +22 -0
  252. package/dist/types/components/lib/feedback/TypingIndicator.d.ts +14 -0
  253. package/dist/types/components/lib/feedback/index.d.ts +22 -0
  254. package/dist/types/components/lib/forms/AnimatedInput.d.ts +23 -0
  255. package/dist/types/components/lib/forms/ChipInput.d.ts +17 -0
  256. package/dist/types/components/lib/forms/ColorPickerInput.d.ts +17 -0
  257. package/dist/types/components/lib/forms/CurrencyInput.d.ts +21 -0
  258. package/dist/types/components/lib/forms/CustomRadioGroup.d.ts +21 -0
  259. package/dist/types/components/lib/forms/CyberpunkCheckbox.d.ts +17 -0
  260. package/dist/types/components/lib/forms/DragDropUpload.d.ts +19 -0
  261. package/dist/types/components/lib/forms/ErrorInput.d.ts +19 -0
  262. package/dist/types/components/lib/forms/FloatingPassword.d.ts +17 -0
  263. package/dist/types/components/lib/forms/FormGroupVertical.d.ts +21 -0
  264. package/dist/types/components/lib/forms/GlassInlineToggleGroup.d.ts +21 -0
  265. package/dist/types/components/lib/forms/GlassSlider.d.ts +23 -0
  266. package/dist/types/components/lib/forms/GlassTextarea.d.ts +21 -0
  267. package/dist/types/components/lib/forms/ModernSelect.d.ts +23 -0
  268. package/dist/types/components/lib/forms/NeumorphicSwitch.d.ts +17 -0
  269. package/dist/types/components/lib/forms/OTPInput.d.ts +17 -0
  270. package/dist/types/components/lib/forms/PasswordStrengthInput.d.ts +19 -0
  271. package/dist/types/components/lib/forms/PhoneCountryInput.d.ts +19 -0
  272. package/dist/types/components/lib/forms/RatingStars.d.ts +17 -0
  273. package/dist/types/components/lib/forms/SearchReveal.d.ts +15 -0
  274. package/dist/types/components/lib/forms/SegmentedControl.d.ts +19 -0
  275. package/dist/types/components/lib/forms/SimpleFileInput.d.ts +17 -0
  276. package/dist/types/components/lib/forms/StepperInput.d.ts +23 -0
  277. package/dist/types/components/lib/forms/TagsAutocompleteInput.d.ts +19 -0
  278. package/dist/types/components/lib/forms/index.d.ts +24 -0
  279. package/dist/types/components/lib/galaxy-scene.d.ts +5 -0
  280. package/dist/types/components/lib/layout/BentoGrid3.d.ts +14 -0
  281. package/dist/types/components/lib/layout/CenterFixedBox.d.ts +11 -0
  282. package/dist/types/components/lib/layout/CenteredContainer.d.ts +27 -0
  283. package/dist/types/components/lib/layout/ClusterHorizontal.d.ts +13 -0
  284. package/dist/types/components/lib/layout/DiagonalSectionDivider.d.ts +17 -0
  285. package/dist/types/components/lib/layout/FeatureHero.d.ts +35 -0
  286. package/dist/types/components/lib/layout/FooterCenteredMinimal.d.ts +23 -0
  287. package/dist/types/components/lib/layout/FullBleedSection.d.ts +11 -0
  288. package/dist/types/components/lib/layout/GalleryGrid4.d.ts +11 -0
  289. package/dist/types/components/lib/layout/GlassCardGrid.d.ts +16 -0
  290. package/dist/types/components/lib/layout/GlassSectionHeader.d.ts +30 -0
  291. package/dist/types/components/lib/layout/HolyGrailGrid.d.ts +23 -0
  292. package/dist/types/components/lib/layout/LandingSectionSplit.d.ts +14 -0
  293. package/dist/types/components/lib/layout/MasonryGrid.d.ts +13 -0
  294. package/dist/types/components/lib/layout/MinimalFooterGrid.d.ts +10 -0
  295. package/dist/types/components/lib/layout/ScrollSnapSection.d.ts +12 -0
  296. package/dist/types/components/lib/layout/SectionDividerText.d.ts +23 -0
  297. package/dist/types/components/lib/layout/SidebarLayoutWrapper.d.ts +33 -0
  298. package/dist/types/components/lib/layout/SplitScreenLayout.d.ts +12 -0
  299. package/dist/types/components/lib/layout/StepLayoutVertical.d.ts +9 -0
  300. package/dist/types/components/lib/layout/StickySidebarWrapper.d.ts +35 -0
  301. package/dist/types/components/lib/layout/VerticalStack.d.ts +27 -0
  302. package/dist/types/components/lib/layout/index.d.ts +22 -0
  303. package/dist/types/components/lib/navigation/AnchorSideNav.d.ts +6 -0
  304. package/dist/types/components/lib/navigation/BottomNavMobile.d.ts +6 -0
  305. package/dist/types/components/lib/navigation/BreadcrumbsMinimal.d.ts +6 -0
  306. package/dist/types/components/lib/navigation/BurgerMorphIcon.d.ts +6 -0
  307. package/dist/types/components/lib/navigation/CommandPaletteUI.d.ts +6 -0
  308. package/dist/types/components/lib/navigation/DotNavigationSlider.d.ts +6 -0
  309. package/dist/types/components/lib/navigation/FloatingTabBar.d.ts +6 -0
  310. package/dist/types/components/lib/navigation/GlassNavbar.d.ts +12 -0
  311. package/dist/types/components/lib/navigation/LangSwitcherPill.d.ts +6 -0
  312. package/dist/types/components/lib/navigation/MegaMenuGlass.d.ts +6 -0
  313. package/dist/types/components/lib/navigation/MinimalSidebar.d.ts +6 -0
  314. package/dist/types/components/lib/navigation/PaginationGlass.d.ts +6 -0
  315. package/dist/types/components/lib/navigation/PaginationInfiniteUI.d.ts +6 -0
  316. package/dist/types/components/lib/navigation/QuickJumpDock.d.ts +15 -0
  317. package/dist/types/components/lib/navigation/RadialIconMenu.d.ts +6 -0
  318. package/dist/types/components/lib/navigation/RetroArcadeMenu.d.ts +6 -0
  319. package/dist/types/components/lib/navigation/ScrollProgressTop.d.ts +6 -0
  320. package/dist/types/components/lib/navigation/SimpleFooterGlass.d.ts +6 -0
  321. package/dist/types/components/lib/navigation/StepBreadcrumbBar.d.ts +16 -0
  322. package/dist/types/components/lib/navigation/SubNavbarPills.d.ts +18 -0
  323. package/dist/types/components/lib/navigation/TabUnderline.d.ts +6 -0
  324. package/dist/types/components/lib/navigation/UserProfileNav.d.ts +6 -0
  325. package/dist/types/components/lib/navigation/VerticalTabs.d.ts +6 -0
  326. package/dist/types/components/lib/navigation/index.d.ts +23 -0
  327. package/dist/types/components/lib/overlays/AgeVerificationOverlay.d.ts +6 -0
  328. package/dist/types/components/lib/overlays/BackdropBlurMask.d.ts +6 -0
  329. package/dist/types/components/lib/overlays/BottomSheetMobile.d.ts +6 -0
  330. package/dist/types/components/lib/overlays/CommandDialog.d.ts +6 -0
  331. package/dist/types/components/lib/overlays/ContextMenuOverlay.d.ts +6 -0
  332. package/dist/types/components/lib/overlays/CookieBannerGlass.d.ts +6 -0
  333. package/dist/types/components/lib/overlays/CookiePreferencesDrawer.d.ts +13 -0
  334. package/dist/types/components/lib/overlays/ExitIntentOverlay.d.ts +6 -0
  335. package/dist/types/components/lib/overlays/FloatingFeedbackWidget.d.ts +13 -0
  336. package/dist/types/components/lib/overlays/FloatingTrayActions.d.ts +6 -0
  337. package/dist/types/components/lib/overlays/HelpBubbleOverlay.d.ts +6 -0
  338. package/dist/types/components/lib/overlays/ImageCompareSlider.d.ts +19 -0
  339. package/dist/types/components/lib/overlays/LightboxOverlay.d.ts +6 -0
  340. package/dist/types/components/lib/overlays/LoadingOverlayFull.d.ts +6 -0
  341. package/dist/types/components/lib/overlays/MobileNavOverlay.d.ts +6 -0
  342. package/dist/types/components/lib/overlays/OverlayModal.d.ts +6 -0
  343. package/dist/types/components/lib/overlays/PopoverMenuGlass.d.ts +6 -0
  344. package/dist/types/components/lib/overlays/SearchOverlayFullscreen.d.ts +6 -0
  345. package/dist/types/components/lib/overlays/SideDrawerRight.d.ts +8 -0
  346. package/dist/types/components/lib/overlays/SplashIntroOverlay.d.ts +6 -0
  347. package/dist/types/components/lib/overlays/SpotlightIndicator.d.ts +6 -0
  348. package/dist/types/components/lib/overlays/ToastStackOverlay.d.ts +6 -0
  349. package/dist/types/components/lib/overlays/TooltipActionTray.d.ts +6 -0
  350. package/dist/types/components/lib/overlays/index.d.ts +23 -0
  351. package/dist/types/components/lib/sections/AgencyContactBrief.d.ts +44 -0
  352. package/dist/types/components/lib/sections/AgencyFooterCta.d.ts +46 -0
  353. package/dist/types/components/lib/sections/AgencyHeader.d.ts +37 -0
  354. package/dist/types/components/lib/sections/AgencyHeroKinetic.d.ts +45 -0
  355. package/dist/types/components/lib/sections/AgencyServicesList.d.ts +35 -0
  356. package/dist/types/components/lib/sections/AgencyTeamGrid.d.ts +45 -0
  357. package/dist/types/components/lib/sections/AgencyWorkGrid.d.ts +42 -0
  358. package/dist/types/components/lib/sections/BlogGridSection.d.ts +35 -0
  359. package/dist/types/components/lib/sections/ButtonsShowcase.d.ts +8 -0
  360. package/dist/types/components/lib/sections/CardsShowcase.d.ts +8 -0
  361. package/dist/types/components/lib/sections/CareersOpenings.d.ts +37 -0
  362. package/dist/types/components/lib/sections/ChangelogSection.d.ts +37 -0
  363. package/dist/types/components/lib/sections/ContactGlassForm.d.ts +16 -0
  364. package/dist/types/components/lib/sections/ContactSplitMap.d.ts +36 -0
  365. package/dist/types/components/lib/sections/CtaAppDownload.d.ts +16 -0
  366. package/dist/types/components/lib/sections/CtaGlowBanner.d.ts +20 -0
  367. package/dist/types/components/lib/sections/CtaNewsletterSection.d.ts +28 -0
  368. package/dist/types/components/lib/sections/CtaSplitImage.d.ts +39 -0
  369. package/dist/types/components/lib/sections/DataShowcase.d.ts +8 -0
  370. package/dist/types/components/lib/sections/FaqAccordionSection.d.ts +16 -0
  371. package/dist/types/components/lib/sections/FaqTwoColumn.d.ts +32 -0
  372. package/dist/types/components/lib/sections/FeatureAlternatingRows.d.ts +29 -0
  373. package/dist/types/components/lib/sections/FeatureBentoGrid.d.ts +16 -0
  374. package/dist/types/components/lib/sections/FeatureIconGrid.d.ts +33 -0
  375. package/dist/types/components/lib/sections/FeatureTabsShowcase.d.ts +30 -0
  376. package/dist/types/components/lib/sections/FeatureTimelineFlow.d.ts +16 -0
  377. package/dist/types/components/lib/sections/FeedbackShowcase.d.ts +8 -0
  378. package/dist/types/components/lib/sections/FooterMegaSection.d.ts +40 -0
  379. package/dist/types/components/lib/sections/FormsShowcase.d.ts +8 -0
  380. package/dist/types/components/lib/sections/HeroDashboardPreview.d.ts +32 -0
  381. package/dist/types/components/lib/sections/HeroGlass.d.ts +8 -0
  382. package/dist/types/components/lib/sections/HeroGradient.d.ts +8 -0
  383. package/dist/types/components/lib/sections/HeroMinimalCentered.d.ts +36 -0
  384. package/dist/types/components/lib/sections/HeroShowcaseSplit.d.ts +25 -0
  385. package/dist/types/components/lib/sections/HeroSplit.d.ts +8 -0
  386. package/dist/types/components/lib/sections/HeroTerminal.d.ts +35 -0
  387. package/dist/types/components/lib/sections/HeroWaitlist.d.ts +30 -0
  388. package/dist/types/components/lib/sections/HowItWorksSteps.d.ts +32 -0
  389. package/dist/types/components/lib/sections/IntegrationsGrid.d.ts +28 -0
  390. package/dist/types/components/lib/sections/LayoutShowcase.d.ts +8 -0
  391. package/dist/types/components/lib/sections/LogoCloudSection.d.ts +16 -0
  392. package/dist/types/components/lib/sections/LogoWallGrid.d.ts +28 -0
  393. package/dist/types/components/lib/sections/NavigationShowcase.d.ts +8 -0
  394. package/dist/types/components/lib/sections/OverlaysShowcase.d.ts +8 -0
  395. package/dist/types/components/lib/sections/PricingComparisonMatrix.d.ts +16 -0
  396. package/dist/types/components/lib/sections/PricingSinglePlan.d.ts +37 -0
  397. package/dist/types/components/lib/sections/PricingTierCards.d.ts +16 -0
  398. package/dist/types/components/lib/sections/PricingToggleCards.d.ts +36 -0
  399. package/dist/types/components/lib/sections/ShopCategoryHero.d.ts +41 -0
  400. package/dist/types/components/lib/sections/ShopCollectionMosaic.d.ts +37 -0
  401. package/dist/types/components/lib/sections/ShopFooterWordmark.d.ts +38 -0
  402. package/dist/types/components/lib/sections/ShopHeaderEditorial.d.ts +61 -0
  403. package/dist/types/components/lib/sections/ShopHeroEditorial.d.ts +45 -0
  404. package/dist/types/components/lib/sections/ShopLookbook.d.ts +47 -0
  405. package/dist/types/components/lib/sections/ShopNewsletterEditorial.d.ts +33 -0
  406. package/dist/types/components/lib/sections/ShopProductRail.d.ts +41 -0
  407. package/dist/types/components/lib/sections/ShopReviewsEditorial.d.ts +34 -0
  408. package/dist/types/components/lib/sections/ShopValuesMarquee.d.ts +28 -0
  409. package/dist/types/components/lib/sections/StatsCounterBand.d.ts +30 -0
  410. package/dist/types/components/lib/sections/StatsDashboardSection.d.ts +31 -0
  411. package/dist/types/components/lib/sections/StatsMetricShowcase.d.ts +16 -0
  412. package/dist/types/components/lib/sections/TeamGridSection.d.ts +16 -0
  413. package/dist/types/components/lib/sections/TestimonialCarousel.d.ts +26 -0
  414. package/dist/types/components/lib/sections/TestimonialFeatured.d.ts +34 -0
  415. package/dist/types/components/lib/sections/TestimonialGridSection.d.ts +15 -0
  416. package/dist/types/components/lib/sections/TestimonialWallGlass.d.ts +16 -0
  417. package/dist/types/components/lib/sections/TypographyShowcase.d.ts +8 -0
  418. package/dist/types/components/lib/sections/index.d.ts +60 -0
  419. package/dist/types/components/lib/templates/ecommerce/StoreCategoryPage.d.ts +28 -0
  420. package/dist/types/components/lib/templates/ecommerce/StoreCheckoutPage.d.ts +25 -0
  421. package/dist/types/components/lib/templates/ecommerce/StoreHomePage.d.ts +25 -0
  422. package/dist/types/components/lib/templates/ecommerce/StoreLayout.d.ts +41 -0
  423. package/dist/types/components/lib/templates/ecommerce/StoreProductPage.d.ts +28 -0
  424. package/dist/types/components/lib/templates/ecommerce/data.d.ts +49 -0
  425. package/dist/types/components/lib/templates/ecommerce/index.d.ts +7 -0
  426. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialBagPage.d.ts +25 -0
  427. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialCheckoutPage.d.ts +25 -0
  428. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialHomePage.d.ts +25 -0
  429. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialLayout.d.ts +36 -0
  430. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialProductPage.d.ts +29 -0
  431. package/dist/types/components/lib/templates/ecommerce-editorial/EditorialShopPage.d.ts +28 -0
  432. package/dist/types/components/lib/templates/ecommerce-editorial/data.d.ts +50 -0
  433. package/dist/types/components/lib/templates/ecommerce-editorial/index.d.ts +8 -0
  434. package/dist/types/components/lib/templates/saas-hotel/AppLayout.d.ts +30 -0
  435. package/dist/types/components/lib/templates/saas-hotel/DashboardPage.d.ts +20 -0
  436. package/dist/types/components/lib/templates/saas-hotel/GuestsPage.d.ts +20 -0
  437. package/dist/types/components/lib/templates/saas-hotel/LandingPage.d.ts +24 -0
  438. package/dist/types/components/lib/templates/saas-hotel/ReportsPage.d.ts +20 -0
  439. package/dist/types/components/lib/templates/saas-hotel/ReservationsPage.d.ts +20 -0
  440. package/dist/types/components/lib/templates/saas-hotel/RoomsPage.d.ts +20 -0
  441. package/dist/types/components/lib/templates/saas-hotel/SettingsPage.d.ts +21 -0
  442. package/dist/types/components/lib/templates/saas-hotel/SignInPage.d.ts +23 -0
  443. package/dist/types/components/lib/templates/saas-hotel/data.d.ts +224 -0
  444. package/dist/types/components/lib/templates/saas-hotel/index.d.ts +11 -0
  445. package/dist/types/components/lib/typography/AnimatedCounterText.d.ts +19 -0
  446. package/dist/types/components/lib/typography/AnimatedUnderlineLink.d.ts +9 -0
  447. package/dist/types/components/lib/typography/BackgroundClipMask.d.ts +8 -0
  448. package/dist/types/components/lib/typography/CodeInlineGlass.d.ts +8 -0
  449. package/dist/types/components/lib/typography/CurvedPathHeading.d.ts +15 -0
  450. package/dist/types/components/lib/typography/CyberpunkGlitchText.d.ts +7 -0
  451. package/dist/types/components/lib/typography/DropCapParagraph.d.ts +8 -0
  452. package/dist/types/components/lib/typography/FadedVerticalText.d.ts +8 -0
  453. package/dist/types/components/lib/typography/FloatingTextLabel.d.ts +8 -0
  454. package/dist/types/components/lib/typography/GlassBlockQuote.d.ts +8 -0
  455. package/dist/types/components/lib/typography/GlassTextReveal.d.ts +8 -0
  456. package/dist/types/components/lib/typography/GradientHeading.d.ts +11 -0
  457. package/dist/types/components/lib/typography/GradientTextMarquee.d.ts +15 -0
  458. package/dist/types/components/lib/typography/GradientUnderlineLink.d.ts +8 -0
  459. package/dist/types/components/lib/typography/HackerDecodeText.d.ts +15 -0
  460. package/dist/types/components/lib/typography/KbdIndicator.d.ts +8 -0
  461. package/dist/types/components/lib/typography/LetterSpacingWide.d.ts +8 -0
  462. package/dist/types/components/lib/typography/MinimalListMarkers.d.ts +8 -0
  463. package/dist/types/components/lib/typography/MonospaceStatLine.d.ts +8 -0
  464. package/dist/types/components/lib/typography/NeonTextHighlight.d.ts +8 -0
  465. package/dist/types/components/lib/typography/ShadowRevealText.d.ts +8 -0
  466. package/dist/types/components/lib/typography/StrokeHeadingOutline.d.ts +8 -0
  467. package/dist/types/components/lib/typography/Text3DLayer.d.ts +8 -0
  468. package/dist/types/components/lib/typography/TypewriterText.d.ts +8 -0
  469. package/dist/types/components/lib/typography/index.d.ts +24 -0
  470. package/dist/types/components/three.d.ts +1 -0
  471. package/dist/typography.js +28 -0
  472. package/package.json +237 -4
@@ -0,0 +1,1409 @@
1
+ "use client";
2
+ import { jsxs as t, Fragment as C, jsx as e } from "react/jsx-runtime";
3
+ import { useRef as I, useEffect as D } from "react";
4
+ const ce = {
5
+ dashboard: '<rect x="3" y="3" width="7" height="9" rx="1.5"/><rect x="14" y="3" width="7" height="5" rx="1.5"/><rect x="14" y="12" width="7" height="9" rx="1.5"/><rect x="3" y="16" width="7" height="5" rx="1.5"/>',
6
+ calendar: '<rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/>',
7
+ bed: '<path d="M3 18V8M21 18v-5a3 3 0 0 0-3-3h-7v8M3 14h18"/><circle cx="7" cy="11" r="1.6"/>',
8
+ users: '<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8"/>',
9
+ chart: '<path d="M3 3v18h18"/><path d="m7 15 4-4 3 3 5-6"/>',
10
+ sparkle: '<path d="M12 3l1.9 5.8L20 10l-6.1 1.2L12 17l-1.9-5.8L4 10l6.1-1.2z"/>',
11
+ settings: '<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/>',
12
+ bell: '<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.9 1.9 0 0 0 3.4 0"/>',
13
+ search: '<circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/>',
14
+ wallet: '<rect x="2" y="6" width="20" height="14" rx="2"/><path d="M2 10h20M16 15h2"/>',
15
+ broom: '<path d="M14 4 20 10M9 9l6 6M4 20l5-5M9 15l-2 5 5-2"/><path d="m11 13 7-7"/>',
16
+ door: '<path d="M14 3H6v18h8"/><path d="M14 3l5 2v14l-5 2z"/><path d="M11 12h.01"/>',
17
+ plane: '<path d="M2 16l20-7-20-7 4 7z"/><path d="M6 9h8"/>',
18
+ logout: '<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9"/>',
19
+ plus: '<path d="M12 5v14M5 12h14"/>',
20
+ download: '<path d="M12 3v12M7 10l5 5 5-5M5 21h14"/>',
21
+ filter: '<path d="M3 5h18l-7 8v6l-4 2v-8z"/>',
22
+ more: '<circle cx="5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/>',
23
+ check: '<path d="M20 6 9 17l-5-5"/>',
24
+ x: '<path d="M18 6 6 18M6 6l12 12"/>',
25
+ star: '<path d="M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1L3.2 9.5l6.1-.9z"/>',
26
+ mail: '<rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/>',
27
+ phone: '<path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z"/>',
28
+ key: '<circle cx="7.5" cy="15.5" r="4.5"/><path d="m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3"/>',
29
+ menu: '<path d="M4 6h16M4 12h16M4 18h16"/>',
30
+ chevron: '<path d="m9 18 6-6-6-6"/>',
31
+ sun: '<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',
32
+ moon: '<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',
33
+ building: '<rect x="4" y="2" width="16" height="20" rx="2"/><path d="M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01"/>'
34
+ };
35
+ function B(d) {
36
+ return ce[d ?? "dashboard"] ?? ce.dashboard;
37
+ }
38
+ function F(d) {
39
+ return d.split(/\s+/).filter(Boolean).slice(0, 2).map((r) => r[0].toUpperCase()).join("");
40
+ }
41
+ function z(d) {
42
+ let r = 0;
43
+ for (let n = 0; n < d.length; n++) r = (r * 31 + d.charCodeAt(n)) % 360;
44
+ return r;
45
+ }
46
+ function oe(...d) {
47
+ const r = [], n = (a) => {
48
+ if (a) {
49
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
50
+ else if (Array.isArray(a)) a.forEach(n);
51
+ else if (typeof a == "object")
52
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
53
+ }
54
+ };
55
+ return d.forEach(n), r.join(" ");
56
+ }
57
+ function ge(d) {
58
+ const r = {};
59
+ for (const n of String(d ?? "").split(";")) {
60
+ const a = n.indexOf(":");
61
+ if (a < 0) continue;
62
+ const s = n.slice(0, a).trim();
63
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
64
+ }
65
+ return r;
66
+ }
67
+ function qe({
68
+ workspace: d = { name: "Hotel Mirador", plan: "Pro plan", initials: "HM" },
69
+ groups: r = [
70
+ { items: [
71
+ { label: "Dashboard", href: "#", icon: "dashboard" },
72
+ { label: "Reservations", href: "#reservations", icon: "calendar", badge: 12 },
73
+ { label: "Rooms", href: "#rooms", icon: "bed" },
74
+ { label: "Guests", href: "#guests", icon: "users" }
75
+ ] },
76
+ { label: "Insights", items: [
77
+ { label: "Reports", href: "#reports", icon: "chart" },
78
+ { label: "Revenue", href: "#revenue", icon: "wallet" }
79
+ ] },
80
+ { label: "Account", items: [{ label: "Settings", href: "#settings", icon: "settings" }] }
81
+ ],
82
+ currentHref: n = "#",
83
+ promo: a = { title: "Channel manager", text: "3 of 5 channels connected", href: "#", cta: "Connect more", progress: 60 },
84
+ fullHeight: s = !0,
85
+ collapsible: m = !0,
86
+ variant: y = "surface",
87
+ size: g = "md",
88
+ id: o = "app-sidebar",
89
+ className: b = ""
90
+ }) {
91
+ var u, h;
92
+ const w = I(!1);
93
+ return D(() => {
94
+ w.current || (w.current = !0, document.querySelectorAll("[data-app-sidebar]:not([data-bound])").forEach((l) => {
95
+ l.dataset.bound = "";
96
+ const i = l.querySelector("[data-collapse]"), c = `${l.id}:collapsed`, k = (f) => {
97
+ l.classList.toggle("is-collapsed", f), i == null || i.setAttribute("aria-pressed", String(f)), i == null || i.setAttribute("aria-label", f ? "Expand sidebar" : "Collapse sidebar");
98
+ };
99
+ try {
100
+ k(window.localStorage.getItem(c) === "1");
101
+ } catch {
102
+ }
103
+ i == null || i.addEventListener("click", () => {
104
+ const f = !l.classList.contains("is-collapsed");
105
+ k(f);
106
+ try {
107
+ window.localStorage.setItem(c, f ? "1" : "0");
108
+ } catch {
109
+ }
110
+ });
111
+ const N = l.nextElementSibling, _ = (f) => {
112
+ var E;
113
+ l.classList.toggle("is-open", f), N && (N.hidden = !f), document.querySelectorAll(`[data-sidebar-open="${l.id}"]`).forEach((S) => S.setAttribute("aria-expanded", String(f))), f && ((E = l.querySelector("a, button")) == null || E.focus());
114
+ };
115
+ document.querySelectorAll(`[data-sidebar-open="${l.id}"]`).forEach((f) => f.addEventListener("click", () => _(!l.classList.contains("is-open")))), N == null || N.addEventListener("click", () => _(!1)), document.addEventListener("keydown", (f) => {
116
+ f.key === "Escape" && l.classList.contains("is-open") && _(!1);
117
+ });
118
+ }));
119
+ }, []), /* @__PURE__ */ t(C, { children: [
120
+ /* @__PURE__ */ t("aside", { className: oe(["app-sb", `app-sb--${y}`, `app-sb--${g}`, { "app-sb--inline": !s }, b]), id: o, "data-app-sidebar": !0, "aria-label": "Application", "data-rk-ad73bd": "", children: [
121
+ /* @__PURE__ */ t("div", { className: "app-sb__top", "data-rk-ad73bd": "", children: [
122
+ /* @__PURE__ */ t("a", { className: "app-sb__ws", href: ((h = (u = r[0]) == null ? void 0 : u.items[0]) == null ? void 0 : h.href) ?? "#", "data-rk-ad73bd": "", children: [
123
+ /* @__PURE__ */ e("span", { className: "app-sb__ws-logo", "aria-hidden": "true", "data-rk-ad73bd": "", children: d.initials ?? d.name.slice(0, 2).toUpperCase() }),
124
+ /* @__PURE__ */ t("span", { className: "app-sb__ws-text app-sb__label", "data-rk-ad73bd": "", children: [
125
+ /* @__PURE__ */ e("strong", { "data-rk-ad73bd": "", children: d.name }),
126
+ d.plan && /* @__PURE__ */ e("small", { "data-rk-ad73bd": "", children: d.plan })
127
+ ] })
128
+ ] }),
129
+ m && /* @__PURE__ */ e("button", { className: "app-sb__collapse", type: "button", "aria-label": "Collapse sidebar", "aria-pressed": "false", "data-collapse": !0, "data-rk-ad73bd": "", children: /* @__PURE__ */ t("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-ad73bd": "", children: [
130
+ /* @__PURE__ */ e("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", "data-rk-ad73bd": "" }),
131
+ /* @__PURE__ */ e("path", { d: "M9 3v18", "data-rk-ad73bd": "" })
132
+ ] }) })
133
+ ] }),
134
+ /* @__PURE__ */ e("nav", { className: "app-sb__nav", "aria-label": "Main", "data-rk-ad73bd": "", children: r.map((l, i) => /* @__PURE__ */ t("div", { className: "app-sb__group", "data-rk-ad73bd": "", children: [
135
+ l.label && /* @__PURE__ */ e("p", { className: "app-sb__group-label app-sb__label", "data-rk-ad73bd": "", children: l.label }),
136
+ /* @__PURE__ */ e("ul", { "data-rk-ad73bd": "", children: l.items.map((c, k) => {
137
+ const N = c.href === n;
138
+ return /* @__PURE__ */ e("li", { "data-rk-ad73bd": "", children: /* @__PURE__ */ t("a", { className: oe(["app-sb__link", { "is-active": N }]), href: c.href, "aria-current": N ? "page" : void 0, "data-tip": c.label, "data-rk-ad73bd": "", children: [
139
+ /* @__PURE__ */ e("span", { className: "app-sb__icon", "aria-hidden": "true", "data-rk-ad73bd": "", children: /* @__PURE__ */ e("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.9", strokeLinecap: "round", strokeLinejoin: "round", "data-rk-ad73bd": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B(c.icon) }, "data-rk-ad73bd": "" }) }) }),
140
+ /* @__PURE__ */ e("span", { className: "app-sb__text app-sb__label", "data-rk-ad73bd": "", children: c.label }),
141
+ c.badge !== void 0 && /* @__PURE__ */ e("span", { className: "app-sb__badge app-sb__label", "data-rk-ad73bd": "", children: c.badge })
142
+ ] }) }, k);
143
+ }) })
144
+ ] }, i)) }),
145
+ a && /* @__PURE__ */ t("a", { className: "app-sb__promo app-sb__label", href: a.href, "data-rk-ad73bd": "", children: [
146
+ /* @__PURE__ */ e("strong", { "data-rk-ad73bd": "", children: a.title }),
147
+ a.text && /* @__PURE__ */ e("span", { "data-rk-ad73bd": "", children: a.text }),
148
+ a.progress !== void 0 && /* @__PURE__ */ e("span", { className: "app-sb__meter", "aria-hidden": "true", "data-rk-ad73bd": "", children: /* @__PURE__ */ e("i", { style: ge(`width: ${a.progress}%`), "data-rk-ad73bd": "" }) }),
149
+ a.cta && /* @__PURE__ */ t("em", { "data-rk-ad73bd": "", children: [
150
+ a.cta,
151
+ " →"
152
+ ] })
153
+ ] })
154
+ ] }),
155
+ /* @__PURE__ */ e("div", { className: "app-sb-backdrop", "data-sidebar-backdrop": !0, hidden: !0, "data-rk-ad73bd": "" })
156
+ ] });
157
+ }
158
+ function he(...d) {
159
+ const r = [], n = (a) => {
160
+ if (a) {
161
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
162
+ else if (Array.isArray(a)) a.forEach(n);
163
+ else if (typeof a == "object")
164
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
165
+ }
166
+ };
167
+ return d.forEach(n), r.join(" ");
168
+ }
169
+ function ye(d) {
170
+ const r = {};
171
+ for (const n of String(d ?? "").split(";")) {
172
+ const a = n.indexOf(":");
173
+ if (a < 0) continue;
174
+ const s = n.slice(0, a).trim();
175
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
176
+ }
177
+ return r;
178
+ }
179
+ function je({
180
+ searchPlaceholder: d = "Search guests, bookings, rooms…",
181
+ searchAction: r = "#",
182
+ notifications: n = [
183
+ { title: "New booking from Booking.com", text: "Deluxe King · 3 nights · €612", time: "2 min ago", unread: !0, tone: "success" },
184
+ { title: "Room 204 reported maintenance", text: "Air conditioning not cooling", time: "18 min ago", unread: !0, tone: "warning" },
185
+ { title: "Payout sent", text: "€18,240 to your bank account", time: "1 h ago", tone: "info" }
186
+ ],
187
+ user: a = { name: "Lucía Ortega", role: "General manager", email: "lucia@mirador.com" },
188
+ userLinks: s = [{ label: "Your profile", href: "#" }, { label: "Settings", href: "#" }, { label: "Billing", href: "#" }],
189
+ signOutHref: m = "#",
190
+ sidebarId: y = "app-sidebar",
191
+ themeToggle: g = !0,
192
+ variant: o = "blur",
193
+ className: b = "",
194
+ start: w,
195
+ actions: u
196
+ }) {
197
+ const h = n.filter((c) => c.unread).length, l = z(a.name), i = I(!1);
198
+ return D(() => {
199
+ i.current || (i.current = !0, document.querySelectorAll("[data-app-topbar]:not([data-bound])").forEach((c) => {
200
+ var f, E;
201
+ c.dataset.bound = "";
202
+ const k = Array.from(c.querySelectorAll("[data-dd]")), N = (S) => document.getElementById(S.getAttribute("aria-controls") || ""), _ = (S) => k.forEach((p) => {
203
+ if (p === S) return;
204
+ p.setAttribute("aria-expanded", "false");
205
+ const v = N(p);
206
+ v && (v.hidden = !0);
207
+ });
208
+ k.forEach((S) => S.addEventListener("click", (p) => {
209
+ p.stopPropagation();
210
+ const v = S.getAttribute("aria-expanded") !== "true";
211
+ _(S), S.setAttribute("aria-expanded", String(v));
212
+ const A = N(S);
213
+ A && (A.hidden = !v);
214
+ })), document.addEventListener("click", (S) => {
215
+ c.contains(S.target) || _();
216
+ }), document.addEventListener("keydown", (S) => {
217
+ var p;
218
+ if (S.key === "Escape") {
219
+ const v = k.find((A) => A.getAttribute("aria-expanded") === "true");
220
+ _(), v == null || v.focus();
221
+ }
222
+ (S.metaKey || S.ctrlKey) && S.key.toLowerCase() === "k" && (S.preventDefault(), (p = c.querySelector("[data-search]")) == null || p.focus());
223
+ }), (f = c.querySelector("[data-mark-read]")) == null || f.addEventListener("click", () => {
224
+ var S, p;
225
+ c.querySelectorAll(".app-tb__note.is-unread").forEach((v) => v.classList.remove("is-unread")), (S = c.querySelector("[data-unread]")) == null || S.remove(), (p = c.querySelector('[aria-controls="app-tb-notes"]')) == null || p.setAttribute("aria-label", "Notifications");
226
+ }), (E = c.querySelector("[data-theme-toggle]")) == null || E.addEventListener("click", () => {
227
+ const S = document.documentElement, p = S.dataset.theme === "light" ? "dark" : "light";
228
+ S.dataset.theme = p;
229
+ try {
230
+ window.localStorage.setItem("ack-theme", p);
231
+ } catch {
232
+ }
233
+ });
234
+ }));
235
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("header", { className: he(["app-tb", `app-tb--${o}`, b]), "data-app-topbar": !0, "data-rk-4b9da7": "", children: [
236
+ /* @__PURE__ */ e("button", { className: "app-tb__icon app-tb__menu", type: "button", "aria-label": "Open navigation", "aria-controls": y, "aria-expanded": "false", "data-sidebar-open": y, "data-rk-4b9da7": "", children: /* @__PURE__ */ e("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("menu") }, "data-rk-4b9da7": "" }) }) }),
237
+ /* @__PURE__ */ e("div", { className: "app-tb__start", "data-rk-4b9da7": "", children: w }),
238
+ /* @__PURE__ */ t("form", { className: "app-tb__search", role: "search", action: r, "data-rk-4b9da7": "", children: [
239
+ /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("search") }, "data-rk-4b9da7": "" }) }),
240
+ /* @__PURE__ */ e("label", { className: "sr-only", htmlFor: "app-tb-q", "data-rk-4b9da7": "", children: d }),
241
+ /* @__PURE__ */ e("input", { id: "app-tb-q", name: "q", type: "search", placeholder: d, autoComplete: "off", "data-search": !0, "data-rk-4b9da7": "" }),
242
+ /* @__PURE__ */ e("kbd", { "aria-hidden": "true", "data-rk-4b9da7": "", children: "⌘K" })
243
+ ] }),
244
+ /* @__PURE__ */ t("div", { className: "app-tb__actions", "data-rk-4b9da7": "", children: [
245
+ u,
246
+ g && /* @__PURE__ */ t("button", { className: "app-tb__icon", type: "button", "aria-label": "Switch theme", "data-theme-toggle": !0, "data-rk-4b9da7": "", children: [
247
+ /* @__PURE__ */ e("svg", { className: "i-sun", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("sun") }, "data-rk-4b9da7": "" }) }),
248
+ /* @__PURE__ */ e("svg", { className: "i-moon", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("moon") }, "data-rk-4b9da7": "" }) })
249
+ ] }),
250
+ /* @__PURE__ */ t("div", { className: "app-tb__menu-wrap", "data-rk-4b9da7": "", children: [
251
+ /* @__PURE__ */ t("button", { className: "app-tb__icon", type: "button", "aria-expanded": "false", "aria-controls": "app-tb-notes", "aria-label": h ? `Notifications, ${h} unread` : "Notifications", "data-dd": !0, "data-rk-4b9da7": "", children: [
252
+ /* @__PURE__ */ e("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("bell") }, "data-rk-4b9da7": "" }) }),
253
+ h > 0 && /* @__PURE__ */ e("span", { className: "app-tb__dot", "aria-hidden": "true", "data-unread": !0, "data-rk-4b9da7": "", children: h })
254
+ ] }),
255
+ /* @__PURE__ */ t("div", { className: "app-tb__panel app-tb__panel--notes", id: "app-tb-notes", hidden: !0, "data-panel": !0, "data-rk-4b9da7": "", children: [
256
+ /* @__PURE__ */ t("div", { className: "app-tb__panel-head", "data-rk-4b9da7": "", children: [
257
+ /* @__PURE__ */ e("strong", { "data-rk-4b9da7": "", children: "Notifications" }),
258
+ /* @__PURE__ */ e("button", { type: "button", className: "app-tb__link", "data-mark-read": !0, "data-rk-4b9da7": "", children: "Mark all as read" })
259
+ ] }),
260
+ /* @__PURE__ */ e("ul", { "data-rk-4b9da7": "", children: n.map((c, k) => /* @__PURE__ */ t("li", { className: he(["app-tb__note", `app-tb__note--${c.tone ?? "info"}`, { "is-unread": c.unread }]), "data-rk-4b9da7": "", children: [
261
+ /* @__PURE__ */ e("span", { className: "app-tb__note-dot", "aria-hidden": "true", "data-rk-4b9da7": "" }),
262
+ /* @__PURE__ */ t("span", { className: "app-tb__note-body", "data-rk-4b9da7": "", children: [
263
+ /* @__PURE__ */ e("strong", { "data-rk-4b9da7": "", children: c.title }),
264
+ c.text && /* @__PURE__ */ e("span", { "data-rk-4b9da7": "", children: c.text }),
265
+ /* @__PURE__ */ e("time", { "data-rk-4b9da7": "", children: c.time })
266
+ ] })
267
+ ] }, k)) })
268
+ ] })
269
+ ] }),
270
+ /* @__PURE__ */ t("div", { className: "app-tb__menu-wrap", "data-rk-4b9da7": "", children: [
271
+ /* @__PURE__ */ t("button", { className: "app-tb__user", type: "button", "aria-expanded": "false", "aria-controls": "app-tb-user", "data-dd": !0, "data-rk-4b9da7": "", children: [
272
+ /* @__PURE__ */ e("span", { className: "app-tb__avatar", style: ye(`--h: ${l}`), "aria-hidden": "true", "data-rk-4b9da7": "", children: F(a.name) }),
273
+ /* @__PURE__ */ t("span", { className: "app-tb__who", "data-rk-4b9da7": "", children: [
274
+ /* @__PURE__ */ e("strong", { "data-rk-4b9da7": "", children: a.name }),
275
+ a.role && /* @__PURE__ */ e("small", { "data-rk-4b9da7": "", children: a.role })
276
+ ] }),
277
+ /* @__PURE__ */ e("span", { className: "sr-only", "data-rk-4b9da7": "", children: "Account menu" })
278
+ ] }),
279
+ /* @__PURE__ */ t("div", { className: "app-tb__panel app-tb__panel--user", id: "app-tb-user", hidden: !0, "data-panel": !0, "data-rk-4b9da7": "", children: [
280
+ /* @__PURE__ */ t("div", { className: "app-tb__panel-head app-tb__panel-head--user", "data-rk-4b9da7": "", children: [
281
+ /* @__PURE__ */ e("strong", { "data-rk-4b9da7": "", children: a.name }),
282
+ a.email && /* @__PURE__ */ e("span", { "data-rk-4b9da7": "", children: a.email })
283
+ ] }),
284
+ /* @__PURE__ */ t("ul", { "data-rk-4b9da7": "", children: [
285
+ s.map((c, k) => /* @__PURE__ */ e("li", { "data-rk-4b9da7": "", children: /* @__PURE__ */ e("a", { href: c.href, "data-rk-4b9da7": "", children: c.label }) }, k)),
286
+ /* @__PURE__ */ e("li", { className: "app-tb__sep", "data-rk-4b9da7": "", children: /* @__PURE__ */ t("a", { href: m, "data-rk-4b9da7": "", children: [
287
+ /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-4b9da7": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("logout") }, "data-rk-4b9da7": "" }) }),
288
+ "Sign out"
289
+ ] }) })
290
+ ] })
291
+ ] })
292
+ ] })
293
+ ] })
294
+ ] }) });
295
+ }
296
+ function ue(...d) {
297
+ const r = [], n = (a) => {
298
+ if (a) {
299
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
300
+ else if (Array.isArray(a)) a.forEach(n);
301
+ else if (typeof a == "object")
302
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
303
+ }
304
+ };
305
+ return d.forEach(n), r.join(" ");
306
+ }
307
+ function Re({
308
+ title: d = "Dashboard",
309
+ description: r = "Good morning, Lucía — here is what is happening at Hotel Mirador today.",
310
+ breadcrumb: n = [],
311
+ actions: a = [{ label: "Export", icon: "download" }, { label: "New booking", icon: "plus", primary: !0, href: "#" }],
312
+ periods: s = ["Today", "7 days", "30 days", "Year"],
313
+ activePeriod: m = 2,
314
+ tabs: y = [],
315
+ currentTab: g,
316
+ size: o = "md",
317
+ className: b = ""
318
+ }) {
319
+ const w = I(!1);
320
+ return D(() => {
321
+ w.current || (w.current = !0, document.querySelectorAll("[data-periods]:not([data-bound])").forEach((u) => {
322
+ u.dataset.bound = "";
323
+ const h = Array.from(u.querySelectorAll('[role="radio"]')), l = (i, c = !1) => {
324
+ h.forEach((k, N) => {
325
+ k.setAttribute("aria-checked", String(N === i)), k.tabIndex = N === i ? 0 : -1;
326
+ }), c && h[i].focus(), u.dispatchEvent(new CustomEvent("app:period", { bubbles: !0, detail: { index: i, label: h[i].textContent } }));
327
+ };
328
+ h.forEach((i, c) => {
329
+ i.addEventListener("click", () => l(c)), i.addEventListener("keydown", (k) => {
330
+ const N = k.key === "ArrowRight" || k.key === "ArrowDown" ? 1 : k.key === "ArrowLeft" || k.key === "ArrowUp" ? -1 : 0;
331
+ N && (k.preventDefault(), l((c + N + h.length) % h.length, !0));
332
+ });
333
+ });
334
+ }));
335
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("div", { className: ue(["app-ph", `app-ph--${o}`, b]), "data-rk-7bc64d": "", children: [
336
+ n.length > 0 && /* @__PURE__ */ e("nav", { className: "app-ph__crumbs", "aria-label": "Breadcrumb", "data-rk-7bc64d": "", children: /* @__PURE__ */ e("ol", { "data-rk-7bc64d": "", children: n.map((u, h) => /* @__PURE__ */ e("li", { "data-rk-7bc64d": "", children: u.href && h < n.length - 1 ? /* @__PURE__ */ e("a", { href: u.href, "data-rk-7bc64d": "", children: u.label }) : /* @__PURE__ */ e("span", { "aria-current": "page", "data-rk-7bc64d": "", children: u.label }) }, h)) }) }),
337
+ /* @__PURE__ */ t("div", { className: "app-ph__row", "data-rk-7bc64d": "", children: [
338
+ /* @__PURE__ */ t("div", { className: "app-ph__text", "data-rk-7bc64d": "", children: [
339
+ /* @__PURE__ */ e("h1", { className: "app-ph__title", "data-rk-7bc64d": "", children: d }),
340
+ r && /* @__PURE__ */ e("p", { className: "app-ph__desc", "data-rk-7bc64d": "", children: r })
341
+ ] }),
342
+ /* @__PURE__ */ t("div", { className: "app-ph__tools", "data-rk-7bc64d": "", children: [
343
+ s.length > 0 && /* @__PURE__ */ e("div", { className: "app-ph__periods", role: "radiogroup", "aria-label": "Period", "data-periods": !0, "data-rk-7bc64d": "", children: s.map((u, h) => /* @__PURE__ */ e("button", { type: "button", role: "radio", "aria-checked": h === m ? "true" : "false", tabIndex: h === m ? 0 : -1, "data-i": h, "data-rk-7bc64d": "", children: u }, h)) }),
344
+ a.map((u, h) => {
345
+ const l = u.href ? "a" : "button";
346
+ return /* @__PURE__ */ t(l, { className: ue(["app-ph__btn", { "app-ph__btn--primary": u.primary }]), href: u.href, type: u.href ? void 0 : "button", "data-rk-7bc64d": "", children: [
347
+ u.icon && /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-7bc64d": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B(u.icon) }, "data-rk-7bc64d": "" }) }),
348
+ u.label
349
+ ] }, h);
350
+ })
351
+ ] })
352
+ ] }),
353
+ y.length > 0 && /* @__PURE__ */ e("nav", { className: "app-ph__tabs", "aria-label": "Sections", "data-rk-7bc64d": "", children: y.map((u, h) => /* @__PURE__ */ t("a", { href: u.href, "aria-current": u.href === g ? "page" : void 0, "data-rk-7bc64d": "", children: [
354
+ u.label,
355
+ u.count !== void 0 && /* @__PURE__ */ e("span", { "data-rk-7bc64d": "", children: u.count })
356
+ ] }, h)) })
357
+ ] }) });
358
+ }
359
+ function Z(...d) {
360
+ const r = [], n = (a) => {
361
+ if (a) {
362
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
363
+ else if (Array.isArray(a)) a.forEach(n);
364
+ else if (typeof a == "object")
365
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
366
+ }
367
+ };
368
+ return d.forEach(n), r.join(" ");
369
+ }
370
+ function Ne(d) {
371
+ const r = {};
372
+ for (const n of String(d ?? "").split(";")) {
373
+ const a = n.indexOf(":");
374
+ if (a < 0) continue;
375
+ const s = n.slice(0, a).trim();
376
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
377
+ }
378
+ return r;
379
+ }
380
+ function Be({
381
+ title: d = "Reservations",
382
+ columns: r = [
383
+ { key: "ref", label: "Booking", sortable: !0 },
384
+ { key: "guest", label: "Guest", type: "person", sortable: !0 },
385
+ { key: "room", label: "Room", sortable: !0 },
386
+ { key: "checkIn", label: "Check-in", type: "date", sortable: !0 },
387
+ { key: "nights", label: "Nights", type: "number", align: "right", sortable: !0 },
388
+ { key: "status", label: "Status", type: "status" },
389
+ { key: "total", label: "Total", type: "money", align: "right", sortable: !0 }
390
+ ],
391
+ rows: n = [
392
+ { ref: "MR-2841", guest: { name: "Elena Duarte", sub: "Booking.com" }, room: "204 · Deluxe", checkIn: "2026-11-04", nights: 3, status: "Confirmed", total: 612 },
393
+ { ref: "MR-2840", guest: { name: "James Whitfield", sub: "Direct" }, room: "310 · Suite", checkIn: "2026-11-04", nights: 2, status: "Checked in", total: 890 },
394
+ { ref: "MR-2839", guest: { name: "Aiko Tanaka", sub: "Expedia" }, room: "108 · Standard", checkIn: "2026-11-05", nights: 4, status: "Pending", total: 476 },
395
+ { ref: "MR-2838", guest: { name: "Marco Bellini", sub: "Direct" }, room: "212 · Deluxe", checkIn: "2026-11-06", nights: 1, status: "Cancelled", total: 0 }
396
+ ],
397
+ statusTones: a = { Confirmed: "info", "Checked in": "success", "Checked out": "default", Pending: "warning", Cancelled: "danger", "No show": "danger" },
398
+ filterKey: s = "status",
399
+ selectable: m = !0,
400
+ bulkActions: y = ["Export", "Send email"],
401
+ pageSize: g = 8,
402
+ searchPlaceholder: o = "Search…",
403
+ currency: b = "EUR",
404
+ locale: w = "en-GB",
405
+ emptyText: u = "No results match your filters.",
406
+ id: h = "data-table",
407
+ variant: l = "card",
408
+ density: i = "comfortable",
409
+ className: c = ""
410
+ }) {
411
+ const k = (p) => new Intl.NumberFormat(w, { style: "currency", currency: b, maximumFractionDigits: 0 }).format(p), N = (p) => new Intl.DateTimeFormat(w, { day: "numeric", month: "short", timeZone: "UTC" }).format(/* @__PURE__ */ new Date(`${p}T00:00:00Z`)), _ = s ? Array.from(new Set(n.map((p) => String(p[s])))) : [], f = (p) => r.map((v) => {
412
+ var A, T;
413
+ return v.type === "person" ? `${((A = p[v.key]) == null ? void 0 : A.name) ?? ""} ${((T = p[v.key]) == null ? void 0 : T.sub) ?? ""}` : Array.isArray(p[v.key]) ? p[v.key].join(" ") : p[v.key] ?? "";
414
+ }).join(" ").toLowerCase(), E = (p, v) => p.type === "person" ? (v == null ? void 0 : v.name) ?? "" : v ?? "", S = I(!1);
415
+ return D(() => {
416
+ S.current || (S.current = !0, document.querySelectorAll("[data-table]:not([data-bound])").forEach((p) => {
417
+ var ne, de, se;
418
+ p.dataset.bound = "";
419
+ const v = p.querySelector("[data-body]"), A = Array.from(v.querySelectorAll("[data-row]")), T = Number(p.dataset.pageSize) || 8, $ = p.querySelector("[data-search]"), K = Array.from(p.querySelectorAll("[data-filter]")), G = Array.from(p.querySelectorAll("[data-sort]")), H = p.querySelector("[data-all]"), X = p.querySelector("[data-bulk]"), ke = p.querySelector("[data-pages]");
420
+ let Q = "", ee = "", P = "", U = 1, q = 0;
421
+ function be() {
422
+ return A.filter((x) => (!Q || (x.dataset.search || "").includes(Q)) && (!ee || x.dataset.filterValue === ee));
423
+ }
424
+ function V() {
425
+ var j;
426
+ let x = be();
427
+ if (P) {
428
+ const O = (j = G.find((R) => R.dataset.sort === P)) == null ? void 0 : j.dataset.type, W = `v${P.toLowerCase().replace(/^./, (R) => R.toUpperCase())}`;
429
+ x = [...x].sort((R, _e) => {
430
+ const le = R.dataset[W] ?? "", ie = _e.dataset[W] ?? "";
431
+ return (O === "money" || O === "number" ? Number(le) - Number(ie) : le.localeCompare(ie)) * U;
432
+ });
433
+ } else
434
+ x = [...x].sort((O, W) => Number(O.dataset.index) - Number(W.dataset.index));
435
+ const M = Math.max(1, Math.ceil(x.length / T));
436
+ q = Math.min(q, M - 1);
437
+ const L = x.slice(q * T, q * T + T);
438
+ A.forEach((O) => {
439
+ O.hidden = !0;
440
+ }), v.append(...x), L.forEach((O) => {
441
+ O.hidden = !1;
442
+ }), p.querySelector("[data-count]").textContent = String(x.length), p.querySelector("[data-empty]").hidden = x.length > 0, p.querySelector("[data-range]").textContent = x.length ? `${q * T + 1}–${q * T + L.length} of ${x.length}` : "", ke.replaceChildren(...Array.from({ length: M }, (O, W) => {
443
+ const R = document.createElement("button");
444
+ return R.type = "button", R.className = "dt__page", R.textContent = String(W + 1), R.setAttribute("aria-label", `Page ${W + 1}`), W === q && R.setAttribute("aria-current", "page"), R.addEventListener("click", () => {
445
+ q = W, V();
446
+ }), R;
447
+ })), p.querySelector("[data-prev]").disabled = q === 0, p.querySelector("[data-next]").disabled = q >= M - 1, Y();
448
+ }
449
+ function Y() {
450
+ const M = A.map((L) => L.querySelector("[data-select]")).filter(Boolean).filter((L) => L.checked);
451
+ if (A.forEach((L) => {
452
+ var j;
453
+ return L.classList.toggle("is-selected", !!((j = L.querySelector("[data-select]")) != null && j.checked));
454
+ }), X && (X.hidden = M.length === 0, X.querySelector("[data-selected]").textContent = String(M.length)), H) {
455
+ const L = A.filter((j) => !j.hidden).map((j) => j.querySelector("[data-select]")).filter(Boolean);
456
+ H.checked = L.length > 0 && L.every((j) => j.checked), H.indeterminate = !H.checked && L.some((j) => j.checked);
457
+ }
458
+ }
459
+ $ == null || $.addEventListener("input", () => {
460
+ Q = $.value.trim().toLowerCase(), q = 0, V();
461
+ }), K.forEach((x) => x.addEventListener("click", () => {
462
+ ee = x.dataset.filter || "", K.forEach((M) => M.setAttribute("aria-pressed", String(M === x))), q = 0, V();
463
+ })), G.forEach((x) => x.addEventListener("click", () => {
464
+ P === x.dataset.sort ? U = U === 1 ? -1 : U === -1 ? 0 : 1 : (P = x.dataset.sort || "", U = 1), U === 0 && (P = ""), G.forEach((M) => {
465
+ var L;
466
+ return (L = M.closest("th")) == null ? void 0 : L.setAttribute("aria-sort", M === x && P ? U === 1 ? "ascending" : "descending" : "none");
467
+ }), V();
468
+ })), (ne = p.querySelector("[data-prev]")) == null || ne.addEventListener("click", () => {
469
+ q = Math.max(0, q - 1), V();
470
+ }), (de = p.querySelector("[data-next]")) == null || de.addEventListener("click", () => {
471
+ q += 1, V();
472
+ }), p.addEventListener("change", (x) => {
473
+ x.target.matches("[data-select]") && Y();
474
+ }), H == null || H.addEventListener("change", () => {
475
+ A.filter((x) => !x.hidden).forEach((x) => {
476
+ const M = x.querySelector("[data-select]");
477
+ M && (M.checked = H.checked);
478
+ }), Y();
479
+ }), (se = p.querySelector("[data-clear]")) == null || se.addEventListener("click", () => {
480
+ A.forEach((x) => {
481
+ const M = x.querySelector("[data-select]");
482
+ M && (M.checked = !1);
483
+ }), Y();
484
+ }), V();
485
+ }));
486
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: Z(["dt", `dt--${l}`, `dt--${i}`, c]), "data-table": h, "data-page-size": g, "aria-labelledby": `${h}-title`, "data-rk-bf3c5c": "", children: [
487
+ /* @__PURE__ */ t("div", { className: "dt__toolbar", "data-rk-bf3c5c": "", children: [
488
+ /* @__PURE__ */ t("h2", { className: "dt__title", id: `${h}-title`, "data-rk-bf3c5c": "", children: [
489
+ d,
490
+ " ",
491
+ /* @__PURE__ */ e("span", { className: "dt__count", "aria-live": "polite", "data-rk-bf3c5c": "", children: /* @__PURE__ */ e("span", { "data-count": !0, "data-rk-bf3c5c": "", children: n.length }) })
492
+ ] }),
493
+ /* @__PURE__ */ e("div", { className: "dt__tools", "data-rk-bf3c5c": "", children: /* @__PURE__ */ t("label", { className: "dt__search", "data-rk-bf3c5c": "", children: [
494
+ /* @__PURE__ */ t("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", "data-rk-bf3c5c": "", children: [
495
+ /* @__PURE__ */ e("circle", { cx: "11", cy: "11", r: "7", "data-rk-bf3c5c": "" }),
496
+ /* @__PURE__ */ e("path", { d: "m20 20-3.5-3.5", "data-rk-bf3c5c": "" })
497
+ ] }),
498
+ /* @__PURE__ */ e("span", { className: "sr-only", "data-rk-bf3c5c": "", children: o }),
499
+ /* @__PURE__ */ e("input", { type: "search", placeholder: o, "data-search": !0, "data-rk-bf3c5c": "" })
500
+ ] }) })
501
+ ] }),
502
+ _.length > 1 && /* @__PURE__ */ t("div", { className: "dt__chips", role: "group", "aria-label": "Filter by status", "data-rk-bf3c5c": "", children: [
503
+ /* @__PURE__ */ t("button", { type: "button", className: "dt__chip", "aria-pressed": "true", "data-filter": "", "data-rk-bf3c5c": "", children: [
504
+ "All ",
505
+ /* @__PURE__ */ e("span", { "data-rk-bf3c5c": "", children: n.length })
506
+ ] }),
507
+ _.map((p, v) => /* @__PURE__ */ t("button", { type: "button", className: "dt__chip", "aria-pressed": "false", "data-filter": p, "data-rk-bf3c5c": "", children: [
508
+ p,
509
+ " ",
510
+ /* @__PURE__ */ e("span", { "data-rk-bf3c5c": "", children: n.filter((A) => String(A[s]) === p).length })
511
+ ] }, v))
512
+ ] }),
513
+ m && /* @__PURE__ */ t("div", { className: "dt__bulk", hidden: !0, "data-bulk": !0, "data-rk-bf3c5c": "", children: [
514
+ /* @__PURE__ */ t("span", { "data-rk-bf3c5c": "", children: [
515
+ /* @__PURE__ */ e("strong", { "data-selected": !0, "data-rk-bf3c5c": "", children: "0" }),
516
+ " selected"
517
+ ] }),
518
+ y.map((p, v) => /* @__PURE__ */ e("button", { type: "button", className: "dt__bulk-btn", "data-rk-bf3c5c": "", children: p }, v)),
519
+ /* @__PURE__ */ e("button", { type: "button", className: "dt__bulk-clear", "data-clear": !0, "data-rk-bf3c5c": "", children: "Clear" })
520
+ ] }),
521
+ /* @__PURE__ */ t("div", { className: "dt__scroll", tabIndex: 0, role: "region", "aria-labelledby": `${h}-title`, "data-rk-bf3c5c": "", children: [
522
+ /* @__PURE__ */ t("table", { className: "dt__table", "data-rk-bf3c5c": "", children: [
523
+ /* @__PURE__ */ e("caption", { className: "sr-only", "data-rk-bf3c5c": "", children: d }),
524
+ /* @__PURE__ */ e("thead", { "data-rk-bf3c5c": "", children: /* @__PURE__ */ t("tr", { "data-rk-bf3c5c": "", children: [
525
+ m && /* @__PURE__ */ e("th", { className: "dt__check", scope: "col", "data-rk-bf3c5c": "", children: /* @__PURE__ */ e("input", { type: "checkbox", "aria-label": "Select all rows on this page", "data-all": !0, "data-rk-bf3c5c": "" }) }),
526
+ r.map((p, v) => /* @__PURE__ */ e("th", { scope: "col", className: Z([{ dt__right: p.align === "right" }]), "aria-sort": p.sortable ? "none" : void 0, "data-rk-bf3c5c": "", children: p.sortable ? /* @__PURE__ */ t("button", { type: "button", className: "dt__sort", "data-sort": p.key, "data-type": p.type ?? "text", "data-rk-bf3c5c": "", children: [
527
+ p.label,
528
+ /* @__PURE__ */ e("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-bf3c5c": "", children: /* @__PURE__ */ e("path", { d: "m7 15 5 5 5-5M7 9l5-5 5 5", "data-rk-bf3c5c": "" }) })
529
+ ] }) : p.label }, v))
530
+ ] }) }),
531
+ /* @__PURE__ */ e("tbody", { "data-body": !0, "data-rk-bf3c5c": "", children: n.map((p, v) => /* @__PURE__ */ t("tr", { "data-row": !0, "data-search": f(p), "data-filter-value": s ? String(p[s]) : "", "data-index": v, ...Object.fromEntries(r.map((A) => [`data-v-${A.key.toLowerCase()}`, String(E(A, p[A.key]))])), "data-rk-bf3c5c": "", children: [
532
+ m && /* @__PURE__ */ e("td", { className: "dt__check", "data-rk-bf3c5c": "", children: /* @__PURE__ */ e("input", { type: "checkbox", "aria-label": `Select ${r[0] ? E(r[0], p[r[0].key]) : `row ${v + 1}`}`, "data-select": !0, "data-rk-bf3c5c": "" }) }),
533
+ r.map((A, T) => {
534
+ const $ = p[A.key];
535
+ return /* @__PURE__ */ e("td", { className: Z([{ dt__right: A.align === "right" }]), "data-rk-bf3c5c": "", children: A.type === "person" ? /* @__PURE__ */ t("span", { className: "dt__person", "data-rk-bf3c5c": "", children: [
536
+ /* @__PURE__ */ e("span", { className: "dt__avatar", style: Ne(`--h: ${z(($ == null ? void 0 : $.name) ?? "")}`), "aria-hidden": "true", "data-rk-bf3c5c": "", children: F(($ == null ? void 0 : $.name) ?? "?") }),
537
+ /* @__PURE__ */ t("span", { "data-rk-bf3c5c": "", children: [
538
+ /* @__PURE__ */ e("strong", { "data-rk-bf3c5c": "", children: $ == null ? void 0 : $.name }),
539
+ ($ == null ? void 0 : $.sub) && /* @__PURE__ */ e("small", { "data-rk-bf3c5c": "", children: $.sub })
540
+ ] })
541
+ ] }) : A.type === "status" ? /* @__PURE__ */ t("span", { className: Z(["dt__status", `dt__status--${a[$] ?? "default"}`]), "data-rk-bf3c5c": "", children: [
542
+ /* @__PURE__ */ e("i", { "aria-hidden": "true", "data-rk-bf3c5c": "" }),
543
+ $
544
+ ] }) : A.type === "money" ? k(Number($) || 0) : A.type === "date" ? /* @__PURE__ */ e("time", { dateTime: $, "data-rk-bf3c5c": "", children: N($) }) : A.type === "tags" ? /* @__PURE__ */ e("span", { className: "dt__tags", "data-rk-bf3c5c": "", children: ($ ?? []).map((K, G) => /* @__PURE__ */ e("span", { "data-rk-bf3c5c": "", children: K }, G)) }) : $ }, T);
545
+ })
546
+ ] }, v)) })
547
+ ] }),
548
+ /* @__PURE__ */ e("p", { className: "dt__empty", hidden: !0, "data-empty": !0, "data-rk-bf3c5c": "", children: u })
549
+ ] }),
550
+ /* @__PURE__ */ t("div", { className: "dt__foot", "data-rk-bf3c5c": "", children: [
551
+ /* @__PURE__ */ e("p", { className: "dt__range", "aria-live": "polite", "data-range": !0, "data-rk-bf3c5c": "" }),
552
+ /* @__PURE__ */ t("div", { className: "dt__pager", "data-rk-bf3c5c": "", children: [
553
+ /* @__PURE__ */ e("button", { type: "button", className: "dt__page", "aria-label": "Previous page", "data-prev": !0, "data-rk-bf3c5c": "", children: "‹" }),
554
+ /* @__PURE__ */ e("span", { className: "dt__pages", "data-pages": !0, "data-rk-bf3c5c": "" }),
555
+ /* @__PURE__ */ e("button", { type: "button", className: "dt__page", "aria-label": "Next page", "data-next": !0, "data-rk-bf3c5c": "", children: "›" })
556
+ ] })
557
+ ] })
558
+ ] }) });
559
+ }
560
+ function ae(...d) {
561
+ const r = [], n = (a) => {
562
+ if (a) {
563
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
564
+ else if (Array.isArray(a)) a.forEach(n);
565
+ else if (typeof a == "object")
566
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
567
+ }
568
+ };
569
+ return d.forEach(n), r.join(" ");
570
+ }
571
+ function J(d) {
572
+ const r = {};
573
+ for (const n of String(d ?? "").split(";")) {
574
+ const a = n.indexOf(":");
575
+ if (a < 0) continue;
576
+ const s = n.slice(0, a).trim();
577
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
578
+ }
579
+ return r;
580
+ }
581
+ function Te({
582
+ days: d = ["Mon 3", "Tue 4", "Wed 5", "Thu 6", "Fri 7", "Sat 8", "Sun 9", "Mon 10", "Tue 11", "Wed 12"],
583
+ today: r = 1,
584
+ rooms: n = [
585
+ { id: "101", name: "101", type: "Standard" },
586
+ { id: "102", name: "102", type: "Standard" },
587
+ { id: "201", name: "201", type: "Deluxe" },
588
+ { id: "202", name: "202", type: "Deluxe" },
589
+ { id: "301", name: "301", type: "Suite" }
590
+ ],
591
+ bookings: a = [
592
+ { room: "101", guest: "Elena Duarte", start: 0, nights: 3, status: "checked-in", ref: "MR-2830", channel: "Booking.com" },
593
+ { room: "101", guest: "Tom Becker", start: 4, nights: 2, status: "confirmed", ref: "MR-2852" },
594
+ { room: "102", guest: "Aiko Tanaka", start: 1, nights: 5, status: "confirmed", ref: "MR-2839", channel: "Expedia" },
595
+ { room: "201", guest: "Maintenance", start: 2, nights: 2, status: "blocked" },
596
+ { room: "202", guest: "James Whitfield", start: 0, nights: 2, status: "checked-in", ref: "MR-2840" },
597
+ { room: "202", guest: "Sofía Ramos", start: 3, nights: 4, status: "pending", ref: "MR-2861" },
598
+ { room: "301", guest: "The Okafor family", start: 1, nights: 6, status: "confirmed", ref: "MR-2844", channel: "Direct" }
599
+ ],
600
+ title: s = "Room rack",
601
+ dayWidth: m = 64,
602
+ variant: y = "card",
603
+ className: g = ""
604
+ }) {
605
+ const o = { confirmed: "Confirmed", "checked-in": "Checked in", pending: "Pending", blocked: "Blocked" }, b = Array.from(new Set(n.map((h) => h.type ?? ""))).map((h) => ({ type: h, rooms: n.filter((l) => (l.type ?? "") === h) })), w = d.map((h, l) => a.filter((i) => i.status !== "blocked" && l >= i.start && l < i.start + i.nights).length), u = I(!1);
606
+ return D(() => {
607
+ u.current || (u.current = !0, document.querySelectorAll("[data-rack]:not([data-bound])").forEach((h) => {
608
+ h.dataset.bound = "";
609
+ const l = h.querySelector("[data-detail-out]"), i = Array.from(h.querySelectorAll(".rack__bar"));
610
+ i.forEach((c) => c.addEventListener("click", () => {
611
+ i.forEach((f) => f.removeAttribute("aria-pressed")), c.setAttribute("aria-pressed", "true");
612
+ const k = JSON.parse(c.dataset.detail || "{}"), N = document.createElement("dl");
613
+ N.className = "rack__dl", [
614
+ ["Guest", k.guest],
615
+ ["Room", `${k.room}${k.type ? ` · ${k.type}` : ""}`],
616
+ ["Arrival", k.from],
617
+ ["Nights", String(k.nights)],
618
+ ["Status", k.status],
619
+ ["Booking", k.ref],
620
+ ["Channel", k.channel]
621
+ ].filter(([, f]) => f).forEach(([f, E]) => {
622
+ const S = document.createElement("div"), p = document.createElement("dt");
623
+ p.textContent = f;
624
+ const v = document.createElement("dd");
625
+ v.textContent = E, S.append(p, v), N.append(S);
626
+ }), l.replaceChildren(N);
627
+ }));
628
+ }));
629
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: ae(["rack", `rack--${y}`, g]), style: J(`--day-w: ${m}px; --days: ${d.length}`), "data-rack": !0, "aria-labelledby": "rack-title", "data-rk-0d1031": "", children: [
630
+ /* @__PURE__ */ t("header", { className: "rack__head", "data-rk-0d1031": "", children: [
631
+ /* @__PURE__ */ e("h2", { className: "rack__title", id: "rack-title", "data-rk-0d1031": "", children: s }),
632
+ /* @__PURE__ */ e("ul", { className: "rack__legend", "aria-label": "Legend", "data-rk-0d1031": "", children: Object.keys(o).map((h, l) => /* @__PURE__ */ t("li", { "data-rk-0d1031": "", children: [
633
+ /* @__PURE__ */ e("i", { className: `rack__swatch rack__swatch--${h}`, "aria-hidden": "true", "data-rk-0d1031": "" }),
634
+ o[h]
635
+ ] }, l)) })
636
+ ] }),
637
+ /* @__PURE__ */ e("div", { className: "rack__scroll", tabIndex: 0, role: "region", "aria-label": `${s}, scroll horizontally`, "data-rk-0d1031": "", children: /* @__PURE__ */ t("div", { className: "rack__grid", "data-rk-0d1031": "", children: [
638
+ /* @__PURE__ */ e("div", { className: "rack__corner", "data-rk-0d1031": "", children: "Room" }),
639
+ d.map((h, l) => /* @__PURE__ */ t("div", { className: ae(["rack__day", { "is-today": l === r, "is-weekend": /^(Sat|Sun|Sáb|Dom)/i.test(h) }]), "data-rk-0d1031": "", children: [
640
+ /* @__PURE__ */ e("span", { "data-rk-0d1031": "", children: h }),
641
+ /* @__PURE__ */ t("small", { "data-rk-0d1031": "", children: [
642
+ Math.round(w[l] / Math.max(1, n.length) * 100),
643
+ "%"
644
+ ] })
645
+ ] }, l)),
646
+ b.map((h) => /* @__PURE__ */ t(C, { children: [
647
+ h.type && /* @__PURE__ */ t("div", { className: "rack__group", style: J(`grid-column: 1 / span ${d.length + 1}`), "data-rk-0d1031": "", children: [
648
+ h.type,
649
+ " ",
650
+ /* @__PURE__ */ e("span", { "data-rk-0d1031": "", children: h.rooms.length })
651
+ ] }),
652
+ h.rooms.map((l) => /* @__PURE__ */ t(C, { children: [
653
+ /* @__PURE__ */ e("div", { className: "rack__room", "data-rk-0d1031": "", children: l.name }),
654
+ /* @__PURE__ */ t("div", { className: "rack__lane", style: J(`grid-column: 2 / span ${d.length}`), "data-rk-0d1031": "", children: [
655
+ r >= 0 && /* @__PURE__ */ e("span", { className: "rack__now", style: J(`left: calc(${r} * var(--day-w) + var(--day-w) / 2)`), "aria-hidden": "true", "data-rk-0d1031": "" }),
656
+ a.filter((i) => i.room === l.id).map((i, c) => /* @__PURE__ */ e("button", { type: "button", className: ae(["rack__bar", `rack__bar--${i.status}`]), style: J(`left: calc(${i.start} * var(--day-w) + 3px); width: calc(${Math.min(i.nights, d.length - i.start)} * var(--day-w) - 6px)`), "aria-label": `${i.guest}, room ${l.name}, ${d[i.start]} for ${i.nights} ${i.nights === 1 ? "night" : "nights"}, ${o[i.status]}`, "data-detail": JSON.stringify({ guest: i.guest, room: l.name, type: l.type, from: d[i.start], nights: i.nights, status: o[i.status], ref: i.ref, channel: i.channel }), "data-rk-0d1031": "", children: /* @__PURE__ */ e("span", { "data-rk-0d1031": "", children: i.guest }) }, c))
657
+ ] })
658
+ ] }))
659
+ ] }))
660
+ ] }) }),
661
+ /* @__PURE__ */ e("div", { className: "rack__detail", "aria-live": "polite", "data-detail-out": !0, "data-rk-0d1031": "", children: /* @__PURE__ */ e("p", { className: "rack__hint", "data-rk-0d1031": "", children: "Select a booking to see its details." }) })
662
+ ] }) });
663
+ }
664
+ function te(...d) {
665
+ const r = [], n = (a) => {
666
+ if (a) {
667
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
668
+ else if (Array.isArray(a)) a.forEach(n);
669
+ else if (typeof a == "object")
670
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
671
+ }
672
+ };
673
+ return d.forEach(n), r.join(" ");
674
+ }
675
+ function Ie({
676
+ rooms: d = [
677
+ { number: "101", floor: "Floor 1", type: "Standard", status: "clean" },
678
+ { number: "102", floor: "Floor 1", type: "Standard", status: "occupied", guest: "A. Tanaka" },
679
+ { number: "103", floor: "Floor 1", type: "Standard", status: "dirty", assignee: "Rosa" },
680
+ { number: "104", floor: "Floor 1", type: "Twin", status: "inspecting", assignee: "Luis" },
681
+ { number: "201", floor: "Floor 2", type: "Deluxe", status: "ooo", note: "A/C repair" },
682
+ { number: "202", floor: "Floor 2", type: "Deluxe", status: "occupied", guest: "J. Whitfield" },
683
+ { number: "203", floor: "Floor 2", type: "Deluxe", status: "dirty", assignee: "Rosa" },
684
+ { number: "204", floor: "Floor 2", type: "Deluxe", status: "clean" }
685
+ ],
686
+ title: r = "Housekeeping",
687
+ interactive: n = !0,
688
+ variant: a = "card",
689
+ size: s = "md",
690
+ className: m = ""
691
+ }) {
692
+ const y = { clean: "Clean", dirty: "Dirty", inspecting: "Inspecting", occupied: "Occupied", ooo: "Out of order" }, g = ["clean", "dirty", "inspecting", "occupied", "ooo"], o = Array.from(new Set(d.map((u) => u.floor))), b = Object.fromEntries(g.map((u) => [u, d.filter((h) => h.status === u).length])), w = I(!1);
693
+ return D(() => {
694
+ if (w.current) return;
695
+ w.current = !0;
696
+ const u = { clean: "Clean", dirty: "Dirty", inspecting: "Inspecting", occupied: "Occupied", ooo: "Out of order" }, h = { dirty: "inspecting", inspecting: "clean" };
697
+ document.querySelectorAll("[data-hk]:not([data-bound])").forEach((l) => {
698
+ l.dataset.bound = "";
699
+ const i = Array.from(l.querySelectorAll("[data-f]")), c = l.querySelector("[data-announce]");
700
+ let k = "";
701
+ const N = () => {
702
+ const _ = Array.from(l.querySelectorAll("li[data-status]"));
703
+ l.querySelectorAll("[data-c]").forEach((f) => {
704
+ const E = f.dataset.c;
705
+ f.textContent = String(E ? _.filter((S) => S.dataset.status === E).length : _.length);
706
+ }), _.forEach((f) => {
707
+ f.hidden = !!k && f.dataset.status !== k;
708
+ }), l.querySelectorAll(".hk__floor").forEach((f) => {
709
+ f.hidden = !f.querySelector("li:not([hidden])");
710
+ });
711
+ };
712
+ i.forEach((_) => _.addEventListener("click", () => {
713
+ k = _.dataset.f || "", i.forEach((f) => f.setAttribute("aria-pressed", String(f === _))), N();
714
+ })), l.hasAttribute("data-interactive") && l.querySelectorAll(".hk__room").forEach((_) => _.addEventListener("click", () => {
715
+ const f = h[_.dataset.status || ""];
716
+ f && (_.classList.remove(`hk__room--${_.dataset.status}`), _.classList.add(`hk__room--${f}`), _.dataset.status = f, _.closest("li").dataset.status = f, _.querySelector("[data-label]").textContent = u[f], _.setAttribute("aria-label", _.getAttribute("aria-label").replace(/, (Dirty|Inspecting|Clean)/, `, ${u[f]}`)), c.textContent = `Room ${_.dataset.room} is now ${u[f].toLowerCase()}.`, l.dispatchEvent(new CustomEvent("app:room-status", { bubbles: !0, detail: { room: _.dataset.room, status: f } })), N());
717
+ }));
718
+ });
719
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: te(["hk", `hk--${a}`, `hk--${s}`, m]), "data-hk": !0, "data-interactive": n ? "" : void 0, "aria-labelledby": "hk-title", "data-rk-66fdf4": "", children: [
720
+ /* @__PURE__ */ t("header", { className: "hk__head", "data-rk-66fdf4": "", children: [
721
+ /* @__PURE__ */ e("h2", { className: "hk__title", id: "hk-title", "data-rk-66fdf4": "", children: r }),
722
+ /* @__PURE__ */ t("div", { className: "hk__filters", role: "group", "aria-label": "Filter rooms by status", "data-rk-66fdf4": "", children: [
723
+ /* @__PURE__ */ t("button", { type: "button", className: "hk__filter", "aria-pressed": "true", "data-f": "", "data-rk-66fdf4": "", children: [
724
+ "All ",
725
+ /* @__PURE__ */ e("span", { "data-c": "", "data-rk-66fdf4": "", children: d.length })
726
+ ] }),
727
+ g.map((u, h) => /* @__PURE__ */ t("button", { type: "button", className: te(["hk__filter", `hk__filter--${u}`]), "aria-pressed": "false", "data-f": u, "data-rk-66fdf4": "", children: [
728
+ /* @__PURE__ */ e("i", { "aria-hidden": "true", "data-rk-66fdf4": "" }),
729
+ y[u],
730
+ " ",
731
+ /* @__PURE__ */ e("span", { "data-c": u, "data-rk-66fdf4": "", children: b[u] })
732
+ ] }, h))
733
+ ] })
734
+ ] }),
735
+ /* @__PURE__ */ e("p", { className: "sr-only", "aria-live": "polite", "data-announce": !0, "data-rk-66fdf4": "" }),
736
+ o.map((u, h) => /* @__PURE__ */ t("div", { className: "hk__floor", "data-rk-66fdf4": "", children: [
737
+ /* @__PURE__ */ e("h3", { className: "hk__floor-title", "data-rk-66fdf4": "", children: u }),
738
+ /* @__PURE__ */ e("ul", { className: "hk__grid", "data-rk-66fdf4": "", children: d.filter((l) => l.floor === u).map((l, i) => /* @__PURE__ */ e("li", { "data-status": l.status, "data-rk-66fdf4": "", children: /* @__PURE__ */ t("button", { type: "button", className: te(["hk__room", `hk__room--${l.status}`]), "data-room": l.number, "data-status": l.status, "aria-label": `Room ${l.number}, ${y[l.status]}${l.guest ? `, ${l.guest}` : ""}${l.assignee ? `, assigned to ${l.assignee}` : ""}${n && (l.status === "dirty" || l.status === "inspecting") ? ". Activate to advance status" : ""}`, "data-rk-66fdf4": "", children: [
739
+ /* @__PURE__ */ e("span", { className: "hk__num", "data-rk-66fdf4": "", children: l.number }),
740
+ l.type && /* @__PURE__ */ e("span", { className: "hk__type", "data-rk-66fdf4": "", children: l.type }),
741
+ /* @__PURE__ */ t("span", { className: "hk__state", "data-rk-66fdf4": "", children: [
742
+ /* @__PURE__ */ e("i", { "aria-hidden": "true", "data-rk-66fdf4": "" }),
743
+ /* @__PURE__ */ e("span", { "data-label": !0, "data-rk-66fdf4": "", children: y[l.status] })
744
+ ] }),
745
+ (l.guest || l.note || l.assignee) && /* @__PURE__ */ e("span", { className: "hk__meta", "data-rk-66fdf4": "", children: l.guest ?? l.note ?? `→ ${l.assignee}` })
746
+ ] }) }, i)) })
747
+ ] }, h))
748
+ ] }) });
749
+ }
750
+ function we(...d) {
751
+ const r = [], n = (a) => {
752
+ if (a) {
753
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
754
+ else if (Array.isArray(a)) a.forEach(n);
755
+ else if (typeof a == "object")
756
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
757
+ }
758
+ };
759
+ return d.forEach(n), r.join(" ");
760
+ }
761
+ function re(d) {
762
+ const r = {};
763
+ for (const n of String(d ?? "").split(";")) {
764
+ const a = n.indexOf(":");
765
+ if (a < 0) continue;
766
+ const s = n.slice(0, a).trim();
767
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
768
+ }
769
+ return r;
770
+ }
771
+ function De({
772
+ title: d = "Today at the front desk",
773
+ arrivals: r = [
774
+ { guest: "Elena Duarte", room: "204", time: "14:00", nights: 3, vip: !0, note: "Late arrival, extra pillows" },
775
+ { guest: "Aiko Tanaka", room: "108", time: "15:30", nights: 4 },
776
+ { guest: "The Okafor family", room: "310", time: "16:00", nights: 6, note: "Baby cot requested", done: !0 }
777
+ ],
778
+ departures: n = [
779
+ { guest: "Hans Müller", room: "112", time: "11:00", balance: "€0", done: !0 },
780
+ { guest: "Priya Nair", room: "207", time: "12:00", balance: "€48" }
781
+ ],
782
+ inHouse: a = [
783
+ { guest: "James Whitfield", room: "202", until: "Fri 7" },
784
+ { guest: "Sofía Ramos", room: "305", until: "Sun 9" }
785
+ ],
786
+ variant: s = "card",
787
+ className: m = ""
788
+ }) {
789
+ const y = [
790
+ { id: "arr", label: "Arrivals", count: r.length, done: r.filter((o) => o.done).length },
791
+ { id: "dep", label: "Departures", count: n.length, done: n.filter((o) => o.done).length },
792
+ { id: "inh", label: "In-house", count: a.length }
793
+ ], g = I(!1);
794
+ return D(() => {
795
+ g.current || (g.current = !0, document.querySelectorAll("[data-frontdesk]:not([data-bound])").forEach((o) => {
796
+ o.dataset.bound = "";
797
+ const b = Array.from(o.querySelectorAll('[role="tab"]')), w = o.querySelector("[data-progress]"), u = { arr: "checked in", dep: "checked out" };
798
+ let h = "arr";
799
+ const l = () => {
800
+ const c = o.querySelector(`[data-panel="${h}"]`), k = Array.from(c.querySelectorAll("[data-act]"));
801
+ w.textContent = k.length ? `${k.filter((N) => N.getAttribute("aria-pressed") === "true").length}/${k.length} ${u[h]}` : `${c.children.length} guests in-house`;
802
+ }, i = (c, k = !1) => {
803
+ b.forEach((N, _) => {
804
+ N.setAttribute("aria-selected", String(_ === c)), N.tabIndex = _ === c ? 0 : -1, o.querySelector(`[data-panel="${N.dataset.tab}"]`).hidden = _ !== c;
805
+ }), h = b[c].dataset.tab || "arr", k && b[c].focus(), l();
806
+ };
807
+ b.forEach((c, k) => {
808
+ c.addEventListener("click", () => i(k)), c.addEventListener("keydown", (N) => {
809
+ const _ = N.key === "ArrowRight" ? 1 : N.key === "ArrowLeft" ? -1 : 0;
810
+ _ && (N.preventDefault(), i((k + _ + b.length) % b.length, !0));
811
+ });
812
+ }), o.querySelectorAll("[data-act]").forEach((c) => c.addEventListener("click", () => {
813
+ const k = c.getAttribute("aria-pressed") !== "true";
814
+ c.setAttribute("aria-pressed", String(k)), c.firstElementChild.textContent = k ? c.dataset.doneLabel : c.dataset.label, l();
815
+ })), l();
816
+ }));
817
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: we(["fd", `fd--${s}`, m]), "data-frontdesk": !0, "aria-labelledby": "fd-title", "data-rk-d17d3a": "", children: [
818
+ /* @__PURE__ */ t("header", { className: "fd__head", "data-rk-d17d3a": "", children: [
819
+ /* @__PURE__ */ e("h2", { className: "fd__title", id: "fd-title", "data-rk-d17d3a": "", children: d }),
820
+ /* @__PURE__ */ t("p", { className: "fd__progress", "aria-live": "polite", "data-progress": !0, "data-rk-d17d3a": "", children: [
821
+ y[0].done,
822
+ "/",
823
+ y[0].count,
824
+ " checked in"
825
+ ] })
826
+ ] }),
827
+ /* @__PURE__ */ e("div", { className: "fd__tabs", role: "tablist", "aria-label": "Front desk lists", "data-rk-d17d3a": "", children: y.map((o, b) => /* @__PURE__ */ t("button", { type: "button", role: "tab", id: `fd-tab-${o.id}`, "aria-controls": `fd-panel-${o.id}`, "aria-selected": b === 0 ? "true" : "false", tabIndex: b === 0 ? 0 : -1, "data-tab": o.id, "data-rk-d17d3a": "", children: [
828
+ o.label,
829
+ " ",
830
+ /* @__PURE__ */ e("span", { "data-rk-d17d3a": "", children: o.count })
831
+ ] }, b)) }),
832
+ /* @__PURE__ */ e("ul", { className: "fd__list", role: "tabpanel", id: "fd-panel-arr", "aria-labelledby": "fd-tab-arr", "data-panel": "arr", "data-rk-d17d3a": "", children: r.map((o, b) => /* @__PURE__ */ t("li", { className: "fd__row", "data-rk-d17d3a": "", children: [
833
+ /* @__PURE__ */ e("span", { className: "fd__avatar", style: re(`--h: ${z(o.guest)}`), "aria-hidden": "true", "data-rk-d17d3a": "", children: F(o.guest) }),
834
+ /* @__PURE__ */ t("span", { className: "fd__who", "data-rk-d17d3a": "", children: [
835
+ /* @__PURE__ */ t("strong", { "data-rk-d17d3a": "", children: [
836
+ o.guest,
837
+ o.vip && /* @__PURE__ */ e("em", { className: "fd__vip", "data-rk-d17d3a": "", children: "VIP" })
838
+ ] }),
839
+ /* @__PURE__ */ t("small", { "data-rk-d17d3a": "", children: [
840
+ "Room ",
841
+ o.room,
842
+ o.nights && /* @__PURE__ */ t(C, { children: [
843
+ " · ",
844
+ o.nights,
845
+ " nights"
846
+ ] }),
847
+ o.note && /* @__PURE__ */ t(C, { children: [
848
+ " · ",
849
+ o.note
850
+ ] })
851
+ ] })
852
+ ] }),
853
+ /* @__PURE__ */ e("time", { className: "fd__time", "data-rk-d17d3a": "", children: o.time }),
854
+ /* @__PURE__ */ t("button", { type: "button", className: "fd__action", "aria-pressed": o.done ? "true" : "false", "data-act": "arr", "data-done-label": "Checked in", "data-label": "Check in", "data-rk-d17d3a": "", children: [
855
+ /* @__PURE__ */ e("span", { "data-rk-d17d3a": "", children: o.done ? "Checked in" : "Check in" }),
856
+ /* @__PURE__ */ t("span", { className: "sr-only", "data-rk-d17d3a": "", children: [
857
+ " ",
858
+ o.guest
859
+ ] })
860
+ ] })
861
+ ] }, b)) }),
862
+ /* @__PURE__ */ e("ul", { className: "fd__list", role: "tabpanel", id: "fd-panel-dep", "aria-labelledby": "fd-tab-dep", "data-panel": "dep", hidden: !0, "data-rk-d17d3a": "", children: n.map((o, b) => /* @__PURE__ */ t("li", { className: "fd__row", "data-rk-d17d3a": "", children: [
863
+ /* @__PURE__ */ e("span", { className: "fd__avatar", style: re(`--h: ${z(o.guest)}`), "aria-hidden": "true", "data-rk-d17d3a": "", children: F(o.guest) }),
864
+ /* @__PURE__ */ t("span", { className: "fd__who", "data-rk-d17d3a": "", children: [
865
+ /* @__PURE__ */ e("strong", { "data-rk-d17d3a": "", children: o.guest }),
866
+ /* @__PURE__ */ t("small", { "data-rk-d17d3a": "", children: [
867
+ "Room ",
868
+ o.room,
869
+ o.balance && /* @__PURE__ */ t(C, { children: [
870
+ " · Balance ",
871
+ o.balance
872
+ ] })
873
+ ] })
874
+ ] }),
875
+ /* @__PURE__ */ e("time", { className: "fd__time", "data-rk-d17d3a": "", children: o.time }),
876
+ /* @__PURE__ */ t("button", { type: "button", className: "fd__action", "aria-pressed": o.done ? "true" : "false", "data-act": "dep", "data-done-label": "Checked out", "data-label": "Check out", "data-rk-d17d3a": "", children: [
877
+ /* @__PURE__ */ e("span", { "data-rk-d17d3a": "", children: o.done ? "Checked out" : "Check out" }),
878
+ /* @__PURE__ */ t("span", { className: "sr-only", "data-rk-d17d3a": "", children: [
879
+ " ",
880
+ o.guest
881
+ ] })
882
+ ] })
883
+ ] }, b)) }),
884
+ /* @__PURE__ */ e("ul", { className: "fd__list", role: "tabpanel", id: "fd-panel-inh", "aria-labelledby": "fd-tab-inh", "data-panel": "inh", hidden: !0, "data-rk-d17d3a": "", children: a.map((o, b) => /* @__PURE__ */ t("li", { className: "fd__row", "data-rk-d17d3a": "", children: [
885
+ /* @__PURE__ */ e("span", { className: "fd__avatar", style: re(`--h: ${z(o.guest)}`), "aria-hidden": "true", "data-rk-d17d3a": "", children: F(o.guest) }),
886
+ /* @__PURE__ */ t("span", { className: "fd__who", "data-rk-d17d3a": "", children: [
887
+ /* @__PURE__ */ e("strong", { "data-rk-d17d3a": "", children: o.guest }),
888
+ /* @__PURE__ */ t("small", { "data-rk-d17d3a": "", children: [
889
+ "Room ",
890
+ o.room
891
+ ] })
892
+ ] }),
893
+ /* @__PURE__ */ t("span", { className: "fd__time", "data-rk-d17d3a": "", children: [
894
+ "until ",
895
+ o.until
896
+ ] })
897
+ ] }, b)) })
898
+ ] }) });
899
+ }
900
+ function pe(...d) {
901
+ const r = [], n = (a) => {
902
+ if (a) {
903
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
904
+ else if (Array.isArray(a)) a.forEach(n);
905
+ else if (typeof a == "object")
906
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
907
+ }
908
+ };
909
+ return d.forEach(n), r.join(" ");
910
+ }
911
+ function ve(d) {
912
+ const r = {};
913
+ for (const n of String(d ?? "").split(";")) {
914
+ const a = n.indexOf(":");
915
+ if (a < 0) continue;
916
+ const s = n.slice(0, a).trim();
917
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
918
+ }
919
+ return r;
920
+ }
921
+ function Oe({
922
+ guest: d = { name: "Elena Duarte", email: "elena.duarte@mail.com", phone: "+34 612 345 678", country: "Spain", since: "Mar 2022" },
923
+ tier: r = "Gold",
924
+ stats: n = [{ label: "Stays", value: "7" }, { label: "Nights", value: "19" }, { label: "Lifetime spend", value: "€4,820" }, { label: "Avg. rating", value: "4.9" }],
925
+ preferences: a = ["High floor", "Feather-free pillows", "Late check-out", "Sparkling water"],
926
+ upcoming: s = { room: "204 · Deluxe King", dates: "Nov 4 – Nov 7", status: "Confirmed" },
927
+ notes: m = ["Celebrating anniversary — prepare welcome card.", "Prefers WhatsApp for contact."],
928
+ actions: y = [{ label: "Message" }, { label: "New booking", primary: !0 }],
929
+ variant: g = "card",
930
+ className: o = ""
931
+ }) {
932
+ return /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("article", { className: pe(["gp", `gp--${g}`, o]), "aria-labelledby": "gp-name", "data-rk-333a1a": "", children: [
933
+ /* @__PURE__ */ t("header", { className: "gp__head", "data-rk-333a1a": "", children: [
934
+ /* @__PURE__ */ e("span", { className: "gp__avatar", style: ve(`--h: ${z(d.name)}`), "aria-hidden": "true", "data-rk-333a1a": "", children: F(d.name) }),
935
+ /* @__PURE__ */ t("div", { className: "gp__id", "data-rk-333a1a": "", children: [
936
+ /* @__PURE__ */ e("h2", { className: "gp__name", id: "gp-name", "data-rk-333a1a": "", children: d.name }),
937
+ /* @__PURE__ */ t("p", { className: "gp__sub", "data-rk-333a1a": "", children: [
938
+ r && /* @__PURE__ */ t("span", { className: "gp__tier", "data-rk-333a1a": "", children: [
939
+ /* @__PURE__ */ e("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-rk-333a1a": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("star") }, "data-rk-333a1a": "" }) }),
940
+ r,
941
+ " member"
942
+ ] }),
943
+ d.since && /* @__PURE__ */ t("span", { "data-rk-333a1a": "", children: [
944
+ "Guest since ",
945
+ d.since
946
+ ] })
947
+ ] })
948
+ ] }),
949
+ /* @__PURE__ */ e("div", { className: "gp__actions", "data-rk-333a1a": "", children: y.map((b, w) => {
950
+ const u = b.href ? "a" : "button";
951
+ return /* @__PURE__ */ e(u, { className: pe(["gp__btn", { "gp__btn--primary": b.primary }]), href: b.href, type: b.href ? void 0 : "button", "data-rk-333a1a": "", children: b.label }, w);
952
+ }) })
953
+ ] }),
954
+ /* @__PURE__ */ t("ul", { className: "gp__contact", "data-rk-333a1a": "", children: [
955
+ d.email && /* @__PURE__ */ t("li", { "data-rk-333a1a": "", children: [
956
+ /* @__PURE__ */ e("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-333a1a": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("mail") }, "data-rk-333a1a": "" }) }),
957
+ /* @__PURE__ */ e("a", { href: `mailto:${d.email}`, "data-rk-333a1a": "", children: d.email })
958
+ ] }),
959
+ d.phone && /* @__PURE__ */ t("li", { "data-rk-333a1a": "", children: [
960
+ /* @__PURE__ */ e("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-333a1a": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("phone") }, "data-rk-333a1a": "" }) }),
961
+ /* @__PURE__ */ e("a", { href: `tel:${d.phone.replace(/\s/g, "")}`, "data-rk-333a1a": "", children: d.phone })
962
+ ] }),
963
+ d.country && /* @__PURE__ */ t("li", { "data-rk-333a1a": "", children: [
964
+ /* @__PURE__ */ e("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-333a1a": "", children: /* @__PURE__ */ e("g", { dangerouslySetInnerHTML: { __html: B("plane") }, "data-rk-333a1a": "" }) }),
965
+ d.country
966
+ ] })
967
+ ] }),
968
+ /* @__PURE__ */ e("dl", { className: "gp__stats", "data-rk-333a1a": "", children: n.map((b, w) => /* @__PURE__ */ t("div", { "data-rk-333a1a": "", children: [
969
+ /* @__PURE__ */ e("dt", { "data-rk-333a1a": "", children: b.label }),
970
+ /* @__PURE__ */ e("dd", { "data-rk-333a1a": "", children: b.value })
971
+ ] }, w)) }),
972
+ s && /* @__PURE__ */ t("div", { className: "gp__block", "data-rk-333a1a": "", children: [
973
+ /* @__PURE__ */ e("h3", { "data-rk-333a1a": "", children: "Upcoming stay" }),
974
+ /* @__PURE__ */ t("p", { className: "gp__stay", "data-rk-333a1a": "", children: [
975
+ /* @__PURE__ */ e("strong", { "data-rk-333a1a": "", children: s.room }),
976
+ /* @__PURE__ */ e("span", { "data-rk-333a1a": "", children: s.dates }),
977
+ s.status && /* @__PURE__ */ e("em", { "data-rk-333a1a": "", children: s.status })
978
+ ] })
979
+ ] }),
980
+ a.length > 0 && /* @__PURE__ */ t("div", { className: "gp__block", "data-rk-333a1a": "", children: [
981
+ /* @__PURE__ */ e("h3", { "data-rk-333a1a": "", children: "Preferences" }),
982
+ /* @__PURE__ */ e("ul", { className: "gp__tags", "data-rk-333a1a": "", children: a.map((b, w) => /* @__PURE__ */ e("li", { "data-rk-333a1a": "", children: b }, w)) })
983
+ ] }),
984
+ m.length > 0 && /* @__PURE__ */ t("div", { className: "gp__block", "data-rk-333a1a": "", children: [
985
+ /* @__PURE__ */ e("h3", { "data-rk-333a1a": "", children: "Staff notes" }),
986
+ /* @__PURE__ */ e("ul", { className: "gp__notes", "data-rk-333a1a": "", children: m.map((b, w) => /* @__PURE__ */ e("li", { "data-rk-333a1a": "", children: b }, w)) })
987
+ ] })
988
+ ] }) });
989
+ }
990
+ function Se(...d) {
991
+ const r = [], n = (a) => {
992
+ if (a) {
993
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
994
+ else if (Array.isArray(a)) a.forEach(n);
995
+ else if (typeof a == "object")
996
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
997
+ }
998
+ };
999
+ return d.forEach(n), r.join(" ");
1000
+ }
1001
+ function We({
1002
+ title: d = "Profile",
1003
+ description: r = "This information is visible to your team.",
1004
+ form: n = !0,
1005
+ saveLabel: a = "Save changes",
1006
+ savedText: s = "Changes saved",
1007
+ id: m = "settings-section",
1008
+ variant: y = "split",
1009
+ className: g = "",
1010
+ children: o,
1011
+ footerStart: b
1012
+ }) {
1013
+ const w = n ? "form" : "div", u = I(!1);
1014
+ return D(() => {
1015
+ u.current || (u.current = !0, document.querySelectorAll("form[data-settings-form]:not([data-bound])").forEach((h) => {
1016
+ h.dataset.bound = "";
1017
+ const l = h.querySelector("[data-saved]");
1018
+ h.addEventListener("submit", (i) => {
1019
+ var c;
1020
+ if (i.preventDefault(), !h.checkValidity()) {
1021
+ (c = h.querySelector(":invalid")) == null || c.focus();
1022
+ return;
1023
+ }
1024
+ l && (l.textContent = `✓ ${l.dataset.text}`, window.setTimeout(() => {
1025
+ l.textContent = "";
1026
+ }, 2600)), h.dispatchEvent(new CustomEvent("app:settings-save", { bubbles: !0, detail: new FormData(h) }));
1027
+ });
1028
+ }));
1029
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: Se(["set", `set--${y}`, g]), "aria-labelledby": `${m}-title`, "data-rk-d579d6": "", children: [
1030
+ /* @__PURE__ */ t("div", { className: "set__intro", "data-rk-d579d6": "", children: [
1031
+ /* @__PURE__ */ e("h2", { className: "set__title", id: `${m}-title`, "data-rk-d579d6": "", children: d }),
1032
+ r && /* @__PURE__ */ e("p", { className: "set__desc", "data-rk-d579d6": "", children: r })
1033
+ ] }),
1034
+ /* @__PURE__ */ t(w, { className: "set__card", "data-settings-form": n ? "" : void 0, noValidate: n ? !0 : void 0, "data-rk-d579d6": "", children: [
1035
+ /* @__PURE__ */ e("div", { className: "set__fields", "data-rk-d579d6": "", children: o }),
1036
+ n && /* @__PURE__ */ t("div", { className: "set__foot", "data-rk-d579d6": "", children: [
1037
+ b,
1038
+ /* @__PURE__ */ e("p", { className: "set__saved", "aria-live": "polite", "data-saved": !0, "data-text": s, "data-rk-d579d6": "" }),
1039
+ /* @__PURE__ */ e("button", { type: "reset", className: "set__btn", "data-rk-d579d6": "", children: "Cancel" }),
1040
+ /* @__PURE__ */ e("button", { type: "submit", className: "set__btn set__btn--primary", "data-rk-d579d6": "", children: a })
1041
+ ] })
1042
+ ] })
1043
+ ] }) });
1044
+ }
1045
+ function xe(...d) {
1046
+ const r = [], n = (a) => {
1047
+ if (a) {
1048
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
1049
+ else if (Array.isArray(a)) a.forEach(n);
1050
+ else if (typeof a == "object")
1051
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
1052
+ }
1053
+ };
1054
+ return d.forEach(n), r.join(" ");
1055
+ }
1056
+ function He({
1057
+ label: d = "Email notifications",
1058
+ description: r = "Get an email for new bookings and cancellations.",
1059
+ name: n = "setting",
1060
+ checked: a = !0,
1061
+ disabled: s = !1,
1062
+ id: m,
1063
+ size: y = "md",
1064
+ className: g = ""
1065
+ }) {
1066
+ const o = m ?? `sw-${n}`;
1067
+ return /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("div", { className: xe(["sw-row", `sw-row--${y}`, { "is-disabled": s }, g]), "data-rk-22e298": "", children: [
1068
+ /* @__PURE__ */ t("div", { className: "sw-row__text", "data-rk-22e298": "", children: [
1069
+ /* @__PURE__ */ e("label", { className: "sw-row__label", htmlFor: o, "data-rk-22e298": "", children: d }),
1070
+ r && /* @__PURE__ */ e("p", { className: "sw-row__desc", id: `${o}-desc`, "data-rk-22e298": "", children: r })
1071
+ ] }),
1072
+ /* @__PURE__ */ t("span", { className: "sw-row__switch", "data-rk-22e298": "", children: [
1073
+ /* @__PURE__ */ e("input", { type: "checkbox", role: "switch", id: o, name: n, defaultChecked: a, disabled: s, "aria-describedby": r ? `${o}-desc` : void 0, "data-rk-22e298": "" }),
1074
+ /* @__PURE__ */ e("span", { className: "sw-row__track", "aria-hidden": "true", "data-rk-22e298": "" })
1075
+ ] })
1076
+ ] }) });
1077
+ }
1078
+ function me(...d) {
1079
+ const r = [], n = (a) => {
1080
+ if (a) {
1081
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
1082
+ else if (Array.isArray(a)) a.forEach(n);
1083
+ else if (typeof a == "object")
1084
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
1085
+ }
1086
+ };
1087
+ return d.forEach(n), r.join(" ");
1088
+ }
1089
+ function Ae(d) {
1090
+ const r = {};
1091
+ for (const n of String(d ?? "").split(";")) {
1092
+ const a = n.indexOf(":");
1093
+ if (a < 0) continue;
1094
+ const s = n.slice(0, a).trim();
1095
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
1096
+ }
1097
+ return r;
1098
+ }
1099
+ function Fe({
1100
+ title: d = "Team",
1101
+ members: r = [
1102
+ { name: "Lucía Ortega", email: "lucia@mirador.com", role: "Owner", status: "active", you: !0 },
1103
+ { name: "Daniel Kim", email: "daniel@mirador.com", role: "Manager", status: "active" },
1104
+ { name: "Rosa Jiménez", email: "rosa@mirador.com", role: "Housekeeping", status: "active" },
1105
+ { name: "Omar Haddad", email: "omar@mirador.com", role: "Front desk", status: "invited" }
1106
+ ],
1107
+ roles: n = ["Owner", "Manager", "Front desk", "Housekeeping", "Viewer"],
1108
+ seats: a = 10,
1109
+ variant: s = "card",
1110
+ className: m = ""
1111
+ }) {
1112
+ const y = I(!1);
1113
+ return D(() => {
1114
+ y.current || (y.current = !0, document.querySelectorAll("[data-team]:not([data-bound])").forEach((g) => {
1115
+ g.dataset.bound = "";
1116
+ const o = g.querySelector("[data-list]"), b = g.querySelector("[data-msg]"), w = g.querySelector("[data-used]"), u = g.querySelector("[data-invite]"), h = () => {
1117
+ w && (w.textContent = String(o.children.length));
1118
+ }, l = (i) => {
1119
+ let c = !1;
1120
+ i.addEventListener("click", () => {
1121
+ var f, E, S;
1122
+ const k = i.closest(".team__row"), N = ((E = (f = k.querySelector("strong")) == null ? void 0 : f.textContent) == null ? void 0 : E.replace(" (you)", "")) ?? "";
1123
+ if (!c) {
1124
+ c = !0, i.classList.add("is-armed"), i.setAttribute("aria-label", `Confirm removing ${N}`), b.textContent = `Click again to remove ${N}.`, window.setTimeout(() => {
1125
+ c = !1, i.classList.remove("is-armed"), i.setAttribute("aria-label", `Remove ${N}`);
1126
+ }, 3e3);
1127
+ return;
1128
+ }
1129
+ g.dispatchEvent(new CustomEvent("app:team-remove", { bubbles: !0, detail: { email: k.dataset.email } }));
1130
+ const _ = (S = k.nextElementSibling ?? k.previousElementSibling) == null ? void 0 : S.querySelector("select, button");
1131
+ k.remove(), b.textContent = `${N} was removed from the team.`, h(), _ == null || _.focus();
1132
+ });
1133
+ };
1134
+ g.querySelectorAll("[data-remove]").forEach(l), u.addEventListener("submit", (i) => {
1135
+ i.preventDefault();
1136
+ const c = u.elements.namedItem("email"), k = u.elements.namedItem("role").value;
1137
+ if (!c.checkValidity()) {
1138
+ b.textContent = "Enter a valid email address.", c.focus();
1139
+ return;
1140
+ }
1141
+ const N = c.value.trim(), _ = N.split("@")[0].replace(/[._-]+/g, " ").replace(/\b\w/g, (E) => E.toUpperCase()), f = document.createElement("li");
1142
+ f.className = "team__row is-new", f.dataset.email = N, f.innerHTML = `<span class="team__avatar" style="--h:${z(_)}" aria-hidden="true">${F(_)}</span>
1143
+ <span class="team__who"><strong></strong><small></small></span>
1144
+ <span class="team__status team__status--invited">Invited</span>
1145
+ <span class="team__role-static"></span>
1146
+ <button type="button" class="team__remove" data-remove><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"/></svg></button>`, f.querySelector("strong").textContent = _, f.querySelector("small").textContent = N, f.querySelector(".team__role-static").textContent = k, f.querySelector("button").setAttribute("aria-label", `Remove ${_}`), o.append(f), l(f.querySelector("[data-remove]")), b.textContent = `Invitation sent to ${N} as ${k}.`, g.dispatchEvent(new CustomEvent("app:team-invite", { bubbles: !0, detail: { email: N, role: k } })), u.reset(), h();
1147
+ });
1148
+ }));
1149
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: me(["team", `team--${s}`, m]), "data-team": !0, "aria-labelledby": "team-title", "data-rk-5c76e9": "", children: [
1150
+ /* @__PURE__ */ e("header", { className: "team__head", "data-rk-5c76e9": "", children: /* @__PURE__ */ t("div", { "data-rk-5c76e9": "", children: [
1151
+ /* @__PURE__ */ e("h2", { className: "team__title", id: "team-title", "data-rk-5c76e9": "", children: d }),
1152
+ a && /* @__PURE__ */ t("p", { className: "team__seats", "data-rk-5c76e9": "", children: [
1153
+ /* @__PURE__ */ e("span", { "data-used": !0, "data-rk-5c76e9": "", children: r.length }),
1154
+ " of ",
1155
+ a,
1156
+ " seats used"
1157
+ ] })
1158
+ ] }) }),
1159
+ /* @__PURE__ */ t("form", { className: "team__invite", noValidate: !0, "data-invite": !0, "data-rk-5c76e9": "", children: [
1160
+ /* @__PURE__ */ e("label", { className: "sr-only", htmlFor: "team-email", "data-rk-5c76e9": "", children: "Email to invite" }),
1161
+ /* @__PURE__ */ e("input", { id: "team-email", type: "email", name: "email", placeholder: "name@company.com", required: !0, autoComplete: "email", "data-rk-5c76e9": "" }),
1162
+ /* @__PURE__ */ e("label", { className: "sr-only", htmlFor: "team-role", "data-rk-5c76e9": "", children: "Role" }),
1163
+ /* @__PURE__ */ e("select", { id: "team-role", name: "role", "data-rk-5c76e9": "", children: n.filter((g) => g !== "Owner").map((g, o) => /* @__PURE__ */ e("option", { "data-rk-5c76e9": "", children: g }, o)) }),
1164
+ /* @__PURE__ */ e("button", { type: "submit", "data-rk-5c76e9": "", children: "Send invite" })
1165
+ ] }),
1166
+ /* @__PURE__ */ e("p", { className: "team__msg", "aria-live": "polite", "data-msg": !0, "data-rk-5c76e9": "" }),
1167
+ /* @__PURE__ */ e("ul", { className: "team__list", "data-list": !0, "data-rk-5c76e9": "", children: r.map((g, o) => /* @__PURE__ */ t("li", { className: "team__row", "data-email": g.email, "data-rk-5c76e9": "", children: [
1168
+ /* @__PURE__ */ e("span", { className: "team__avatar", style: Ae(`--h: ${z(g.name)}`), "aria-hidden": "true", "data-rk-5c76e9": "", children: F(g.name) }),
1169
+ /* @__PURE__ */ t("span", { className: "team__who", "data-rk-5c76e9": "", children: [
1170
+ /* @__PURE__ */ t("strong", { "data-rk-5c76e9": "", children: [
1171
+ g.name,
1172
+ g.you && /* @__PURE__ */ e("em", { "data-rk-5c76e9": "", children: " (you)" })
1173
+ ] }),
1174
+ /* @__PURE__ */ e("small", { "data-rk-5c76e9": "", children: g.email })
1175
+ ] }),
1176
+ /* @__PURE__ */ e("span", { className: me(["team__status", `team__status--${g.status ?? "active"}`]), "data-rk-5c76e9": "", children: g.status === "invited" ? "Invited" : g.status === "suspended" ? "Suspended" : "Active" }),
1177
+ /* @__PURE__ */ t("label", { className: "sr-only", htmlFor: `role-${g.email}`, "data-rk-5c76e9": "", children: [
1178
+ "Role for ",
1179
+ g.name
1180
+ ] }),
1181
+ /* @__PURE__ */ e("select", { id: `role-${g.email}`, className: "team__role", disabled: g.role === "Owner", "data-rk-5c76e9": "", children: n.map((b, w) => /* @__PURE__ */ e("option", { "data-rk-5c76e9": "", children: b }, w)) }),
1182
+ /* @__PURE__ */ e("button", { type: "button", className: "team__remove", "aria-label": `Remove ${g.name}`, disabled: g.you, "data-remove": !0, "data-rk-5c76e9": "", children: /* @__PURE__ */ e("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", "data-rk-5c76e9": "", children: /* @__PURE__ */ e("path", { d: "M18 6 6 18M6 6l12 12", "data-rk-5c76e9": "" }) }) })
1183
+ ] }, o)) })
1184
+ ] }) });
1185
+ }
1186
+ function fe(...d) {
1187
+ const r = [], n = (a) => {
1188
+ if (a) {
1189
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
1190
+ else if (Array.isArray(a)) a.forEach(n);
1191
+ else if (typeof a == "object")
1192
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
1193
+ }
1194
+ };
1195
+ return d.forEach(n), r.join(" ");
1196
+ }
1197
+ function Ee(d) {
1198
+ const r = {};
1199
+ for (const n of String(d ?? "").split(";")) {
1200
+ const a = n.indexOf(":");
1201
+ if (a < 0) continue;
1202
+ const s = n.slice(0, a).trim();
1203
+ s && (r[s.startsWith("--") ? s : s.replace(/-([a-z])/g, (m, y) => y.toUpperCase())] = n.slice(a + 1).trim());
1204
+ }
1205
+ return r;
1206
+ }
1207
+ function ze({
1208
+ plan: d = "Pro",
1209
+ price: r = "€149 / month",
1210
+ renews: n = "Renews on Dec 1, 2026",
1211
+ usage: a = [
1212
+ { label: "Rooms", used: 42, limit: 50 },
1213
+ { label: "Team seats", used: 4, limit: 10 },
1214
+ { label: "Channel connections", used: 3, limit: 5 },
1215
+ { label: "Guest emails", used: 8200, limit: 1e4, unit: "/ month" }
1216
+ ],
1217
+ card: s = "Visa •••• 4242",
1218
+ upgrade: m = { label: "Upgrade to Business", href: "#" },
1219
+ manage: y = { label: "Manage billing", href: "#" },
1220
+ warnAt: g = 80,
1221
+ variant: o = "card",
1222
+ className: b = ""
1223
+ }) {
1224
+ const w = (u) => new Intl.NumberFormat("en-GB").format(u);
1225
+ return /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("section", { className: fe(["plan", `plan--${o}`, b]), "aria-labelledby": "plan-title", "data-rk-aac02d": "", children: [
1226
+ /* @__PURE__ */ t("header", { className: "plan__head", "data-rk-aac02d": "", children: [
1227
+ /* @__PURE__ */ t("div", { "data-rk-aac02d": "", children: [
1228
+ /* @__PURE__ */ e("p", { className: "plan__eyebrow", "data-rk-aac02d": "", children: "Current plan" }),
1229
+ /* @__PURE__ */ t("h2", { className: "plan__title", id: "plan-title", "data-rk-aac02d": "", children: [
1230
+ d,
1231
+ " ",
1232
+ /* @__PURE__ */ e("span", { "data-rk-aac02d": "", children: r })
1233
+ ] }),
1234
+ /* @__PURE__ */ e("p", { className: "plan__renew", "data-rk-aac02d": "", children: n })
1235
+ ] }),
1236
+ s && /* @__PURE__ */ t("p", { className: "plan__card", "data-rk-aac02d": "", children: [
1237
+ /* @__PURE__ */ t("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-aac02d": "", children: [
1238
+ /* @__PURE__ */ e("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", "data-rk-aac02d": "" }),
1239
+ /* @__PURE__ */ e("path", { d: "M2 10h20", "data-rk-aac02d": "" })
1240
+ ] }),
1241
+ s
1242
+ ] })
1243
+ ] }),
1244
+ /* @__PURE__ */ e("ul", { className: "plan__meters", "data-rk-aac02d": "", children: a.map((u, h) => {
1245
+ const l = Math.min(100, Math.round(u.used / u.limit * 100)), i = l >= 100 ? "danger" : l >= g ? "warning" : "ok";
1246
+ return /* @__PURE__ */ t("li", { "data-rk-aac02d": "", children: [
1247
+ /* @__PURE__ */ t("div", { className: "plan__meter-head", "data-rk-aac02d": "", children: [
1248
+ /* @__PURE__ */ e("span", { "data-rk-aac02d": "", children: u.label }),
1249
+ /* @__PURE__ */ t("strong", { "data-rk-aac02d": "", children: [
1250
+ w(u.used),
1251
+ " ",
1252
+ /* @__PURE__ */ t("small", { "data-rk-aac02d": "", children: [
1253
+ "of ",
1254
+ w(u.limit),
1255
+ u.unit ? ` ${u.unit}` : ""
1256
+ ] })
1257
+ ] })
1258
+ ] }),
1259
+ /* @__PURE__ */ e("div", { className: fe(["plan__bar", `plan__bar--${i}`]), role: "meter", "aria-label": u.label, "aria-valuemin": 0, "aria-valuemax": u.limit, "aria-valuenow": u.used, "aria-valuetext": `${w(u.used)} of ${w(u.limit)}, ${l}%`, "data-rk-aac02d": "", children: /* @__PURE__ */ e("span", { style: Ee(`width: ${l}%`), "data-rk-aac02d": "" }) }),
1260
+ i === "warning" && /* @__PURE__ */ t("p", { className: "plan__warn", "data-rk-aac02d": "", children: [
1261
+ l,
1262
+ "% used — consider upgrading soon."
1263
+ ] })
1264
+ ] }, h);
1265
+ }) }),
1266
+ /* @__PURE__ */ t("div", { className: "plan__actions", "data-rk-aac02d": "", children: [
1267
+ m && /* @__PURE__ */ e("a", { className: "plan__btn plan__btn--primary", href: m.href, "data-rk-aac02d": "", children: m.label }),
1268
+ y && /* @__PURE__ */ e("a", { className: "plan__btn", href: y.href, "data-rk-aac02d": "", children: y.label })
1269
+ ] })
1270
+ ] }) });
1271
+ }
1272
+ function $e(...d) {
1273
+ const r = [], n = (a) => {
1274
+ if (a) {
1275
+ if (typeof a == "string" || typeof a == "number") r.push(String(a));
1276
+ else if (Array.isArray(a)) a.forEach(n);
1277
+ else if (typeof a == "object")
1278
+ for (const [s, m] of Object.entries(a)) m && r.push(s);
1279
+ }
1280
+ };
1281
+ return d.forEach(n), r.join(" ");
1282
+ }
1283
+ function Pe({
1284
+ mode: d = "signin",
1285
+ brand: r = "Lobby",
1286
+ title: n = d === "signin" ? "Welcome back" : "Create your workspace",
1287
+ subtitle: a = d === "signin" ? "Sign in to manage your property." : "Start your 14-day free trial — no card required.",
1288
+ action: s = "#",
1289
+ successHref: m = "#",
1290
+ providers: y = ["Google", "Microsoft"],
1291
+ switchHref: g = "#",
1292
+ testimonial: o = { quote: "We replaced three tools with Lobby. Check-in takes half the time and our occupancy is up 9% this season.", author: "Lucía Ortega", role: "GM, Hotel Mirador" },
1293
+ stats: b = [{ value: "2,400+", label: "properties" }, { value: "38%", label: "less admin time" }, { value: "4.9/5", label: "support rating" }],
1294
+ variant: w = "split",
1295
+ className: u = ""
1296
+ }) {
1297
+ const h = d === "signin", l = I(!1);
1298
+ return D(() => {
1299
+ l.current || (l.current = !0, document.querySelectorAll("form[data-auth]:not([data-bound])").forEach((i) => {
1300
+ i.dataset.bound = "";
1301
+ const c = i.querySelector("[data-eye]"), k = i.querySelector("#auth-pass"), N = i.querySelector("[data-error]");
1302
+ c == null || c.addEventListener("click", () => {
1303
+ const _ = c.getAttribute("aria-pressed") !== "true";
1304
+ c.setAttribute("aria-pressed", String(_)), c.setAttribute("aria-label", _ ? "Hide password" : "Show password"), k && (k.type = _ ? "text" : "password");
1305
+ }), i.addEventListener("submit", (_) => {
1306
+ i.querySelectorAll("[aria-invalid]").forEach((E) => E.removeAttribute("aria-invalid"));
1307
+ const f = Array.from(i.querySelectorAll("input[required]")).filter((E) => !E.checkValidity());
1308
+ if (f.length) {
1309
+ _.preventDefault(), f.forEach((E) => E.setAttribute("aria-invalid", "true")), N.textContent = f[0].type === "password" ? "Your password needs at least 8 characters." : "Please check your email address.", f[0].focus();
1310
+ return;
1311
+ }
1312
+ if (i.getAttribute("action") === "#") {
1313
+ _.preventDefault();
1314
+ const E = i.querySelector("[data-submit]");
1315
+ E.disabled = !0, E.textContent = "Signing in…", window.setTimeout(() => {
1316
+ window.location.href = i.dataset.success || "#";
1317
+ }, 700);
1318
+ }
1319
+ });
1320
+ }));
1321
+ }, []), /* @__PURE__ */ e(C, { children: /* @__PURE__ */ e("div", { className: "auth-cq", "data-rk-149787": "", children: /* @__PURE__ */ t("section", { className: $e(["auth", `auth--${w}`, u]), "data-rk-149787": "", children: [
1322
+ /* @__PURE__ */ e("div", { className: "auth__form-side", "data-rk-149787": "", children: /* @__PURE__ */ t("form", { className: "auth__card", action: s, method: "post", noValidate: !0, "data-auth": !0, "data-success": m, "data-rk-149787": "", children: [
1323
+ /* @__PURE__ */ t("p", { className: "auth__brand", "data-rk-149787": "", children: [
1324
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", "data-rk-149787": "", children: r.slice(0, 1) }),
1325
+ r
1326
+ ] }),
1327
+ /* @__PURE__ */ e("h1", { className: "auth__title", "data-rk-149787": "", children: n }),
1328
+ a && /* @__PURE__ */ e("p", { className: "auth__sub", "data-rk-149787": "", children: a }),
1329
+ y.length > 0 && /* @__PURE__ */ t(C, { children: [
1330
+ /* @__PURE__ */ e("div", { className: "auth__sso", "data-rk-149787": "", children: y.map((i, c) => /* @__PURE__ */ t("button", { type: "button", className: "auth__sso-btn", "data-rk-149787": "", children: [
1331
+ "Continue with ",
1332
+ i
1333
+ ] }, c)) }),
1334
+ /* @__PURE__ */ e("p", { className: "auth__or", "data-rk-149787": "", children: /* @__PURE__ */ e("span", { "data-rk-149787": "", children: "or with email" }) })
1335
+ ] }),
1336
+ !h && /* @__PURE__ */ t("div", { className: "auth__field", "data-rk-149787": "", children: [
1337
+ /* @__PURE__ */ e("label", { htmlFor: "auth-name", "data-rk-149787": "", children: "Full name" }),
1338
+ /* @__PURE__ */ e("input", { id: "auth-name", name: "name", type: "text", autoComplete: "name", required: !0, "data-rk-149787": "" })
1339
+ ] }),
1340
+ /* @__PURE__ */ t("div", { className: "auth__field", "data-rk-149787": "", children: [
1341
+ /* @__PURE__ */ e("label", { htmlFor: "auth-email", "data-rk-149787": "", children: "Work email" }),
1342
+ /* @__PURE__ */ e("input", { id: "auth-email", name: "email", type: "email", autoComplete: "email", required: !0, "aria-describedby": "auth-error", "data-rk-149787": "" })
1343
+ ] }),
1344
+ /* @__PURE__ */ t("div", { className: "auth__field", "data-rk-149787": "", children: [
1345
+ /* @__PURE__ */ t("div", { className: "auth__label-row", "data-rk-149787": "", children: [
1346
+ /* @__PURE__ */ e("label", { htmlFor: "auth-pass", "data-rk-149787": "", children: "Password" }),
1347
+ h && /* @__PURE__ */ e("a", { href: "#", "data-rk-149787": "", children: "Forgot password?" })
1348
+ ] }),
1349
+ /* @__PURE__ */ t("div", { className: "auth__pass", "data-rk-149787": "", children: [
1350
+ /* @__PURE__ */ e("input", { id: "auth-pass", name: "password", type: "password", autoComplete: h ? "current-password" : "new-password", required: !0, minLength: 8, "aria-describedby": "auth-error", "data-rk-149787": "" }),
1351
+ /* @__PURE__ */ e("button", { type: "button", className: "auth__eye", "aria-pressed": "false", "aria-label": "Show password", "data-eye": !0, "data-rk-149787": "", children: /* @__PURE__ */ t("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", "data-rk-149787": "", children: [
1352
+ /* @__PURE__ */ e("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z", "data-rk-149787": "" }),
1353
+ /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "3", "data-rk-149787": "" })
1354
+ ] }) })
1355
+ ] })
1356
+ ] }),
1357
+ h && /* @__PURE__ */ t("label", { className: "auth__remember", "data-rk-149787": "", children: [
1358
+ /* @__PURE__ */ e("input", { type: "checkbox", name: "remember", defaultChecked: !0, "data-rk-149787": "" }),
1359
+ " Keep me signed in"
1360
+ ] }),
1361
+ /* @__PURE__ */ e("p", { className: "auth__error", id: "auth-error", role: "alert", "data-error": !0, "data-rk-149787": "" }),
1362
+ /* @__PURE__ */ e("button", { type: "submit", className: "auth__submit", "data-submit": !0, "data-rk-149787": "", children: h ? "Sign in" : "Create account" }),
1363
+ /* @__PURE__ */ t("p", { className: "auth__switch", "data-rk-149787": "", children: [
1364
+ h ? "New to " + r + "?" : "Already have an account?",
1365
+ " ",
1366
+ /* @__PURE__ */ e("a", { href: g, "data-rk-149787": "", children: h ? "Start a free trial" : "Sign in" })
1367
+ ] })
1368
+ ] }) }),
1369
+ w === "split" && /* @__PURE__ */ t("aside", { className: "auth__brand-side", "aria-label": `About ${r}`, "data-rk-149787": "", children: [
1370
+ o && /* @__PURE__ */ t("figure", { className: "auth__quote", "data-rk-149787": "", children: [
1371
+ /* @__PURE__ */ e("blockquote", { "data-rk-149787": "", children: /* @__PURE__ */ t("p", { "data-rk-149787": "", children: [
1372
+ "“",
1373
+ o.quote,
1374
+ "”"
1375
+ ] }) }),
1376
+ /* @__PURE__ */ t("figcaption", { "data-rk-149787": "", children: [
1377
+ /* @__PURE__ */ e("strong", { "data-rk-149787": "", children: o.author }),
1378
+ o.role && /* @__PURE__ */ t("span", { "data-rk-149787": "", children: [
1379
+ " · ",
1380
+ o.role
1381
+ ] })
1382
+ ] })
1383
+ ] }),
1384
+ b.length > 0 && /* @__PURE__ */ e("dl", { className: "auth__stats", "data-rk-149787": "", children: b.map((i, c) => /* @__PURE__ */ t("div", { "data-rk-149787": "", children: [
1385
+ /* @__PURE__ */ e("dt", { "data-rk-149787": "", children: i.label }),
1386
+ /* @__PURE__ */ e("dd", { "data-rk-149787": "", children: i.value })
1387
+ ] }, c)) })
1388
+ ] })
1389
+ ] }) }) });
1390
+ }
1391
+ export {
1392
+ qe as A,
1393
+ Be as D,
1394
+ Oe as G,
1395
+ Ie as H,
1396
+ Re as P,
1397
+ Te as R,
1398
+ We as S,
1399
+ Fe as T,
1400
+ je as a,
1401
+ De as b,
1402
+ Pe as c,
1403
+ ze as d,
1404
+ He as e,
1405
+ B as f,
1406
+ ce as g,
1407
+ z as h,
1408
+ F as i
1409
+ };