@licklist/design 0.78.5-dev.91 → 0.78.5-dev.93

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 (777) hide show
  1. package/.storybook/preview.jsx +1 -0
  2. package/bitbucket-pipelines.yml +4 -0
  3. package/components.json +20 -0
  4. package/dist/index.d.ts +4 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +21 -9
  7. package/dist/v2/components/AccountManagerCard/AccountManagerCard.d.ts +11 -0
  8. package/dist/v2/components/AccountManagerCard/AccountManagerCard.d.ts.map +1 -0
  9. package/dist/v2/components/AccountManagerCard/AccountManagerCard.js +62 -0
  10. package/dist/v2/components/AccountManagerCard/AccountManagerCard.scss.js +6 -0
  11. package/dist/v2/components/AccountManagerCard/index.d.ts +3 -0
  12. package/dist/v2/components/AccountManagerCard/index.d.ts.map +1 -0
  13. package/dist/v2/components/ActionMenu/ActionMenu.scss.js +1 -1
  14. package/dist/v2/components/Alert/Alert.scss.js +1 -1
  15. package/dist/v2/components/AvatarUpload/AvatarUpload.d.ts.map +1 -1
  16. package/dist/v2/components/AvatarUpload/AvatarUpload.js +23 -13
  17. package/dist/v2/components/AvatarUpload/AvatarUpload.scss.js +1 -1
  18. package/dist/v2/components/Button/Button.d.ts.map +1 -1
  19. package/dist/v2/components/Button/Button.js +2 -1
  20. package/dist/v2/components/Button/Button.scss.js +1 -1
  21. package/dist/v2/components/Button/GhostButton.scss.js +1 -1
  22. package/dist/v2/components/Checkbox/Checkbox.scss.js +1 -1
  23. package/dist/v2/components/DataTable/DataTable.d.ts +3 -1
  24. package/dist/v2/components/DataTable/DataTable.d.ts.map +1 -1
  25. package/dist/v2/components/DataTable/DataTable.js +40 -39
  26. package/dist/v2/components/DataTable/DataTable.scss.js +1 -1
  27. package/dist/v2/components/EmptyState/EmptyState.scss.js +1 -1
  28. package/dist/v2/components/FeatureToggle/FeatureToggle.d.ts +14 -0
  29. package/dist/v2/components/FeatureToggle/FeatureToggle.d.ts.map +1 -0
  30. package/dist/v2/components/FeatureToggle/FeatureToggle.js +47 -0
  31. package/dist/v2/components/FeatureToggle/FeatureToggle.scss.js +6 -0
  32. package/dist/v2/components/FeatureToggle/index.d.ts +3 -0
  33. package/dist/v2/components/FeatureToggle/index.d.ts.map +1 -0
  34. package/dist/v2/components/FormField/FormField.scss.js +1 -1
  35. package/dist/v2/components/InfoGrid/InfoGrid.scss.js +1 -1
  36. package/dist/v2/components/InputCheckbox/InputCheckbox.scss.js +1 -1
  37. package/dist/v2/components/Modal/DeleteModal.d.ts.map +1 -1
  38. package/dist/v2/components/Modal/DeleteModal.js +74 -76
  39. package/dist/v2/components/Modal/DeleteModal.scss.js +1 -1
  40. package/dist/v2/components/NewTable/NewTable.scss.js +1 -1
  41. package/dist/v2/components/NewTabs/NewTabs.scss.js +1 -1
  42. package/dist/v2/components/NotificationBanner/NotificationBanner.d.ts +16 -0
  43. package/dist/v2/components/NotificationBanner/NotificationBanner.d.ts.map +1 -0
  44. package/dist/v2/components/NotificationBanner/NotificationBanner.js +50 -0
  45. package/dist/v2/components/NotificationBanner/NotificationBanner.scss.js +6 -0
  46. package/dist/v2/components/NotificationBanner/index.d.ts +3 -0
  47. package/dist/v2/components/NotificationBanner/index.d.ts.map +1 -0
  48. package/dist/v2/components/RadioCard/{RadioCard.d.ts → RadioCardGroup.d.ts} +5 -4
  49. package/dist/v2/components/RadioCard/RadioCardGroup.d.ts.map +1 -0
  50. package/dist/v2/components/RadioCard/RadioCardGroup.js +69 -0
  51. package/dist/v2/components/RadioCard/RadioCardGroup.scss.js +6 -0
  52. package/dist/v2/components/RadioCard/index.d.ts +1 -1
  53. package/dist/v2/components/RadioCard/index.d.ts.map +1 -1
  54. package/dist/v2/components/Select/Select.d.ts +7 -1
  55. package/dist/v2/components/Select/Select.d.ts.map +1 -1
  56. package/dist/v2/components/Select/Select.js +9 -2
  57. package/dist/v2/components/Select/index.d.ts +1 -1
  58. package/dist/v2/components/Select/index.d.ts.map +1 -1
  59. package/dist/v2/components/StatusBadge/StatusBadge.d.ts +2 -1
  60. package/dist/v2/components/StatusBadge/StatusBadge.d.ts.map +1 -1
  61. package/dist/v2/components/StatusBadge/StatusBadge.js +7 -3
  62. package/dist/v2/components/StatusBadge/StatusBadge.scss.js +1 -1
  63. package/dist/v2/components/TableControls/TableControls.scss.js +1 -1
  64. package/dist/v2/components/Tabs/Tabs.d.ts.map +1 -1
  65. package/dist/v2/components/Tabs/Tabs.js +40 -0
  66. package/dist/v2/components/Tabs/Tabs.scss.js +1 -1
  67. package/dist/v2/components/Toggle/Toggle.d.ts +10 -0
  68. package/dist/v2/components/Toggle/Toggle.d.ts.map +1 -0
  69. package/dist/v2/components/Toggle/Toggle.js +17 -0
  70. package/dist/v2/components/Toggle/Toggle.scss.js +6 -0
  71. package/dist/v2/components/Toggle/index.d.ts +3 -0
  72. package/dist/v2/components/Toggle/index.d.ts.map +1 -0
  73. package/dist/v2/components/Tooltip/Tooltip.d.ts +0 -1
  74. package/dist/v2/components/Tooltip/Tooltip.d.ts.map +1 -1
  75. package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +1 -1
  76. package/dist/v2/components/index.d.ts +13 -2
  77. package/dist/v2/components/index.d.ts.map +1 -1
  78. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts +1 -1
  79. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts.map +1 -1
  80. package/dist/v2/dashboard-analytics/chart/Chart.d.ts.map +1 -1
  81. package/dist/v2/dashboard-analytics/chart/Chart.js +6 -5
  82. package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts +2 -2
  83. package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts.map +1 -1
  84. package/dist/v2/icons/index.d.ts +98 -4
  85. package/dist/v2/icons/index.d.ts.map +1 -1
  86. package/dist/v2/icons/index.js +497 -2
  87. package/dist/v2/index.d.ts +15 -4
  88. package/dist/v2/index.d.ts.map +1 -1
  89. package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts +3 -0
  90. package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts.map +1 -1
  91. package/dist/v2/navigation/DashboardLayout/AdminSidebar.js +34 -60
  92. package/dist/v2/navigation/DashboardLayout/AdminSidebar.scss.js +1 -1
  93. package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts +3 -0
  94. package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts.map +1 -1
  95. package/dist/v2/navigation/DashboardLayout/DashboardLayout.js +16 -6
  96. package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +1 -1
  97. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts.map +1 -1
  98. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.js +7 -26
  99. package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts +1 -0
  100. package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts.map +1 -1
  101. package/dist/v2/navigation/DashboardLayout/TopNavigation.js +27 -8
  102. package/dist/v2/navigation/DashboardLayout/TopNavigation.scss.js +1 -1
  103. package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts.map +1 -1
  104. package/dist/v2/navigation/config.d.ts.map +1 -1
  105. package/dist/v2/pages/Settings/SettingsPage.scss.js +1 -1
  106. package/dist/v2/pages/Settings/SettingsTabs.scss.js +1 -1
  107. package/dist/v2/pages/Settings/components/SidebarCustomisation.js +9 -1
  108. package/dist/v2/pages/Settings/components/SidebarCustomisation.scss.js +1 -1
  109. package/dist/v2/pages/Settings/components/SidebarNavItem.js +9 -1
  110. package/dist/v2/pages/Settings/components/SidebarNavItem.scss.js +1 -1
  111. package/dist/v2/pages/auth/AuthLayout/AuthLayout.js +138 -0
  112. package/dist/v2/pages/auth/AuthLayout/AuthLayout.scss.js +6 -0
  113. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.js +377 -0
  114. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.scss.js +6 -0
  115. package/dist/{auth → v2/pages/auth}/Login/LoginPage.js +97 -46
  116. package/dist/v2/pages/auth/Login/LoginPage.scss.js +6 -0
  117. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.js +274 -0
  118. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.scss.js +6 -0
  119. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.js +313 -0
  120. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.scss.js +6 -0
  121. package/dist/v2/shadcn/_reference/AccountManagerCard.d.ts +10 -0
  122. package/dist/v2/shadcn/_reference/AccountManagerCard.d.ts.map +1 -0
  123. package/dist/v2/shadcn/_reference/AffiliatesTable.d.ts +18 -0
  124. package/dist/v2/shadcn/_reference/AffiliatesTable.d.ts.map +1 -0
  125. package/dist/v2/shadcn/_reference/AuditArchive.d.ts +7 -0
  126. package/dist/v2/shadcn/_reference/AuditArchive.d.ts.map +1 -0
  127. package/dist/v2/shadcn/_reference/AuditContent.d.ts +4 -0
  128. package/dist/v2/shadcn/_reference/AuditContent.d.ts.map +1 -0
  129. package/dist/v2/shadcn/_reference/AutomationsGeneralSettings.d.ts +4 -0
  130. package/dist/v2/shadcn/_reference/AutomationsGeneralSettings.d.ts.map +1 -0
  131. package/dist/v2/shadcn/_reference/AvatarUpload.d.ts +9 -0
  132. package/dist/v2/shadcn/_reference/AvatarUpload.d.ts.map +1 -0
  133. package/dist/v2/shadcn/_reference/BookingsSummaryCard.d.ts +7 -0
  134. package/dist/v2/shadcn/_reference/BookingsSummaryCard.d.ts.map +1 -0
  135. package/dist/v2/shadcn/_reference/CodeCleanUpAudit.d.ts +4 -0
  136. package/dist/v2/shadcn/_reference/CodeCleanUpAudit.d.ts.map +1 -0
  137. package/dist/v2/shadcn/_reference/CompaniesTable.d.ts +4 -0
  138. package/dist/v2/shadcn/_reference/CompaniesTable.d.ts.map +1 -0
  139. package/dist/v2/shadcn/_reference/ComponentAudit.d.ts +4 -0
  140. package/dist/v2/shadcn/_reference/ComponentAudit.d.ts.map +1 -0
  141. package/dist/v2/shadcn/_reference/ConfigureSettingsCard.d.ts +28 -0
  142. package/dist/v2/shadcn/_reference/ConfigureSettingsCard.d.ts.map +1 -0
  143. package/dist/v2/shadcn/_reference/CustomerCard.d.ts +16 -0
  144. package/dist/v2/shadcn/_reference/CustomerCard.d.ts.map +1 -0
  145. package/dist/v2/shadcn/_reference/DashboardCards.d.ts +4 -0
  146. package/dist/v2/shadcn/_reference/DashboardCards.d.ts.map +1 -0
  147. package/dist/v2/shadcn/_reference/DashboardFooter.d.ts +3 -0
  148. package/dist/v2/shadcn/_reference/DashboardFooter.d.ts.map +1 -0
  149. package/dist/v2/shadcn/_reference/DiarySettings.d.ts +4 -0
  150. package/dist/v2/shadcn/_reference/DiarySettings.d.ts.map +1 -0
  151. package/dist/v2/shadcn/_reference/DiaryView.d.ts +15 -0
  152. package/dist/v2/shadcn/_reference/DiaryView.d.ts.map +1 -0
  153. package/dist/v2/shadcn/_reference/EmptyState.d.ts +10 -0
  154. package/dist/v2/shadcn/_reference/EmptyState.d.ts.map +1 -0
  155. package/dist/v2/shadcn/_reference/EntityInfoCard.d.ts +14 -0
  156. package/dist/v2/shadcn/_reference/EntityInfoCard.d.ts.map +1 -0
  157. package/dist/v2/shadcn/_reference/ExistingUserAssignments.d.ts +7 -0
  158. package/dist/v2/shadcn/_reference/ExistingUserAssignments.d.ts.map +1 -0
  159. package/dist/v2/shadcn/_reference/FeatureToggle.d.ts +20 -0
  160. package/dist/v2/shadcn/_reference/FeatureToggle.d.ts.map +1 -0
  161. package/dist/v2/shadcn/_reference/FlowCard.d.ts +21 -0
  162. package/dist/v2/shadcn/_reference/FlowCard.d.ts.map +1 -0
  163. package/dist/v2/shadcn/_reference/FlowsContent.d.ts +12 -0
  164. package/dist/v2/shadcn/_reference/FlowsContent.d.ts.map +1 -0
  165. package/dist/v2/shadcn/_reference/FlowsGeneralSettings.d.ts +8 -0
  166. package/dist/v2/shadcn/_reference/FlowsGeneralSettings.d.ts.map +1 -0
  167. package/dist/v2/shadcn/_reference/GeneralSettings.d.ts +8 -0
  168. package/dist/v2/shadcn/_reference/GeneralSettings.d.ts.map +1 -0
  169. package/dist/v2/shadcn/_reference/InventoryGeneralSettings.d.ts +17 -0
  170. package/dist/v2/shadcn/_reference/InventoryGeneralSettings.d.ts.map +1 -0
  171. package/dist/v2/shadcn/_reference/LanguageSelector.d.ts +12 -0
  172. package/dist/v2/shadcn/_reference/LanguageSelector.d.ts.map +1 -0
  173. package/dist/v2/shadcn/_reference/LoadingScreen.d.ts +8 -0
  174. package/dist/v2/shadcn/_reference/LoadingScreen.d.ts.map +1 -0
  175. package/dist/v2/shadcn/_reference/LoadingSpinner.d.ts +8 -0
  176. package/dist/v2/shadcn/_reference/LoadingSpinner.d.ts.map +1 -0
  177. package/dist/v2/shadcn/_reference/ManagedClientsList.d.ts +7 -0
  178. package/dist/v2/shadcn/_reference/ManagedClientsList.d.ts.map +1 -0
  179. package/dist/v2/shadcn/_reference/NPSScore.d.ts +8 -0
  180. package/dist/v2/shadcn/_reference/NPSScore.d.ts.map +1 -0
  181. package/dist/v2/shadcn/_reference/NPSSummaryCard.d.ts +8 -0
  182. package/dist/v2/shadcn/_reference/NPSSummaryCard.d.ts.map +1 -0
  183. package/dist/v2/shadcn/_reference/NotificationBanner.d.ts +20 -0
  184. package/dist/v2/shadcn/_reference/NotificationBanner.d.ts.map +1 -0
  185. package/dist/v2/shadcn/_reference/NotificationPanel.d.ts +11 -0
  186. package/dist/v2/shadcn/_reference/NotificationPanel.d.ts.map +1 -0
  187. package/dist/v2/shadcn/_reference/OnlineUsersCard.d.ts +7 -0
  188. package/dist/v2/shadcn/_reference/OnlineUsersCard.d.ts.map +1 -0
  189. package/dist/v2/shadcn/_reference/ProtectedRoute.d.ts +6 -0
  190. package/dist/v2/shadcn/_reference/ProtectedRoute.d.ts.map +1 -0
  191. package/dist/v2/shadcn/_reference/ProvidersTable.d.ts +7 -0
  192. package/dist/v2/shadcn/_reference/ProvidersTable.d.ts.map +1 -0
  193. package/dist/v2/shadcn/_reference/QuickAddPanel.d.ts +18 -0
  194. package/dist/v2/shadcn/_reference/QuickAddPanel.d.ts.map +1 -0
  195. package/dist/v2/shadcn/_reference/QuickFilters.d.ts +28 -0
  196. package/dist/v2/shadcn/_reference/QuickFilters.d.ts.map +1 -0
  197. package/dist/v2/shadcn/_reference/ScheduleView.d.ts +29 -0
  198. package/dist/v2/shadcn/_reference/ScheduleView.d.ts.map +1 -0
  199. package/dist/v2/shadcn/_reference/ScrollToTop.d.ts +3 -0
  200. package/dist/v2/shadcn/_reference/ScrollToTop.d.ts.map +1 -0
  201. package/dist/v2/shadcn/_reference/SecondaryNav.d.ts +12 -0
  202. package/dist/v2/shadcn/_reference/SecondaryNav.d.ts.map +1 -0
  203. package/dist/v2/shadcn/_reference/SecuritySettings.d.ts +8 -0
  204. package/dist/v2/shadcn/_reference/SecuritySettings.d.ts.map +1 -0
  205. package/dist/v2/shadcn/_reference/SessionDetailView.d.ts +33 -0
  206. package/dist/v2/shadcn/_reference/SessionDetailView.d.ts.map +1 -0
  207. package/dist/v2/shadcn/_reference/Sidebar.d.ts +4 -0
  208. package/dist/v2/shadcn/_reference/Sidebar.d.ts.map +1 -0
  209. package/dist/v2/shadcn/_reference/SidebarAwareLayout.d.ts +9 -0
  210. package/dist/v2/shadcn/_reference/SidebarAwareLayout.d.ts.map +1 -0
  211. package/dist/v2/shadcn/_reference/SidebarLabelCustomization.d.ts +9 -0
  212. package/dist/v2/shadcn/_reference/SidebarLabelCustomization.d.ts.map +1 -0
  213. package/dist/v2/shadcn/_reference/SimulationBanner.d.ts +3 -0
  214. package/dist/v2/shadcn/_reference/SimulationBanner.d.ts.map +1 -0
  215. package/dist/v2/shadcn/_reference/SortControls.d.ts +10 -0
  216. package/dist/v2/shadcn/_reference/SortControls.d.ts.map +1 -0
  217. package/dist/v2/shadcn/_reference/StatusBadge.d.ts +7 -0
  218. package/dist/v2/shadcn/_reference/StatusBadge.d.ts.map +1 -0
  219. package/dist/v2/shadcn/_reference/StyleGuideContent.d.ts +85 -0
  220. package/dist/v2/shadcn/_reference/StyleGuideContent.d.ts.map +1 -0
  221. package/dist/v2/shadcn/_reference/TableActionMenu.d.ts +21 -0
  222. package/dist/v2/shadcn/_reference/TableActionMenu.d.ts.map +1 -0
  223. package/dist/v2/shadcn/_reference/ThemeProvider.d.ts +14 -0
  224. package/dist/v2/shadcn/_reference/ThemeProvider.d.ts.map +1 -0
  225. package/dist/v2/shadcn/_reference/ThemeSettings.d.ts +4 -0
  226. package/dist/v2/shadcn/_reference/ThemeSettings.d.ts.map +1 -0
  227. package/dist/v2/shadcn/_reference/TopNavigation.d.ts +4 -0
  228. package/dist/v2/shadcn/_reference/TopNavigation.d.ts.map +1 -0
  229. package/dist/v2/shadcn/_reference/UserActivityHistory.d.ts +8 -0
  230. package/dist/v2/shadcn/_reference/UserActivityHistory.d.ts.map +1 -0
  231. package/dist/v2/shadcn/_reference/UserLanguageSettings.d.ts +4 -0
  232. package/dist/v2/shadcn/_reference/UserLanguageSettings.d.ts.map +1 -0
  233. package/dist/v2/shadcn/_reference/UserPanel.d.ts +9 -0
  234. package/dist/v2/shadcn/_reference/UserPanel.d.ts.map +1 -0
  235. package/dist/v2/shadcn/_reference/UsersTable.d.ts +23 -0
  236. package/dist/v2/shadcn/_reference/UsersTable.d.ts.map +1 -0
  237. package/dist/v2/shadcn/_reference/WaiverForm.d.ts +8 -0
  238. package/dist/v2/shadcn/_reference/WaiverForm.d.ts.map +1 -0
  239. package/dist/v2/shadcn/_reference/WaiversGeneralSettings.d.ts +4 -0
  240. package/dist/v2/shadcn/_reference/WaiversGeneralSettings.d.ts.map +1 -0
  241. package/dist/v2/shadcn/_reference/WaiversTable.d.ts +27 -0
  242. package/dist/v2/shadcn/_reference/WaiversTable.d.ts.map +1 -0
  243. package/dist/v2/shadcn/_reference/WaiversTemplatesSettings.d.ts +4 -0
  244. package/dist/v2/shadcn/_reference/WaiversTemplatesSettings.d.ts.map +1 -0
  245. package/dist/v2/shadcn/_reference/ai/AIChatPanel.d.ts +8 -0
  246. package/dist/v2/shadcn/_reference/ai/AIChatPanel.d.ts.map +1 -0
  247. package/dist/v2/shadcn/_reference/ai/AIChatSearchBar.d.ts +4 -0
  248. package/dist/v2/shadcn/_reference/ai/AIChatSearchBar.d.ts.map +1 -0
  249. package/dist/v2/shadcn/_reference/ai/ChatInteractiveBlock.d.ts +12 -0
  250. package/dist/v2/shadcn/_reference/ai/ChatInteractiveBlock.d.ts.map +1 -0
  251. package/dist/v2/shadcn/_reference/ai/ChatMessageContent.d.ts +11 -0
  252. package/dist/v2/shadcn/_reference/ai/ChatMessageContent.d.ts.map +1 -0
  253. package/dist/v2/shadcn/_reference/ai/parseInteractiveBlocks.d.ts +68 -0
  254. package/dist/v2/shadcn/_reference/ai/parseInteractiveBlocks.d.ts.map +1 -0
  255. package/dist/v2/shadcn/_reference/auth/AuthLayout.d.ts +11 -0
  256. package/dist/v2/shadcn/_reference/auth/AuthLayout.d.ts.map +1 -0
  257. package/dist/v2/shadcn/_reference/auth/CreatePasswordForm.d.ts +3 -0
  258. package/dist/v2/shadcn/_reference/auth/CreatePasswordForm.d.ts.map +1 -0
  259. package/dist/v2/shadcn/_reference/auth/CreatePasswordPanel.d.ts +3 -0
  260. package/dist/v2/shadcn/_reference/auth/CreatePasswordPanel.d.ts.map +1 -0
  261. package/dist/v2/shadcn/_reference/auth/LoginFooter.d.ts +3 -0
  262. package/dist/v2/shadcn/_reference/auth/LoginFooter.d.ts.map +1 -0
  263. package/dist/v2/shadcn/_reference/auth/LoginForm.d.ts +3 -0
  264. package/dist/v2/shadcn/_reference/auth/LoginForm.d.ts.map +1 -0
  265. package/dist/v2/shadcn/_reference/auth/LoginPanel.d.ts +3 -0
  266. package/dist/v2/shadcn/_reference/auth/LoginPanel.d.ts.map +1 -0
  267. package/dist/v2/shadcn/_reference/auth/ResetPasswordForm.d.ts +3 -0
  268. package/dist/v2/shadcn/_reference/auth/ResetPasswordForm.d.ts.map +1 -0
  269. package/dist/v2/shadcn/_reference/auth/ResetPasswordPanel.d.ts +3 -0
  270. package/dist/v2/shadcn/_reference/auth/ResetPasswordPanel.d.ts.map +1 -0
  271. package/dist/v2/shadcn/_reference/auth/VerifyEmailForm.d.ts +3 -0
  272. package/dist/v2/shadcn/_reference/auth/VerifyEmailForm.d.ts.map +1 -0
  273. package/dist/v2/shadcn/_reference/auth/VerifyEmailPanel.d.ts +3 -0
  274. package/dist/v2/shadcn/_reference/auth/VerifyEmailPanel.d.ts.map +1 -0
  275. package/dist/v2/shadcn/_reference/email/EmailAttachment.d.ts +14 -0
  276. package/dist/v2/shadcn/_reference/email/EmailAttachment.d.ts.map +1 -0
  277. package/dist/v2/shadcn/_reference/email/EmailAutomation.d.ts +12 -0
  278. package/dist/v2/shadcn/_reference/email/EmailAutomation.d.ts.map +1 -0
  279. package/dist/v2/shadcn/_reference/email/EmailPlaceholders.d.ts +11 -0
  280. package/dist/v2/shadcn/_reference/email/EmailPlaceholders.d.ts.map +1 -0
  281. package/dist/v2/shadcn/_reference/email/UnlayerEmailEditor.d.ts +9 -0
  282. package/dist/v2/shadcn/_reference/email/UnlayerEmailEditor.d.ts.map +1 -0
  283. package/dist/v2/shadcn/_reference/email/emailTemplateData.d.ts +14 -0
  284. package/dist/v2/shadcn/_reference/email/emailTemplateData.d.ts.map +1 -0
  285. package/dist/v2/shadcn/_reference/emptyStateIcons.d.ts +18 -0
  286. package/dist/v2/shadcn/_reference/emptyStateIcons.d.ts.map +1 -0
  287. package/dist/v2/shadcn/_reference/games/MazeGame.d.ts +4 -0
  288. package/dist/v2/shadcn/_reference/games/MazeGame.d.ts.map +1 -0
  289. package/dist/v2/shadcn/_reference/games/RunnerGame.d.ts +4 -0
  290. package/dist/v2/shadcn/_reference/games/RunnerGame.d.ts.map +1 -0
  291. package/dist/v2/shadcn/_reference/logos/BookedLogoFull.d.ts +6 -0
  292. package/dist/v2/shadcn/_reference/logos/BookedLogoFull.d.ts.map +1 -0
  293. package/dist/v2/shadcn/_reference/logos/BookedLogoMark.d.ts +7 -0
  294. package/dist/v2/shadcn/_reference/logos/BookedLogoMark.d.ts.map +1 -0
  295. package/dist/v2/shadcn/_reference/logos/BookedLogoNew.d.ts +6 -0
  296. package/dist/v2/shadcn/_reference/logos/BookedLogoNew.d.ts.map +1 -0
  297. package/dist/v2/shadcn/_reference/pricing/DynamicPricingRulesEditor.d.ts +31 -0
  298. package/dist/v2/shadcn/_reference/pricing/DynamicPricingRulesEditor.d.ts.map +1 -0
  299. package/dist/v2/shadcn/_reference/pricing/DynamicPricingTierCard.d.ts +24 -0
  300. package/dist/v2/shadcn/_reference/pricing/DynamicPricingTierCard.d.ts.map +1 -0
  301. package/dist/v2/shadcn/_reference/pricing/DynamicPricingTiersList.d.ts +4 -0
  302. package/dist/v2/shadcn/_reference/pricing/DynamicPricingTiersList.d.ts.map +1 -0
  303. package/dist/v2/shadcn/_reference/pricing/PricingCalendar.d.ts +4 -0
  304. package/dist/v2/shadcn/_reference/pricing/PricingCalendar.d.ts.map +1 -0
  305. package/dist/v2/shadcn/_reference/pricing/PricingPeriodCard.d.ts +35 -0
  306. package/dist/v2/shadcn/_reference/pricing/PricingPeriodCard.d.ts.map +1 -0
  307. package/dist/v2/shadcn/_reference/pricing/PricingPeriodForm.d.ts +19 -0
  308. package/dist/v2/shadcn/_reference/pricing/PricingPeriodForm.d.ts.map +1 -0
  309. package/dist/v2/shadcn/_reference/pricing/PricingPeriodsList.d.ts +4 -0
  310. package/dist/v2/shadcn/_reference/pricing/PricingPeriodsList.d.ts.map +1 -0
  311. package/dist/v2/shadcn/_reference/pricing/getRuleSummary.d.ts +4 -0
  312. package/dist/v2/shadcn/_reference/pricing/getRuleSummary.d.ts.map +1 -0
  313. package/dist/v2/shadcn/_reference/products/AvailabilityRulesSection.d.ts +24 -0
  314. package/dist/v2/shadcn/_reference/products/AvailabilityRulesSection.d.ts.map +1 -0
  315. package/dist/v2/shadcn/_reference/products/AvailabilitySection.d.ts +20 -0
  316. package/dist/v2/shadcn/_reference/products/AvailabilitySection.d.ts.map +1 -0
  317. package/dist/v2/shadcn/_reference/products/BookingTypeConfigOptions.d.ts +17 -0
  318. package/dist/v2/shadcn/_reference/products/BookingTypeConfigOptions.d.ts.map +1 -0
  319. package/dist/v2/shadcn/_reference/products/CapacityPeriodsSection.d.ts +18 -0
  320. package/dist/v2/shadcn/_reference/products/CapacityPeriodsSection.d.ts.map +1 -0
  321. package/dist/v2/shadcn/_reference/products/DynamicPricingTiersSection.d.ts +17 -0
  322. package/dist/v2/shadcn/_reference/products/DynamicPricingTiersSection.d.ts.map +1 -0
  323. package/dist/v2/shadcn/_reference/products/GiftCardOrdersTab.d.ts +7 -0
  324. package/dist/v2/shadcn/_reference/products/GiftCardOrdersTab.d.ts.map +1 -0
  325. package/dist/v2/shadcn/_reference/products/GiftCardSettings.d.ts +28 -0
  326. package/dist/v2/shadcn/_reference/products/GiftCardSettings.d.ts.map +1 -0
  327. package/dist/v2/shadcn/_reference/products/PackageProductsSection.d.ts +18 -0
  328. package/dist/v2/shadcn/_reference/products/PackageProductsSection.d.ts.map +1 -0
  329. package/dist/v2/shadcn/_reference/products/PricingSection.d.ts +13 -0
  330. package/dist/v2/shadcn/_reference/products/PricingSection.d.ts.map +1 -0
  331. package/dist/v2/shadcn/_reference/products/ProductTypeFields.d.ts +13 -0
  332. package/dist/v2/shadcn/_reference/products/ProductTypeFields.d.ts.map +1 -0
  333. package/dist/v2/shadcn/_reference/products/ProductTypeIcon.d.ts +9 -0
  334. package/dist/v2/shadcn/_reference/products/ProductTypeIcon.d.ts.map +1 -0
  335. package/dist/v2/shadcn/_reference/products/VariablePricingSection.d.ts +26 -0
  336. package/dist/v2/shadcn/_reference/products/VariablePricingSection.d.ts.map +1 -0
  337. package/dist/v2/shadcn/_reference/products/productTypeConfig.d.ts +28 -0
  338. package/dist/v2/shadcn/_reference/products/productTypeConfig.d.ts.map +1 -0
  339. package/dist/v2/shadcn/_reference/shared/BackButton.d.ts +13 -0
  340. package/dist/v2/shadcn/_reference/shared/BackButton.d.ts.map +1 -0
  341. package/dist/v2/shadcn/_reference/shared/CancelConfirmationDialog.d.ts +12 -0
  342. package/dist/v2/shadcn/_reference/shared/CancelConfirmationDialog.d.ts.map +1 -0
  343. package/dist/v2/shadcn/_reference/shared/ConfirmationDialog.d.ts +16 -0
  344. package/dist/v2/shadcn/_reference/shared/ConfirmationDialog.d.ts.map +1 -0
  345. package/dist/v2/shadcn/_reference/shared/DeleteConfirmationDialog.d.ts +12 -0
  346. package/dist/v2/shadcn/_reference/shared/DeleteConfirmationDialog.d.ts.map +1 -0
  347. package/dist/v2/shadcn/_reference/shared/DeleteEntityPage.d.ts +39 -0
  348. package/dist/v2/shadcn/_reference/shared/DeleteEntityPage.d.ts.map +1 -0
  349. package/dist/v2/shadcn/_reference/shared/SidebarIcons.d.ts +18 -0
  350. package/dist/v2/shadcn/_reference/shared/SidebarIcons.d.ts.map +1 -0
  351. package/dist/v2/shadcn/_reference/shared/UnifiedSidebar.d.ts +29 -0
  352. package/dist/v2/shadcn/_reference/shared/UnifiedSidebar.d.ts.map +1 -0
  353. package/dist/v2/shadcn/_reference/tables/BulkActionsBar.d.ts +17 -0
  354. package/dist/v2/shadcn/_reference/tables/BulkActionsBar.d.ts.map +1 -0
  355. package/dist/v2/shadcn/_reference/tables/DataTable.d.ts +7 -0
  356. package/dist/v2/shadcn/_reference/tables/DataTable.d.ts.map +1 -0
  357. package/dist/v2/shadcn/_reference/tables/TableControls.d.ts +8 -0
  358. package/dist/v2/shadcn/_reference/tables/TableControls.d.ts.map +1 -0
  359. package/dist/v2/shadcn/_reference/tables/index.d.ts +4 -0
  360. package/dist/v2/shadcn/_reference/tables/index.d.ts.map +1 -0
  361. package/dist/v2/shadcn/_reference/tables/types.d.ts +64 -0
  362. package/dist/v2/shadcn/_reference/tables/types.d.ts.map +1 -0
  363. package/dist/v2/shadcn/_reference/zones/LegacyZoneSettings.d.ts +24 -0
  364. package/dist/v2/shadcn/_reference/zones/LegacyZoneSettings.d.ts.map +1 -0
  365. package/dist/v2/shadcn/components/ui/accordion.d.ts +8 -0
  366. package/dist/v2/shadcn/components/ui/accordion.d.ts.map +1 -0
  367. package/dist/v2/shadcn/components/ui/alert-dialog.d.ts +21 -0
  368. package/dist/v2/shadcn/components/ui/alert-dialog.d.ts.map +1 -0
  369. package/dist/v2/shadcn/components/ui/alert.d.ts +9 -0
  370. package/dist/v2/shadcn/components/ui/alert.d.ts.map +1 -0
  371. package/dist/v2/shadcn/components/ui/aspect-ratio.d.ts +4 -0
  372. package/dist/v2/shadcn/components/ui/aspect-ratio.d.ts.map +1 -0
  373. package/dist/v2/shadcn/components/ui/avatar.d.ts +7 -0
  374. package/dist/v2/shadcn/components/ui/avatar.d.ts.map +1 -0
  375. package/dist/v2/shadcn/components/ui/badge.d.ts +10 -0
  376. package/dist/v2/shadcn/components/ui/badge.d.ts.map +1 -0
  377. package/dist/v2/shadcn/components/ui/breadcrumb.d.ts +20 -0
  378. package/dist/v2/shadcn/components/ui/breadcrumb.d.ts.map +1 -0
  379. package/dist/v2/shadcn/components/ui/button.d.ts +14 -0
  380. package/dist/v2/shadcn/components/ui/button.d.ts.map +1 -0
  381. package/dist/v2/shadcn/components/ui/calendar.d.ts +9 -0
  382. package/dist/v2/shadcn/components/ui/calendar.d.ts.map +1 -0
  383. package/dist/v2/shadcn/components/ui/card.d.ts +9 -0
  384. package/dist/v2/shadcn/components/ui/card.d.ts.map +1 -0
  385. package/dist/v2/shadcn/components/ui/carousel.d.ts +19 -0
  386. package/dist/v2/shadcn/components/ui/carousel.d.ts.map +1 -0
  387. package/dist/v2/shadcn/components/ui/checkbox.d.ts +6 -0
  388. package/dist/v2/shadcn/components/ui/checkbox.d.ts.map +1 -0
  389. package/dist/v2/shadcn/components/ui/checkbox.js +115 -0
  390. package/dist/v2/shadcn/components/ui/checkbox.scss.js +6 -0
  391. package/dist/v2/shadcn/components/ui/collapsible.d.ts +6 -0
  392. package/dist/v2/shadcn/components/ui/collapsible.d.ts.map +1 -0
  393. package/dist/v2/shadcn/components/ui/command.d.ts +83 -0
  394. package/dist/v2/shadcn/components/ui/command.d.ts.map +1 -0
  395. package/dist/v2/shadcn/components/ui/context-menu.d.ts +28 -0
  396. package/dist/v2/shadcn/components/ui/context-menu.d.ts.map +1 -0
  397. package/dist/v2/shadcn/components/ui/dialog.d.ts +20 -0
  398. package/dist/v2/shadcn/components/ui/dialog.d.ts.map +1 -0
  399. package/dist/v2/shadcn/components/ui/dialog.js +169 -0
  400. package/dist/v2/shadcn/components/ui/drawer.d.ts +23 -0
  401. package/dist/v2/shadcn/components/ui/drawer.d.ts.map +1 -0
  402. package/dist/v2/shadcn/components/ui/dropdown-menu.d.ts +28 -0
  403. package/dist/v2/shadcn/components/ui/dropdown-menu.d.ts.map +1 -0
  404. package/dist/v2/shadcn/components/ui/form.d.ts +24 -0
  405. package/dist/v2/shadcn/components/ui/form.d.ts.map +1 -0
  406. package/dist/v2/shadcn/components/ui/hover-card.d.ts +7 -0
  407. package/dist/v2/shadcn/components/ui/hover-card.d.ts.map +1 -0
  408. package/dist/v2/shadcn/components/ui/input-otp.d.ts +35 -0
  409. package/dist/v2/shadcn/components/ui/input-otp.d.ts.map +1 -0
  410. package/dist/v2/shadcn/components/ui/input.d.ts +6 -0
  411. package/dist/v2/shadcn/components/ui/input.d.ts.map +1 -0
  412. package/dist/v2/shadcn/components/ui/label.d.ts +6 -0
  413. package/dist/v2/shadcn/components/ui/label.d.ts.map +1 -0
  414. package/dist/v2/shadcn/components/ui/menubar.d.ts +34 -0
  415. package/dist/v2/shadcn/components/ui/menubar.d.ts.map +1 -0
  416. package/dist/v2/shadcn/components/ui/navigation-menu.d.ts +13 -0
  417. package/dist/v2/shadcn/components/ui/navigation-menu.d.ts.map +1 -0
  418. package/dist/v2/shadcn/components/ui/pagination.d.ts +29 -0
  419. package/dist/v2/shadcn/components/ui/pagination.d.ts.map +1 -0
  420. package/dist/v2/shadcn/components/ui/popover.d.ts +7 -0
  421. package/dist/v2/shadcn/components/ui/popover.d.ts.map +1 -0
  422. package/dist/v2/shadcn/components/ui/progress.d.ts +5 -0
  423. package/dist/v2/shadcn/components/ui/progress.d.ts.map +1 -0
  424. package/dist/v2/shadcn/components/ui/radio-card.d.ts +12 -0
  425. package/dist/v2/shadcn/components/ui/radio-card.d.ts.map +1 -0
  426. package/dist/v2/shadcn/components/ui/radio-group.d.ts +6 -0
  427. package/dist/v2/shadcn/components/ui/radio-group.d.ts.map +1 -0
  428. package/dist/v2/shadcn/components/ui/scroll-area.d.ts +6 -0
  429. package/dist/v2/shadcn/components/ui/scroll-area.d.ts.map +1 -0
  430. package/dist/v2/shadcn/components/ui/select.d.ts +14 -0
  431. package/dist/v2/shadcn/components/ui/select.d.ts.map +1 -0
  432. package/dist/v2/shadcn/components/ui/separator.d.ts +5 -0
  433. package/dist/v2/shadcn/components/ui/separator.d.ts.map +1 -0
  434. package/dist/v2/shadcn/components/ui/sheet.d.ts +26 -0
  435. package/dist/v2/shadcn/components/ui/sheet.d.ts.map +1 -0
  436. package/dist/v2/shadcn/components/ui/sidebar.d.ts +67 -0
  437. package/dist/v2/shadcn/components/ui/sidebar.d.ts.map +1 -0
  438. package/dist/v2/shadcn/components/ui/skeleton.d.ts +3 -0
  439. package/dist/v2/shadcn/components/ui/skeleton.d.ts.map +1 -0
  440. package/dist/v2/shadcn/components/ui/slider.d.ts +5 -0
  441. package/dist/v2/shadcn/components/ui/slider.d.ts.map +1 -0
  442. package/dist/v2/shadcn/components/ui/switch.d.ts +6 -0
  443. package/dist/v2/shadcn/components/ui/switch.d.ts.map +1 -0
  444. package/dist/v2/shadcn/components/ui/switch.js +115 -0
  445. package/dist/v2/shadcn/components/ui/switch.scss.js +6 -0
  446. package/dist/v2/shadcn/components/ui/table-pagination.d.ts +11 -0
  447. package/dist/v2/shadcn/components/ui/table-pagination.d.ts.map +1 -0
  448. package/dist/v2/shadcn/components/ui/table.d.ts +11 -0
  449. package/dist/v2/shadcn/components/ui/table.d.ts.map +1 -0
  450. package/dist/v2/shadcn/components/ui/tabs.d.ts +8 -0
  451. package/dist/v2/shadcn/components/ui/tabs.d.ts.map +1 -0
  452. package/dist/v2/shadcn/components/ui/textarea.d.ts +6 -0
  453. package/dist/v2/shadcn/components/ui/textarea.d.ts.map +1 -0
  454. package/dist/v2/shadcn/components/ui/toast.d.ts +16 -0
  455. package/dist/v2/shadcn/components/ui/toast.d.ts.map +1 -0
  456. package/dist/v2/shadcn/components/ui/toaster.d.ts +2 -0
  457. package/dist/v2/shadcn/components/ui/toaster.d.ts.map +1 -0
  458. package/dist/v2/shadcn/components/ui/toggle-group.d.ts +13 -0
  459. package/dist/v2/shadcn/components/ui/toggle-group.d.ts.map +1 -0
  460. package/dist/v2/shadcn/components/ui/toggle.d.ts +13 -0
  461. package/dist/v2/shadcn/components/ui/toggle.d.ts.map +1 -0
  462. package/dist/v2/shadcn/components/ui/tooltip.d.ts +8 -0
  463. package/dist/v2/shadcn/components/ui/tooltip.d.ts.map +1 -0
  464. package/dist/v2/shadcn/components/ui/use-toast.d.ts +3 -0
  465. package/dist/v2/shadcn/components/ui/use-toast.d.ts.map +1 -0
  466. package/dist/v2/shadcn/hooks/use-mobile.d.ts +2 -0
  467. package/dist/v2/shadcn/hooks/use-mobile.d.ts.map +1 -0
  468. package/dist/v2/shadcn/hooks/use-toast.d.ts +45 -0
  469. package/dist/v2/shadcn/hooks/use-toast.d.ts.map +1 -0
  470. package/dist/v2/shadcn/index.d.ts +20 -0
  471. package/dist/v2/shadcn/index.d.ts.map +1 -0
  472. package/dist/v2/shadcn/lib/utils.d.ts +3 -0
  473. package/dist/v2/shadcn/lib/utils.d.ts.map +1 -0
  474. package/dist/v2/shadcn/lib/utils.js +11 -0
  475. package/dist/v2/shadcn/styles/globals.css +112 -0
  476. package/dist/v2/styles/components/Button.scss +21 -23
  477. package/dist/v2/styles/form/NewInput.scss +1 -1
  478. package/dist/v2/styles/form/NewInput.scss.js +1 -1
  479. package/dist/v2/styles/tokens/_colors.scss +20 -0
  480. package/dist/v2/styles/tokens/_sizes.scss +4 -4
  481. package/dist/v2/types/navigation.d.ts +1 -0
  482. package/dist/v2/types/navigation.d.ts.map +1 -1
  483. package/package.json +38 -3
  484. package/rollup.config.js +1 -0
  485. package/src/index.ts +4 -2
  486. package/src/v2/components/AccountManagerCard/AccountManagerCard.scss +75 -0
  487. package/src/v2/components/AccountManagerCard/AccountManagerCard.stories.tsx +35 -0
  488. package/src/v2/components/AccountManagerCard/AccountManagerCard.tsx +37 -0
  489. package/src/v2/components/AccountManagerCard/index.ts +2 -0
  490. package/src/v2/components/AvatarUpload/AvatarUpload.scss +31 -9
  491. package/src/v2/components/AvatarUpload/AvatarUpload.tsx +13 -7
  492. package/src/v2/components/Button/Button.tsx +1 -0
  493. package/src/v2/components/Button/GhostButton.scss +2 -2
  494. package/src/v2/components/Customer/CustomersList.scss +48 -28
  495. package/src/v2/components/DataTable/DataTable.scss +14 -20
  496. package/src/v2/components/DataTable/DataTable.tsx +35 -34
  497. package/src/v2/components/FeatureToggle/FeatureToggle.scss +64 -0
  498. package/src/v2/components/FeatureToggle/FeatureToggle.stories.tsx +56 -0
  499. package/src/v2/components/FeatureToggle/FeatureToggle.tsx +41 -0
  500. package/src/v2/components/FeatureToggle/index.ts +2 -0
  501. package/src/v2/components/InputCheckbox/InputCheckbox.scss +6 -6
  502. package/src/v2/components/Modal/DeleteModal.scss +46 -85
  503. package/src/v2/components/Modal/DeleteModal.tsx +39 -35
  504. package/src/v2/components/NPSScore/NPSScore.tsx +2 -2
  505. package/src/v2/components/NewTable/NewTable.scss +1 -1
  506. package/src/v2/components/NewTabs/NewTabs.scss +4 -4
  507. package/src/v2/components/NotificationBanner/NotificationBanner.scss +123 -0
  508. package/src/v2/components/NotificationBanner/NotificationBanner.stories.tsx +54 -0
  509. package/src/v2/components/NotificationBanner/NotificationBanner.tsx +45 -0
  510. package/src/v2/components/NotificationBanner/index.ts +2 -0
  511. package/src/v2/components/RadioCard/RadioCard.stories.tsx +8 -8
  512. package/src/v2/components/RadioCard/{RadioCard.scss → RadioCardGroup.scss} +31 -6
  513. package/src/v2/components/RadioCard/{RadioCard.tsx → RadioCardGroup.tsx} +12 -4
  514. package/src/v2/components/RadioCard/index.ts +1 -1
  515. package/src/v2/components/Select/Select.tsx +15 -1
  516. package/src/v2/components/Select/index.ts +1 -1
  517. package/src/v2/components/StatusBadge/StatusBadge.tsx +11 -2
  518. package/src/v2/components/Tabs/Tabs.scss +41 -14
  519. package/src/v2/components/Tabs/Tabs.tsx +2 -1
  520. package/src/v2/components/Toggle/Toggle.scss +2 -0
  521. package/src/v2/components/Toggle/Toggle.tsx +20 -0
  522. package/src/v2/components/Toggle/index.ts +2 -0
  523. package/src/v2/components/Tooltip/Tooltip.tsx +0 -1
  524. package/src/v2/components/index.ts +26 -1
  525. package/src/v2/dashboard-analytics/blog-posts/index.ts +1 -1
  526. package/src/v2/dashboard-analytics/chart/Chart.tsx +20 -17
  527. package/src/v2/dashboard-analytics/venue-card/VenueCard.tsx +2 -2
  528. package/src/v2/icons/index.tsx +175 -9
  529. package/src/v2/index.ts +88 -7
  530. package/src/v2/navigation/DashboardLayout/AdminSidebar.scss +46 -8
  531. package/src/v2/navigation/DashboardLayout/AdminSidebar.tsx +35 -21
  532. package/src/v2/navigation/DashboardLayout/DashboardLayout.scss +3 -2
  533. package/src/v2/navigation/DashboardLayout/DashboardLayout.tsx +23 -5
  534. package/src/v2/navigation/DashboardLayout/ProviderSidebar.tsx +6 -7
  535. package/src/v2/navigation/DashboardLayout/TopNavigation.scss +16 -1
  536. package/src/v2/navigation/DashboardLayout/TopNavigation.tsx +20 -41
  537. package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.tsx +1 -1
  538. package/src/v2/navigation/FigmasSideBar/FigmasSideBar.tsx +1 -2
  539. package/src/v2/navigation/FigmasTopHat/FigmasTopHat.tsx +6 -6
  540. package/src/v2/navigation/Navigation/Navigation.scss +1 -1
  541. package/src/v2/navigation/Navigation/Navigation.tsx +0 -1
  542. package/src/v2/navigation/Navigation/index.ts +0 -1
  543. package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.tsx +1 -1
  544. package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.tsx +1 -1
  545. package/src/v2/navigation/config.tsx +0 -1
  546. package/src/v2/shadcn/_reference/AccountManagerCard.tsx +45 -0
  547. package/src/v2/shadcn/_reference/AffiliatesTable.tsx +178 -0
  548. package/src/v2/shadcn/_reference/AuditArchive.tsx +165 -0
  549. package/src/v2/shadcn/_reference/AuditContent.tsx +270 -0
  550. package/src/v2/shadcn/_reference/AutomationsGeneralSettings.tsx +251 -0
  551. package/src/v2/shadcn/_reference/AvatarUpload.tsx +150 -0
  552. package/src/v2/shadcn/_reference/BookingsSummaryCard.tsx +268 -0
  553. package/src/v2/shadcn/_reference/CodeCleanUpAudit.tsx +274 -0
  554. package/src/v2/shadcn/_reference/CompaniesTable.tsx +387 -0
  555. package/src/v2/shadcn/_reference/ComponentAudit.tsx +239 -0
  556. package/src/v2/shadcn/_reference/ConfigureSettingsCard.tsx +95 -0
  557. package/src/v2/shadcn/_reference/CustomerCard.tsx +155 -0
  558. package/src/v2/shadcn/_reference/DashboardCards.tsx +50 -0
  559. package/src/v2/shadcn/_reference/DashboardFooter.tsx +18 -0
  560. package/src/v2/shadcn/_reference/DiarySettings.tsx +187 -0
  561. package/src/v2/shadcn/_reference/DiaryView.tsx +998 -0
  562. package/src/v2/shadcn/_reference/EmptyState.tsx +76 -0
  563. package/src/v2/shadcn/_reference/EntityInfoCard.tsx +48 -0
  564. package/src/v2/shadcn/_reference/ExistingUserAssignments.tsx +131 -0
  565. package/src/v2/shadcn/_reference/FeatureToggle.tsx +72 -0
  566. package/src/v2/shadcn/_reference/FlowCard.tsx +170 -0
  567. package/src/v2/shadcn/_reference/FlowsContent.tsx +688 -0
  568. package/src/v2/shadcn/_reference/FlowsGeneralSettings.tsx +27 -0
  569. package/src/v2/shadcn/_reference/GeneralSettings.tsx +33 -0
  570. package/src/v2/shadcn/_reference/InventoryGeneralSettings.tsx +82 -0
  571. package/src/v2/shadcn/_reference/LanguageSelector.tsx +97 -0
  572. package/src/v2/shadcn/_reference/LoadingScreen.tsx +25 -0
  573. package/src/v2/shadcn/_reference/LoadingSpinner.tsx +41 -0
  574. package/src/v2/shadcn/_reference/ManagedClientsList.tsx +121 -0
  575. package/src/v2/shadcn/_reference/NPSScore.tsx +379 -0
  576. package/src/v2/shadcn/_reference/NPSSummaryCard.tsx +181 -0
  577. package/src/v2/shadcn/_reference/NotificationBanner.tsx +129 -0
  578. package/src/v2/shadcn/_reference/NotificationPanel.tsx +208 -0
  579. package/src/v2/shadcn/_reference/OnlineUsersCard.tsx +73 -0
  580. package/src/v2/shadcn/_reference/ProtectedRoute.tsx +39 -0
  581. package/src/v2/shadcn/_reference/ProvidersTable.tsx +353 -0
  582. package/src/v2/shadcn/_reference/QuickAddPanel.tsx +1057 -0
  583. package/src/v2/shadcn/_reference/QuickFilters.tsx +112 -0
  584. package/src/v2/shadcn/_reference/ScheduleView.tsx +410 -0
  585. package/src/v2/shadcn/_reference/ScrollToTop.tsx +14 -0
  586. package/src/v2/shadcn/_reference/SecondaryNav.tsx +50 -0
  587. package/src/v2/shadcn/_reference/SecuritySettings.tsx +258 -0
  588. package/src/v2/shadcn/_reference/SessionDetailView.tsx +294 -0
  589. package/src/v2/shadcn/_reference/Sidebar.tsx +14 -0
  590. package/src/v2/shadcn/_reference/SidebarAwareLayout.tsx +30 -0
  591. package/src/v2/shadcn/_reference/SidebarLabelCustomization.tsx +285 -0
  592. package/src/v2/shadcn/_reference/SimulationBanner.tsx +57 -0
  593. package/src/v2/shadcn/_reference/SortControls.tsx +65 -0
  594. package/src/v2/shadcn/_reference/StatusBadge.tsx +49 -0
  595. package/src/v2/shadcn/_reference/StyleGuideContent.tsx +331 -0
  596. package/src/v2/shadcn/_reference/TableActionMenu.tsx +126 -0
  597. package/src/v2/shadcn/_reference/ThemeProvider.tsx +119 -0
  598. package/src/v2/shadcn/_reference/ThemeSettings.tsx +73 -0
  599. package/src/v2/shadcn/_reference/TopNavigation.tsx +332 -0
  600. package/src/v2/shadcn/_reference/UserActivityHistory.tsx +209 -0
  601. package/src/v2/shadcn/_reference/UserLanguageSettings.tsx +94 -0
  602. package/src/v2/shadcn/_reference/UserPanel.tsx +472 -0
  603. package/src/v2/shadcn/_reference/UsersTable.tsx +1023 -0
  604. package/src/v2/shadcn/_reference/WaiverForm.tsx +301 -0
  605. package/src/v2/shadcn/_reference/WaiversGeneralSettings.tsx +46 -0
  606. package/src/v2/shadcn/_reference/WaiversTable.tsx +290 -0
  607. package/src/v2/shadcn/_reference/WaiversTemplatesSettings.tsx +416 -0
  608. package/src/v2/shadcn/_reference/ai/AIChatPanel.tsx +313 -0
  609. package/src/v2/shadcn/_reference/ai/AIChatSearchBar.tsx +36 -0
  610. package/src/v2/shadcn/_reference/ai/ChatInteractiveBlock.tsx +298 -0
  611. package/src/v2/shadcn/_reference/ai/ChatMessageContent.tsx +40 -0
  612. package/src/v2/shadcn/_reference/ai/parseInteractiveBlocks.ts +142 -0
  613. package/src/v2/shadcn/_reference/auth/AuthLayout.tsx +55 -0
  614. package/src/v2/shadcn/_reference/auth/CreatePasswordForm.tsx +285 -0
  615. package/src/v2/shadcn/_reference/auth/CreatePasswordPanel.tsx +18 -0
  616. package/src/v2/shadcn/_reference/auth/LoginFooter.tsx +14 -0
  617. package/src/v2/shadcn/_reference/auth/LoginForm.tsx +201 -0
  618. package/src/v2/shadcn/_reference/auth/LoginPanel.tsx +39 -0
  619. package/src/v2/shadcn/_reference/auth/ResetPasswordForm.tsx +100 -0
  620. package/src/v2/shadcn/_reference/auth/ResetPasswordPanel.tsx +18 -0
  621. package/src/v2/shadcn/_reference/auth/VerifyEmailForm.tsx +93 -0
  622. package/src/v2/shadcn/_reference/auth/VerifyEmailPanel.tsx +18 -0
  623. package/src/v2/shadcn/_reference/email/EmailAttachment.tsx +117 -0
  624. package/src/v2/shadcn/_reference/email/EmailAutomation.tsx +92 -0
  625. package/src/v2/shadcn/_reference/email/EmailPlaceholders.tsx +64 -0
  626. package/src/v2/shadcn/_reference/email/UnlayerEmailEditor.tsx +41 -0
  627. package/src/v2/shadcn/_reference/email/emailTemplateData.ts +53 -0
  628. package/src/v2/shadcn/_reference/emptyStateIcons.tsx +103 -0
  629. package/src/v2/shadcn/_reference/games/MazeGame.tsx +394 -0
  630. package/src/v2/shadcn/_reference/games/RunnerGame.tsx +497 -0
  631. package/src/v2/shadcn/_reference/logos/BookedLogoFull.tsx +36 -0
  632. package/src/v2/shadcn/_reference/logos/BookedLogoMark.tsx +31 -0
  633. package/src/v2/shadcn/_reference/logos/BookedLogoNew.tsx +36 -0
  634. package/src/v2/shadcn/_reference/pricing/DynamicPricingRulesEditor.tsx +401 -0
  635. package/src/v2/shadcn/_reference/pricing/DynamicPricingTierCard.tsx +77 -0
  636. package/src/v2/shadcn/_reference/pricing/DynamicPricingTiersList.tsx +218 -0
  637. package/src/v2/shadcn/_reference/pricing/PricingCalendar.tsx +810 -0
  638. package/src/v2/shadcn/_reference/pricing/PricingPeriodCard.tsx +152 -0
  639. package/src/v2/shadcn/_reference/pricing/PricingPeriodForm.tsx +377 -0
  640. package/src/v2/shadcn/_reference/pricing/PricingPeriodsList.tsx +213 -0
  641. package/src/v2/shadcn/_reference/pricing/getRuleSummary.ts +39 -0
  642. package/src/v2/shadcn/_reference/products/AvailabilityRulesSection.tsx +184 -0
  643. package/src/v2/shadcn/_reference/products/AvailabilitySection.tsx +677 -0
  644. package/src/v2/shadcn/_reference/products/BookingTypeConfigOptions.tsx +40 -0
  645. package/src/v2/shadcn/_reference/products/CapacityPeriodsSection.tsx +238 -0
  646. package/src/v2/shadcn/_reference/products/DynamicPricingTiersSection.tsx +131 -0
  647. package/src/v2/shadcn/_reference/products/GiftCardOrdersTab.tsx +192 -0
  648. package/src/v2/shadcn/_reference/products/GiftCardSettings.tsx +342 -0
  649. package/src/v2/shadcn/_reference/products/PackageProductsSection.tsx +322 -0
  650. package/src/v2/shadcn/_reference/products/PricingSection.tsx +173 -0
  651. package/src/v2/shadcn/_reference/products/ProductTypeFields.tsx +353 -0
  652. package/src/v2/shadcn/_reference/products/ProductTypeIcon.tsx +95 -0
  653. package/src/v2/shadcn/_reference/products/VariablePricingSection.tsx +140 -0
  654. package/src/v2/shadcn/_reference/products/productTypeConfig.ts +182 -0
  655. package/src/v2/shadcn/_reference/shared/BackButton.tsx +50 -0
  656. package/src/v2/shadcn/_reference/shared/CancelConfirmationDialog.tsx +18 -0
  657. package/src/v2/shadcn/_reference/shared/ConfirmationDialog.tsx +134 -0
  658. package/src/v2/shadcn/_reference/shared/DeleteConfirmationDialog.tsx +18 -0
  659. package/src/v2/shadcn/_reference/shared/DeleteEntityPage.tsx +221 -0
  660. package/src/v2/shadcn/_reference/shared/SidebarIcons.tsx +108 -0
  661. package/src/v2/shadcn/_reference/shared/UnifiedSidebar.tsx +722 -0
  662. package/src/v2/shadcn/_reference/tables/BulkActionsBar.tsx +68 -0
  663. package/src/v2/shadcn/_reference/tables/DataTable.tsx +221 -0
  664. package/src/v2/shadcn/_reference/tables/TableControls.tsx +94 -0
  665. package/src/v2/shadcn/_reference/tables/index.ts +3 -0
  666. package/src/v2/shadcn/_reference/tables/types.ts +79 -0
  667. package/src/v2/shadcn/_reference/zones/LegacyZoneSettings.tsx +299 -0
  668. package/src/v2/shadcn/components/ui/accordion.stories.tsx +63 -0
  669. package/src/v2/shadcn/components/ui/accordion.tsx +52 -0
  670. package/src/v2/shadcn/components/ui/alert-dialog.stories.tsx +44 -0
  671. package/src/v2/shadcn/components/ui/alert-dialog.tsx +104 -0
  672. package/src/v2/shadcn/components/ui/alert.stories.tsx +44 -0
  673. package/src/v2/shadcn/components/ui/alert.tsx +43 -0
  674. package/src/v2/shadcn/components/ui/aspect-ratio.stories.tsx +46 -0
  675. package/src/v2/shadcn/components/ui/aspect-ratio.tsx +5 -0
  676. package/src/v2/shadcn/components/ui/avatar.stories.tsx +39 -0
  677. package/src/v2/shadcn/components/ui/avatar.tsx +38 -0
  678. package/src/v2/shadcn/components/ui/badge.stories.tsx +17 -0
  679. package/src/v2/shadcn/components/ui/badge.tsx +30 -0
  680. package/src/v2/shadcn/components/ui/breadcrumb.stories.tsx +91 -0
  681. package/src/v2/shadcn/components/ui/breadcrumb.tsx +90 -0
  682. package/src/v2/shadcn/components/ui/button.stories.tsx +20 -0
  683. package/src/v2/shadcn/components/ui/button.tsx +60 -0
  684. package/src/v2/shadcn/components/ui/calendar.stories.tsx +61 -0
  685. package/src/v2/shadcn/components/ui/calendar.tsx +54 -0
  686. package/src/v2/shadcn/components/ui/card.stories.tsx +37 -0
  687. package/src/v2/shadcn/components/ui/card.tsx +43 -0
  688. package/src/v2/shadcn/components/ui/carousel.stories.tsx +92 -0
  689. package/src/v2/shadcn/components/ui/carousel.tsx +224 -0
  690. package/src/v2/shadcn/components/ui/checkbox.scss +38 -0
  691. package/src/v2/shadcn/components/ui/checkbox.stories.tsx +23 -0
  692. package/src/v2/shadcn/components/ui/checkbox.tsx +24 -0
  693. package/src/v2/shadcn/components/ui/collapsible.stories.tsx +59 -0
  694. package/src/v2/shadcn/components/ui/collapsible.tsx +9 -0
  695. package/src/v2/shadcn/components/ui/command.stories.tsx +70 -0
  696. package/src/v2/shadcn/components/ui/command.tsx +132 -0
  697. package/src/v2/shadcn/components/ui/context-menu.stories.tsx +72 -0
  698. package/src/v2/shadcn/components/ui/context-menu.tsx +178 -0
  699. package/src/v2/shadcn/components/ui/dialog.stories.tsx +67 -0
  700. package/src/v2/shadcn/components/ui/dialog.tsx +95 -0
  701. package/src/v2/shadcn/components/ui/drawer.stories.tsx +50 -0
  702. package/src/v2/shadcn/components/ui/drawer.tsx +87 -0
  703. package/src/v2/shadcn/components/ui/dropdown-menu.stories.tsx +73 -0
  704. package/src/v2/shadcn/components/ui/dropdown-menu.tsx +179 -0
  705. package/src/v2/shadcn/components/ui/form.stories.tsx +105 -0
  706. package/src/v2/shadcn/components/ui/form.tsx +129 -0
  707. package/src/v2/shadcn/components/ui/hover-card.stories.tsx +35 -0
  708. package/src/v2/shadcn/components/ui/hover-card.tsx +27 -0
  709. package/src/v2/shadcn/components/ui/input-otp.stories.tsx +72 -0
  710. package/src/v2/shadcn/components/ui/input-otp.tsx +61 -0
  711. package/src/v2/shadcn/components/ui/input.stories.tsx +16 -0
  712. package/src/v2/shadcn/components/ui/input.tsx +25 -0
  713. package/src/v2/shadcn/components/ui/label.stories.tsx +13 -0
  714. package/src/v2/shadcn/components/ui/label.tsx +17 -0
  715. package/src/v2/shadcn/components/ui/menubar.stories.tsx +86 -0
  716. package/src/v2/shadcn/components/ui/menubar.tsx +207 -0
  717. package/src/v2/shadcn/components/ui/navigation-menu.stories.tsx +68 -0
  718. package/src/v2/shadcn/components/ui/navigation-menu.tsx +120 -0
  719. package/src/v2/shadcn/components/ui/pagination.stories.tsx +78 -0
  720. package/src/v2/shadcn/components/ui/pagination.tsx +81 -0
  721. package/src/v2/shadcn/components/ui/popover.stories.tsx +44 -0
  722. package/src/v2/shadcn/components/ui/popover.tsx +29 -0
  723. package/src/v2/shadcn/components/ui/progress.stories.tsx +17 -0
  724. package/src/v2/shadcn/components/ui/progress.tsx +23 -0
  725. package/src/v2/shadcn/components/ui/radio-card.stories.tsx +68 -0
  726. package/src/v2/shadcn/components/ui/radio-card.tsx +52 -0
  727. package/src/v2/shadcn/components/ui/radio-group.stories.tsx +77 -0
  728. package/src/v2/shadcn/components/ui/radio-group.tsx +35 -0
  729. package/src/v2/shadcn/components/ui/scroll-area.stories.tsx +56 -0
  730. package/src/v2/shadcn/components/ui/scroll-area.tsx +38 -0
  731. package/src/v2/shadcn/components/ui/select.stories.tsx +60 -0
  732. package/src/v2/shadcn/components/ui/select.tsx +148 -0
  733. package/src/v2/shadcn/components/ui/separator.stories.tsx +30 -0
  734. package/src/v2/shadcn/components/ui/separator.tsx +20 -0
  735. package/src/v2/shadcn/components/ui/sheet.stories.tsx +115 -0
  736. package/src/v2/shadcn/components/ui/sheet.tsx +107 -0
  737. package/src/v2/shadcn/components/ui/sidebar.stories.tsx +167 -0
  738. package/src/v2/shadcn/components/ui/sidebar.tsx +637 -0
  739. package/src/v2/shadcn/components/ui/skeleton.stories.tsx +36 -0
  740. package/src/v2/shadcn/components/ui/skeleton.tsx +7 -0
  741. package/src/v2/shadcn/components/ui/slider.stories.tsx +16 -0
  742. package/src/v2/shadcn/components/ui/slider.tsx +23 -0
  743. package/src/v2/shadcn/components/ui/switch.scss +63 -0
  744. package/src/v2/shadcn/components/ui/switch.stories.tsx +23 -0
  745. package/src/v2/shadcn/components/ui/switch.tsx +24 -0
  746. package/src/v2/shadcn/components/ui/table-pagination.stories.tsx +81 -0
  747. package/src/v2/shadcn/components/ui/table-pagination.tsx +61 -0
  748. package/src/v2/shadcn/components/ui/table.stories.tsx +40 -0
  749. package/src/v2/shadcn/components/ui/table.tsx +72 -0
  750. package/src/v2/shadcn/components/ui/tabs.stories.tsx +85 -0
  751. package/src/v2/shadcn/components/ui/tabs.tsx +53 -0
  752. package/src/v2/shadcn/components/ui/textarea.stories.tsx +15 -0
  753. package/src/v2/shadcn/components/ui/textarea.tsx +21 -0
  754. package/src/v2/shadcn/components/ui/toast.stories.tsx +77 -0
  755. package/src/v2/shadcn/components/ui/toast.tsx +111 -0
  756. package/src/v2/shadcn/components/ui/toaster.stories.tsx +46 -0
  757. package/src/v2/shadcn/components/ui/toaster.tsx +24 -0
  758. package/src/v2/shadcn/components/ui/toggle-group.stories.tsx +95 -0
  759. package/src/v2/shadcn/components/ui/toggle-group.tsx +49 -0
  760. package/src/v2/shadcn/components/ui/toggle.stories.tsx +18 -0
  761. package/src/v2/shadcn/components/ui/toggle.tsx +37 -0
  762. package/src/v2/shadcn/components/ui/tooltip.stories.tsx +57 -0
  763. package/src/v2/shadcn/components/ui/tooltip.tsx +28 -0
  764. package/src/v2/shadcn/components/ui/use-toast.ts +3 -0
  765. package/src/v2/shadcn/hooks/use-mobile.tsx +19 -0
  766. package/src/v2/shadcn/hooks/use-toast.ts +184 -0
  767. package/src/v2/shadcn/index.ts +76 -0
  768. package/src/v2/shadcn/lib/utils.ts +6 -0
  769. package/src/v2/shadcn/styles/globals.css +112 -0
  770. package/src/v2/styles/components/Button.scss +21 -23
  771. package/src/v2/styles/form/NewInput.scss +1 -1
  772. package/src/v2/styles/tokens/_colors.scss +20 -0
  773. package/src/v2/styles/tokens/_sizes.scss +4 -4
  774. package/src/v2/types/navigation.ts +1 -0
  775. package/tailwind.config.js +46 -4
  776. package/dist/v2/components/RadioCard/RadioCard.d.ts.map +0 -1
  777. package/src/v2/navigation/Navigation/Navigation.stories.tsx +0 -137
@@ -0,0 +1,722 @@
1
+ import React, { useState, useMemo } from 'react';
2
+ import { NavLink, useLocation, useParams } from 'react-router-dom';
3
+ import { cn } from '../../lib/utils';
4
+ import { useSidebar } from '@/contexts/SidebarContext';
5
+ import { useSidebarLabels } from '@/contexts/SidebarLabelsContext';
6
+ import { useUser } from '@/contexts/UserContext';
7
+ import {
8
+ SettingsIcon,
9
+ HomeIcon,
10
+ CompanyIcon,
11
+ ProvidersIcon,
12
+ UsersIcon,
13
+ CustomersIcon,
14
+ ReportsIcon,
15
+ AnalyticsIcon,
16
+ PaymentsIcon,
17
+ DebugIcon,
18
+ BookingsIcon,
19
+ InventoryIcon,
20
+ LoyaltyIcon,
21
+ MarketingIcon,
22
+ } from '../shared/SidebarIcons';
23
+ import { IconChevronDown, IconArrowInternalReturn } from '../../../icons';
24
+
25
+ import AdminLogo from '@/assets/AdminLogo.png';
26
+ import {
27
+ Tooltip,
28
+ TooltipContent,
29
+ TooltipProvider,
30
+ TooltipTrigger,
31
+ } from "../ui/tooltip";
32
+
33
+ type Destination = 'provider' | 'admin' | 'company';
34
+
35
+ interface Provider {
36
+ id: string;
37
+ name: string;
38
+ type: 'venue' | 'promoter';
39
+ status: string;
40
+ avatar_url?: string;
41
+ venue_id?: string;
42
+ company_id?: string;
43
+ inventory_enabled?: boolean;
44
+ }
45
+
46
+ interface Company {
47
+ id: string;
48
+ company_id?: string;
49
+ name: string;
50
+ status: string;
51
+ avatar_url?: string;
52
+ }
53
+
54
+ interface UnifiedSidebarProps {
55
+ destination: Destination;
56
+ provider?: Provider | null;
57
+ company?: Company | null;
58
+ isLoadingProvider?: boolean;
59
+ isLoadingCompany?: boolean;
60
+ }
61
+
62
+ interface NavItem {
63
+ icon: React.ReactNode;
64
+ label: string;
65
+ to: string;
66
+ end?: boolean;
67
+ }
68
+
69
+ const UnifiedSidebar: React.FC<UnifiedSidebarProps> = ({
70
+ destination,
71
+ provider,
72
+ company,
73
+ isLoadingProvider = false,
74
+ isLoadingCompany = false
75
+ }) => {
76
+ const { collapsed, mobileMenuOpen, setMobileMenuOpen } = useSidebar();
77
+ const { labels, visibility } = useSidebarLabels();
78
+ const { hasRole, providerData } = useUser();
79
+ const location = useLocation();
80
+ const { companyId: urlCompanyId } = useParams<{ companyId?: string }>();
81
+
82
+ // Use passed provider or fall back to user's provider data
83
+ const currentProvider = provider || providerData;
84
+ const currentCompany = company;
85
+
86
+ // Check if user has access to admin destination
87
+ const hasAdminAccess = hasRole('super_admin') || hasRole('system_admin');
88
+
89
+ // If trying to access admin without permission, don't render the sidebar
90
+ if (destination === 'admin' && !hasAdminAccess) {
91
+ return null;
92
+ }
93
+
94
+ // Build route prefix based on context using friendly IDs
95
+ // When provider is still loading, derive prefix from the current URL so links work immediately
96
+ const getRoutePrefix = () => {
97
+ if (destination === 'provider') {
98
+ if (provider && 'id' in provider) {
99
+ const friendlyId = provider.venue_id || '01';
100
+ const providerType = provider.type === 'venue' ? 'venue' : 'promoter';
101
+ if (provider.company_id) {
102
+ return `/company/${provider.company_id}/${providerType}/${friendlyId}`;
103
+ }
104
+ return `/${providerType}/${friendlyId}`;
105
+ }
106
+ // Fallback: derive from current URL path while provider is loading
107
+ const pathMatch = location.pathname.match(/^(\/company\/[^/]+)?\/(venue|promoter)\/([^/]+)/);
108
+ if (pathMatch) {
109
+ const companyPrefix = pathMatch[1] || '';
110
+ return `${companyPrefix}/${pathMatch[2]}/${pathMatch[3]}`;
111
+ }
112
+ }
113
+ if (destination === 'company' && company) {
114
+ return `/company/${urlCompanyId || company.company_id || company.id}`;
115
+ }
116
+ return '';
117
+ };
118
+
119
+ const routePrefix = getRoutePrefix();
120
+
121
+ // Memoized overview path for provider to prevent flicker
122
+ const providerOverviewPath = useMemo(() => {
123
+ if (destination !== 'provider' || !currentProvider) return '';
124
+ const providerType = currentProvider && 'type' in currentProvider
125
+ ? (currentProvider.type === 'venue' ? 'venue' : 'promoter')
126
+ : 'venue';
127
+ const friendlyId = currentProvider?.venue_id || '01';
128
+ return currentProvider?.company_id
129
+ ? `/company/${currentProvider.company_id}/${providerType}/${friendlyId}/overview`
130
+ : `/${providerType}/${friendlyId}/overview`;
131
+ }, [destination, currentProvider]);
132
+
133
+ // Memoized overview path for company
134
+ const companyOverviewPath = useMemo(() => {
135
+ if (destination !== 'company' || !currentCompany) return '';
136
+ return `/company/${urlCompanyId || currentCompany.company_id || currentCompany.id}/overview`;
137
+ }, [destination, currentCompany, urlCompanyId]);
138
+
139
+
140
+ // Navigation configuration for each destination
141
+ // Determine inventory label based on feature toggle
142
+ const inventoryLabel = currentProvider && 'inventory_enabled' in currentProvider && currentProvider.inventory_enabled
143
+ ? (labels.inventory || 'Inventory')
144
+ : 'Booking Types';
145
+
146
+ const navigationConfig: Record<Destination, NavItem[]> = {
147
+ provider: [
148
+ { icon: <HomeIcon />, label: labels.home || 'Home', to: `${routePrefix}/home` || '/', end: true },
149
+ { icon: <BookingsIcon />, label: labels.bookings || 'Bookings', to: `${routePrefix}/bookings` || '/bookings' },
150
+ { icon: <InventoryIcon />, label: inventoryLabel, to: `${routePrefix}/inventory` || '/booking-types' },
151
+ { icon: <LoyaltyIcon />, label: labels.loyalty || 'Loyalty', to: `${routePrefix}/loyalty` || '/loyalty' },
152
+ { icon: <CustomersIcon />, label: labels.customers || 'Customers', to: `${routePrefix}/customers` || '/customers' },
153
+ { icon: <ReportsIcon />, label: labels.reports || 'Reports', to: `${routePrefix}/reports` || '/reports' },
154
+ { icon: <AnalyticsIcon />, label: labels.analytics || 'Analytics', to: `${routePrefix}/analytics` || '/analytics' },
155
+ { icon: <MarketingIcon />, label: labels.marketing || 'Marketing', to: `${routePrefix}/marketing` || '/marketing/affiliates', end: false },
156
+ { icon: <SettingsIcon />, label: labels.settings || 'Settings', to: `${routePrefix}/settings` || '/settings/general', end: false },
157
+ ],
158
+ admin: [
159
+ { icon: <HomeIcon />, label: 'Home', to: '/admin', end: true },
160
+ { icon: <CompanyIcon />, label: 'Companies', to: '/admin/companies' },
161
+ { icon: <ProvidersIcon />, label: 'Providers', to: '/admin/providers' },
162
+ { icon: <UsersIcon />, label: 'Users', to: '/admin/users', end: false },
163
+ { icon: <CustomersIcon />, label: 'Customers', to: '/admin/customers' },
164
+ { icon: <ReportsIcon />, label: 'Reports', to: '/admin/reports' },
165
+ { icon: <AnalyticsIcon />, label: 'Analytics', to: '/admin/analytics' },
166
+ { icon: <PaymentsIcon />, label: 'Payments', to: '/admin/payments' },
167
+ { icon: <SettingsIcon />, label: 'Settings', to: '/admin/settings', end: false },
168
+ { icon: <DebugIcon />, label: 'Debugging', to: '/admin/debugging', end: false },
169
+ ],
170
+ company: [
171
+ { icon: <HomeIcon />, label: labels.home || 'Home', to: `${routePrefix}`, end: true },
172
+ { icon: <ProvidersIcon />, label: labels.providers || 'Providers', to: `${routePrefix}/providers` },
173
+ { icon: <BookingsIcon />, label: labels.bookings || 'Bookings', to: `${routePrefix}/bookings` },
174
+ { icon: <InventoryIcon />, label: labels.inventory || 'Inventory', to: `${routePrefix}/inventory` },
175
+ { icon: <CustomersIcon />, label: labels.customers || 'Customers', to: `${routePrefix}/customers` },
176
+ { icon: <ReportsIcon />, label: labels.reports || 'Reports', to: `${routePrefix}/reports` },
177
+ { icon: <AnalyticsIcon />, label: labels.analytics || 'Analytics', to: `${routePrefix}/analytics` },
178
+ { icon: <SettingsIcon />, label: labels.settings || 'Settings', to: `${routePrefix}/settings`, end: false },
179
+ ],
180
+ };
181
+
182
+ // Filter nav items based on visibility settings (only for provider/company destinations)
183
+ const navItems = navigationConfig[destination].filter((item) => {
184
+ // Admin destination doesn't use visibility settings
185
+ if (destination === 'admin') return true;
186
+
187
+ // Settings should always be visible
188
+ if (item.label === labels.settings || item.label === 'Settings') return true;
189
+
190
+ // Check visibility for each item based on its key
191
+ const labelKey = Object.entries(labels).find(([_, value]) => value === item.label)?.[0] as keyof typeof visibility;
192
+ if (labelKey && visibility[labelKey] === false) return false;
193
+
194
+ // Also check by default label name for items that haven't been customized
195
+ const defaultLabelMap: Record<string, keyof typeof visibility> = {
196
+ 'Home': 'home',
197
+ 'Bookings': 'bookings',
198
+ 'Inventory': 'inventory',
199
+ 'Loyalty': 'loyalty',
200
+ 'Customers': 'customers',
201
+ 'Reports': 'reports',
202
+ 'Analytics': 'analytics',
203
+ 'Marketing': 'marketing',
204
+ 'Providers': 'providers',
205
+ };
206
+
207
+ const visibilityKey = defaultLabelMap[item.label];
208
+ if (visibilityKey && visibility[visibilityKey] === false) return false;
209
+
210
+ return true;
211
+ });
212
+
213
+ // Render header content based on destination
214
+ const renderHeader = () => {
215
+ switch (destination) {
216
+ case 'admin':
217
+ return (
218
+ <div className={`group flex items-center gap-2 self-stretch bg-surface-secondary hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed p-2 rounded-lg transition-colors cursor-pointer ${
219
+ collapsed ? 'justify-center' : ''
220
+ }`}>
221
+ <div className="w-[47px] h-[47px] rounded-full relative flex items-center justify-center flex-shrink-0 border border-border-primary bg-fill-secondary/20 overflow-hidden">
222
+ <img src={AdminLogo} alt="Admin Panel Logo" className="w-full h-full object-cover relative z-10" />
223
+ </div>
224
+ {!collapsed && (
225
+ <div className="flex flex-1 flex-col items-start gap-1 min-w-0">
226
+ <h3 className="text-label-primary text-[15px] font-semibold leading-[18px] whitespace-nowrap">
227
+ Admin Panel
228
+ </h3>
229
+ <div className="flex justify-center items-center gap-2 bg-surface-tertiary group-hover:bg-surface-tertiary-hover transition-colors px-2 py-1 rounded-lg">
230
+ <span className="text-label-secondary text-[10px] leading-3 font-mono font-semibold whitespace-nowrap">
231
+ Super Admin
232
+ </span>
233
+ </div>
234
+ </div>
235
+ )}
236
+ </div>
237
+ );
238
+
239
+ case 'company':
240
+ // Show skeleton while loading
241
+ if (isLoadingCompany) {
242
+ return (
243
+ <div className={cn(
244
+ "flex items-center gap-2 self-stretch p-2 rounded-lg bg-surface-secondary",
245
+ collapsed ? "justify-center" : ""
246
+ )}>
247
+ <div className="w-[47px] h-[47px] rounded-full bg-surface-tertiary animate-pulse flex-shrink-0" />
248
+ {!collapsed && (
249
+ <div className="flex flex-1 flex-col items-start gap-2 min-w-0">
250
+ <div className="h-[18px] w-32 bg-surface-tertiary animate-pulse rounded" />
251
+ <div className="h-5 w-24 bg-surface-tertiary animate-pulse rounded-lg" />
252
+ </div>
253
+ )}
254
+ </div>
255
+ );
256
+ }
257
+ return (
258
+ <NavLink
259
+ to={companyOverviewPath}
260
+ end={false}
261
+ onClick={() => setMobileMenuOpen(false)}
262
+ className={({ isActive }) => cn(
263
+ "group flex items-center gap-2 self-stretch p-2 rounded-lg transition-colors cursor-pointer",
264
+ collapsed ? "justify-center" : "",
265
+ isActive
266
+ ? "bg-gradient-to-tr from-gradient-stop1 via-gradient-stop2 to-gradient-stop3"
267
+ : "bg-surface-secondary hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed"
268
+ )}
269
+ >
270
+ {({ isActive }) => (
271
+ <>
272
+ <div className="w-[47px] h-[47px] rounded-full relative flex items-center justify-center flex-shrink-0 overflow-hidden">
273
+ {currentCompany?.avatar_url ? (
274
+ <img src={currentCompany.avatar_url} alt={currentCompany.name} className="w-full h-full object-cover" />
275
+ ) : (
276
+ <>
277
+ <svg width="47" height="47" viewBox="0 0 47 47" fill="none" className="absolute">
278
+ <circle cx="23.5" cy="23.5" r="22.5" className={cn(
279
+ "fillOpacity-20 strokeWidth-2",
280
+ isActive ? "fill-fill-primary-alt stroke-fill-primary-alt" : "fill-fill-secondary stroke-fill-secondary"
281
+ )} fillOpacity="0.2" strokeWidth="2" />
282
+ </svg>
283
+ <span className={cn(
284
+ "font-bold text-lg relative z-10",
285
+ isActive ? "text-label-primary-alt" : "text-label-secondary"
286
+ )}>{currentCompany?.name?.[0] || ''}</span>
287
+ </>
288
+ )}
289
+ </div>
290
+ {!collapsed && currentCompany && (
291
+ <div className="flex flex-1 flex-col items-start gap-1 min-w-0">
292
+ <h3 className={cn(
293
+ "text-[15px] font-semibold leading-[18px] whitespace-nowrap",
294
+ isActive ? "text-label-primary-alt" : "text-label-primary"
295
+ )}>
296
+ {currentCompany.name}
297
+ </h3>
298
+ <div className={cn(
299
+ "flex justify-center items-center gap-2 px-2 py-1 rounded-lg transition-colors",
300
+ isActive
301
+ ? "bg-white/20 dark:bg-black/20"
302
+ : "bg-surface-tertiary group-hover:bg-surface-tertiary-hover"
303
+ )}>
304
+ <span className={cn(
305
+ "text-[10px] leading-3 font-mono font-semibold whitespace-nowrap",
306
+ isActive ? "text-label-primary-alt" : "text-label-secondary"
307
+ )}>
308
+ Company ID: {currentCompany.company_id || '—'}
309
+ </span>
310
+ </div>
311
+ </div>
312
+ )}
313
+ </>
314
+ )}
315
+ </NavLink>
316
+ );
317
+
318
+ case 'provider':
319
+ // Show skeleton while loading
320
+ if (isLoadingProvider) {
321
+ return (
322
+ <div className={cn(
323
+ "flex items-center gap-2 self-stretch p-2 rounded-lg bg-surface-secondary",
324
+ collapsed ? "justify-center" : ""
325
+ )}>
326
+ <div className="w-[47px] h-[47px] rounded-full bg-surface-tertiary animate-pulse flex-shrink-0" />
327
+ {!collapsed && (
328
+ <div className="flex flex-1 flex-col items-start gap-2 min-w-0">
329
+ <div className="h-[18px] w-32 bg-surface-tertiary animate-pulse rounded" />
330
+ <div className="h-5 w-20 bg-surface-tertiary animate-pulse rounded-lg" />
331
+ </div>
332
+ )}
333
+ </div>
334
+ );
335
+ }
336
+ return (
337
+ <NavLink
338
+ to={providerOverviewPath}
339
+ end={false}
340
+ onClick={() => setMobileMenuOpen(false)}
341
+ className={({ isActive }) => cn(
342
+ "group flex items-center gap-2 self-stretch p-2 rounded-lg transition-colors cursor-pointer max-sm:p-3",
343
+ collapsed ? "justify-center" : "",
344
+ isActive
345
+ ? "bg-gradient-to-tr from-gradient-stop1 via-gradient-stop2 to-gradient-stop3"
346
+ : "bg-surface-secondary hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed"
347
+ )}
348
+ >
349
+ {({ isActive }) => (
350
+ <>
351
+ <div className={cn("w-[47px] h-[47px] max-sm:w-[52px] max-sm:h-[52px] rounded-full relative flex items-center justify-center flex-shrink-0 overflow-hidden", currentProvider && 'avatar_url' in currentProvider && currentProvider.avatar_url && "border border-border-primary")}>
352
+ {currentProvider && 'avatar_url' in currentProvider && currentProvider.avatar_url ? (
353
+ <img src={currentProvider.avatar_url} alt={currentProvider.name} className="w-full h-full object-cover" />
354
+ ) : (
355
+ <>
356
+ <svg width="47" height="47" viewBox="0 0 47 47" fill="none" className="absolute">
357
+ <circle cx="23.5" cy="23.5" r="22.5" className={cn(
358
+ "fillOpacity-20 strokeWidth-2",
359
+ isActive ? "fill-fill-primary-alt stroke-fill-primary-alt" : "fill-fill-secondary stroke-fill-secondary"
360
+ )} fillOpacity="0.2" strokeWidth="2" />
361
+ </svg>
362
+ <span className={cn(
363
+ "font-bold text-lg relative z-10",
364
+ isActive ? "text-label-primary-alt" : "text-label-secondary"
365
+ )}>{currentProvider?.name?.[0] || ''}</span>
366
+ </>
367
+ )}
368
+ </div>
369
+ {!collapsed && currentProvider && (
370
+ <div className="flex flex-1 flex-col items-start gap-1 min-w-0">
371
+ <h3 className={cn(
372
+ "text-[15px] font-semibold leading-[18px] whitespace-nowrap max-sm:text-[17px] max-sm:leading-[20px]",
373
+ isActive ? "text-label-primary-alt" : "text-label-primary"
374
+ )}>
375
+ {currentProvider.name}
376
+ </h3>
377
+ <div className={cn(
378
+ "flex justify-center items-center gap-2 px-2 py-1 rounded-lg transition-colors",
379
+ isActive
380
+ ? "bg-white/20 dark:bg-black/20"
381
+ : "bg-surface-tertiary group-hover:bg-surface-tertiary-hover"
382
+ )}>
383
+ <span className={cn(
384
+ "text-[10px] leading-3 font-mono font-semibold whitespace-nowrap max-sm:text-[12px] max-sm:leading-4",
385
+ isActive ? "text-label-primary-alt" : "text-label-secondary"
386
+ )}>
387
+ {currentProvider && 'type' in currentProvider
388
+ ? `${currentProvider.type === 'venue' ? 'Venue' : 'Promoter'} ID: ${currentProvider.venue_id || '—'}`
389
+ : `Venue ID: ${currentProvider.venue_id || '—'}`}
390
+ </span>
391
+ </div>
392
+ </div>
393
+ )}
394
+ </>
395
+ )}
396
+ </NavLink>
397
+ );
398
+ }
399
+ };
400
+
401
+ // Render back navigation based on destination
402
+ const renderBackNavigation = () => {
403
+ // Admin destination never shows back navigation (it's the top level)
404
+ if (destination === 'admin') {
405
+ return null;
406
+ }
407
+
408
+ // For providers with admin access
409
+ if (destination === 'provider' && hasAdminAccess) {
410
+ return (
411
+ <div className="flex flex-col items-start gap-1 self-stretch">
412
+ {/* Back to Admin Panel */}
413
+ <div className="flex items-start self-stretch">
414
+ {collapsed ? (
415
+ <Tooltip delayDuration={100}>
416
+ <TooltipTrigger asChild>
417
+ <NavLink
418
+ to="/admin"
419
+ onClick={() => setMobileMenuOpen(false)}
420
+ className="group flex items-center justify-center w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
421
+ >
422
+ <div className="w-6 h-6 flex-shrink-0">
423
+ <svg width="24" height="24" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
424
+ <path d="M7.5265 4.86842C9.1925 3.17961 9.9701 2.74305 10.9049 2.45584C11.8397 2.16862 12.7957 2.16862 13.7305 2.45584C14.6653 2.74305 15.4429 3.17961 17.1089 4.86842L19.8327 7.62955C21.4987 9.31836 21.9294 10.1066 22.2127 11.0542C22.496 12.0018 22.496 12.9709 22.2127 13.9185C21.9294 14.8661 21.4987 15.6543 19.8327 17.3431L17.1089 20.1042C15.4429 21.793 14.6653 22.2296 13.7305 22.5168C12.7957 22.804 11.8397 22.804 10.9049 22.5168C9.9701 22.2296 9.1925 21.793 7.5265 20.1042L4.80266 17.3431C3.13666 15.6543 2.70599 14.8661 2.42266 13.9185C2.13933 12.9709 2.13933 12.0018 2.42266 11.0542C2.70599 10.1066 3.13666 9.31836 4.80266 7.62955L7.5265 4.86842ZM9.02372 6.30766L6.26118 9.10803C4.96243 10.4246 4.6069 10.9575 4.39663 11.6607C4.23154 12.2128 4.23154 12.7598 4.39663 13.312C4.6048 14.0082 4.95534 14.5374 6.22249 15.8254L9.02375 18.665C10.2943 19.9495 10.8164 20.3048 11.5032 20.5158C12.0479 20.6832 12.5875 20.6832 13.1322 20.5158C13.8259 20.3027 14.3516 19.9423 15.6504 18.6258L18.3742 15.8646C19.6729 14.5481 20.0285 14.0152 20.2387 13.312C20.4038 12.7598 20.4038 12.2128 20.2387 11.6607C20.0285 10.9575 19.6729 10.4246 18.3742 9.10803L15.6504 6.3469C14.3516 5.03038 13.8259 4.66998 13.1322 4.45683C12.5875 4.28948 12.0479 4.28948 11.5032 4.45683C10.8164 4.66784 10.2943 5.02318 9.02372 6.30766ZM15.8147 11.4923C16.3685 10.9309 17.2664 10.9309 17.8202 11.4923C18.3739 12.0537 18.374 12.9638 17.8202 13.5252L13.3535 18.0531C12.7997 18.6144 11.9018 18.6144 11.348 18.0531L10.6958 17.392C10.5739 17.2684 10.5424 17.2107 10.5217 17.1414C10.501 17.0721 10.501 17.0011 10.5217 16.9318C10.5424 16.8625 10.5739 16.8048 10.6958 16.6812L15.8147 11.4923ZM8.35774 14.0054C8.49112 13.8702 8.67213 13.7944 8.86075 13.7949L11.4696 13.801C11.612 13.8013 11.7272 13.9186 11.7268 14.063C11.7267 14.1307 11.7006 14.1958 11.654 14.2444L11.5164 14.3881L9.88948 16.0226C9.73826 16.1745 9.49432 16.174 9.34376 16.0214L8.35774 15.0219C8.08085 14.7412 8.08085 14.2861 8.35774 14.0054Z" className="fill-fill-primary"/>
425
+ </svg>
426
+ </div>
427
+ </NavLink>
428
+ </TooltipTrigger>
429
+ <TooltipContent side="right" sideOffset={8}>
430
+ <p>Back to Admin Panel</p>
431
+ </TooltipContent>
432
+ </Tooltip>
433
+ ) : (
434
+ <NavLink to="/admin" onClick={() => setMobileMenuOpen(false)} className="group flex items-center gap-2 w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors">
435
+ <div className="w-6 h-6 flex-shrink-0">
436
+ <svg width="24" height="24" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
437
+ <path d="M7.5265 4.86842C9.1925 3.17961 9.9701 2.74305 10.9049 2.45584C11.8397 2.16862 12.7957 2.16862 13.7305 2.45584C14.6653 2.74305 15.4429 3.17961 17.1089 4.86842L19.8327 7.62955C21.4987 9.31836 21.9294 10.1066 22.2127 11.0542C22.496 12.0018 22.496 12.9709 22.2127 13.9185C21.9294 14.8661 21.4987 15.6543 19.8327 17.3431L17.1089 20.1042C15.4429 21.793 14.6653 22.2296 13.7305 22.5168C12.7957 22.804 11.8397 22.804 10.9049 22.5168C9.9701 22.2296 9.1925 21.793 7.5265 20.1042L4.80266 17.3431C3.13666 15.6543 2.70599 14.8661 2.42266 13.9185C2.13933 12.9709 2.13933 12.0018 2.42266 11.0542C2.70599 10.1066 3.13666 9.31836 4.80266 7.62955L7.5265 4.86842ZM9.02372 6.30766L6.26118 9.10803C4.96243 10.4246 4.6069 10.9575 4.39663 11.6607C4.23154 12.2128 4.23154 12.7598 4.39663 13.312C4.6048 14.0082 4.95534 14.5374 6.22249 15.8254L9.02375 18.665C10.2943 19.9495 10.8164 20.3048 11.5032 20.5158C12.0479 20.6832 12.5875 20.6832 13.1322 20.5158C13.8259 20.3027 14.3516 19.9423 15.6504 18.6258L18.3742 15.8646C19.6729 14.5481 20.0285 14.0152 20.2387 13.312C20.4038 12.7598 20.4038 12.2128 20.2387 11.6607C20.0285 10.9575 19.6729 10.4246 18.3742 9.10803L15.6504 6.3469C14.3516 5.03038 13.8259 4.66998 13.1322 4.45683C12.5875 4.28948 12.0479 4.28948 11.5032 4.45683C10.8164 4.66784 10.2943 5.02318 9.02372 6.30766ZM15.8147 11.4923C16.3685 10.9309 17.2664 10.9309 17.8202 11.4923C18.3739 12.0537 18.374 12.9638 17.8202 13.5252L13.3535 18.0531C12.7997 18.6144 11.9018 18.6144 11.348 18.0531L10.6958 17.392C10.5739 17.2684 10.5424 17.2107 10.5217 17.1414C10.501 17.0721 10.501 17.0011 10.5217 16.9318C10.5424 16.8625 10.5739 16.8048 10.6958 16.6812L15.8147 11.4923ZM8.35774 14.0054C8.49112 13.8702 8.67213 13.7944 8.86075 13.7949L11.4696 13.801C11.612 13.8013 11.7272 13.9186 11.7268 14.063C11.7267 14.1307 11.7006 14.1958 11.654 14.2444L11.5164 14.3881L9.88948 16.0226C9.73826 16.1745 9.49432 16.174 9.34376 16.0214L8.35774 15.0219C8.08085 14.7412 8.08085 14.2861 8.35774 14.0054Z" className="fill-fill-primary"/>
438
+ </svg>
439
+ </div>
440
+ <span className="text-label-primary text-[13px] font-medium leading-4 whitespace-nowrap">Back to Admin Panel</span>
441
+ </NavLink>
442
+ )}
443
+ </div>
444
+
445
+ {/* Back to Company (if provider belongs to a company) */}
446
+ {/* Show immediately if we have company_id - no need to wait for loading */}
447
+ {currentProvider?.company_id && (
448
+ <div className="flex items-start self-stretch">
449
+ {collapsed ? (
450
+ <Tooltip delayDuration={100}>
451
+ <TooltipTrigger asChild>
452
+ <NavLink
453
+ to={`/company/${urlCompanyId || currentProvider.company_id}`}
454
+ onClick={() => setMobileMenuOpen(false)}
455
+ className="group flex items-center justify-center w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
456
+ >
457
+ <div className="relative w-6 h-6 flex-shrink-0">
458
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" className="absolute inset-0 group-hover:opacity-0 transition-opacity">
459
+ <path d="M19.5 18.75H4.5V17.25H5.25V6C5.25 5.58579 5.58579 5.25 6 5.25H16.5C16.9142 5.25 17.25 5.58579 17.25 6V9.75H18.75V17.25H19.5V18.75ZM15.75 17.25H17.25V11.25H12.75V17.25H14.25V12.75H15.75V17.25ZM15.75 9.75V6.75H6.75V17.25H11.25V9.75H15.75ZM8.25 11.25H9.75V12.75H8.25V11.25ZM8.25 14.25H9.75V15.75H8.25V14.25ZM8.25 8.25H9.75V9.75H8.25V8.25Z" className="fill-fill-primary" />
460
+ </svg>
461
+ <IconArrowInternalReturn size={24} className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity" />
462
+ </div>
463
+ </NavLink>
464
+ </TooltipTrigger>
465
+ <TooltipContent side="right" sideOffset={8}>
466
+ <p>Back to Company</p>
467
+ </TooltipContent>
468
+ </Tooltip>
469
+ ) : (
470
+ <NavLink
471
+ to={`/company/${urlCompanyId || currentProvider.company_id}`}
472
+ onClick={() => setMobileMenuOpen(false)}
473
+ className="group flex items-center gap-2 w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
474
+ >
475
+ <div className="relative w-6 h-6 flex-shrink-0">
476
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" className="absolute inset-0 group-hover:opacity-0 transition-opacity">
477
+ <path d="M19.5 18.75H4.5V17.25H5.25V6C5.25 5.58579 5.58579 5.25 6 5.25H16.5C16.9142 5.25 17.25 5.58579 17.25 6V9.75H18.75V17.25H19.5V18.75ZM15.75 17.25H17.25V11.25H12.75V17.25H14.25V12.75H15.75V17.25ZM15.75 9.75V6.75H6.75V17.25H11.25V9.75H15.75ZM8.25 11.25H9.75V12.75H8.25V11.25ZM8.25 14.25H9.75V15.75H8.25V14.25ZM8.25 8.25H9.75V9.75H8.25V8.25Z" className="fill-fill-primary" />
478
+ </svg>
479
+ <IconArrowInternalReturn size={24} className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity" />
480
+ </div>
481
+ <span className="text-label-primary text-[13px] font-medium leading-4 whitespace-nowrap">Back to Company</span>
482
+ </NavLink>
483
+ )}
484
+ </div>
485
+ )}
486
+ </div>
487
+ );
488
+ }
489
+
490
+ // Show "Back to Admin Panel" for company destinations if user has admin access
491
+ if (destination === 'company' && hasAdminAccess) {
492
+ return (
493
+ <div className="flex items-start self-stretch">
494
+ {collapsed ? (
495
+ <Tooltip delayDuration={100}>
496
+ <TooltipTrigger asChild>
497
+ <NavLink
498
+ to="/admin"
499
+ onClick={() => setMobileMenuOpen(false)}
500
+ className="group flex items-center justify-center w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
501
+ >
502
+ <div className="relative w-6 h-6 flex-shrink-0">
503
+ <svg width="24" height="24" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg" className="absolute inset-0 group-hover:opacity-0 transition-opacity">
504
+ <path d="M7.5265 4.86842C9.1925 3.17961 9.9701 2.74305 10.9049 2.45584C11.8397 2.16862 12.7957 2.16862 13.7305 2.45584C14.6653 2.74305 15.4429 3.17961 17.1089 4.86842L19.8327 7.62955C21.4987 9.31836 21.9294 10.1066 22.2127 11.0542C22.496 12.0018 22.496 12.9709 22.2127 13.9185C21.9294 14.8661 21.4987 15.6543 19.8327 17.3431L17.1089 20.1042C15.4429 21.793 14.6653 22.2296 13.7305 22.5168C12.7957 22.804 11.8397 22.804 10.9049 22.5168C9.9701 22.2296 9.1925 21.793 7.5265 20.1042L4.80266 17.3431C3.13666 15.6543 2.70599 14.8661 2.42266 13.9185C2.13933 12.9709 2.13933 12.0018 2.42266 11.0542C2.70599 10.1066 3.13666 9.31836 4.80266 7.62955L7.5265 4.86842ZM9.02372 6.30766L6.26118 9.10803C4.96243 10.4246 4.6069 10.9575 4.39663 11.6607C4.23154 12.2128 4.23154 12.7598 4.39663 13.312C4.6048 14.0082 4.95534 14.5374 6.22249 15.8254L9.02375 18.665C10.2943 19.9495 10.8164 20.3048 11.5032 20.5158C12.0479 20.6832 12.5875 20.6832 13.1322 20.5158C13.8259 20.3027 14.3516 19.9423 15.6504 18.6258L18.3742 15.8646C19.6729 14.5481 20.0285 14.0152 20.2387 13.312C20.4038 12.7598 20.4038 12.2128 20.2387 11.6607C20.0285 10.9575 19.6729 10.4246 18.3742 9.10803L15.6504 6.3469C14.3516 5.03038 13.8259 4.66998 13.1322 4.45683C12.5875 4.28948 12.0479 4.28948 11.5032 4.45683C10.8164 4.66784 10.2943 5.02318 9.02372 6.30766ZM15.8147 11.4923C16.3685 10.9309 17.2664 10.9309 17.8202 11.4923C18.3739 12.0537 18.374 12.9638 17.8202 13.5252L13.3535 18.0531C12.7997 18.6144 11.9018 18.6144 11.348 18.0531L10.6958 17.392C10.5739 17.2684 10.5424 17.2107 10.5217 17.1414C10.501 17.0721 10.501 17.0011 10.5217 16.9318C10.5424 16.8625 10.5739 16.8048 10.6958 16.6812L15.8147 11.4923ZM8.35774 14.0054C8.49112 13.8702 8.67213 13.7944 8.86075 13.7949L11.4696 13.801C11.612 13.8013 11.7272 13.9186 11.7268 14.063C11.7267 14.1307 11.7006 14.1958 11.654 14.2444L11.5164 14.3881L9.88948 16.0226C9.73826 16.1745 9.49432 16.174 9.34376 16.0214L8.35774 15.0219C8.08085 14.7412 8.08085 14.2861 8.35774 14.0054Z" className="fill-fill-primary"/>
505
+ </svg>
506
+ <IconArrowInternalReturn size={24} className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity" />
507
+ </div>
508
+ </NavLink>
509
+ </TooltipTrigger>
510
+ <TooltipContent side="right" sideOffset={8}>
511
+ <p>Back to Admin Panel</p>
512
+ </TooltipContent>
513
+ </Tooltip>
514
+ ) : (
515
+ <NavLink to="/admin" onClick={() => setMobileMenuOpen(false)} className="group flex items-center gap-2 w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors">
516
+ <div className="relative w-6 h-6 flex-shrink-0">
517
+ <svg width="24" height="24" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg" className="absolute inset-0 group-hover:opacity-0 transition-opacity">
518
+ <path d="M7.5265 4.86842C9.1925 3.17961 9.9701 2.74305 10.9049 2.45584C11.8397 2.16862 12.7957 2.16862 13.7305 2.45584C14.6653 2.74305 15.4429 3.17961 17.1089 4.86842L19.8327 7.62955C21.4987 9.31836 21.9294 10.1066 22.2127 11.0542C22.496 12.0018 22.496 12.9709 22.2127 13.9185C21.9294 14.8661 21.4987 15.6543 19.8327 17.3431L17.1089 20.1042C15.4429 21.793 14.6653 22.2296 13.7305 22.5168C12.7957 22.804 11.8397 22.804 10.9049 22.5168C9.9701 22.2296 9.1925 21.793 7.5265 20.1042L4.80266 17.3431C3.13666 15.6543 2.70599 14.8661 2.42266 13.9185C2.13933 12.9709 2.13933 12.0018 2.42266 11.0542C2.70599 10.1066 3.13666 9.31836 4.80266 7.62955L7.5265 4.86842ZM9.02372 6.30766L6.26118 9.10803C4.96243 10.4246 4.6069 10.9575 4.39663 11.6607C4.23154 12.2128 4.23154 12.7598 4.39663 13.312C4.6048 14.0082 4.95534 14.5374 6.22249 15.8254L9.02375 18.665C10.2943 19.9495 10.8164 20.3048 11.5032 20.5158C12.0479 20.6832 12.5875 20.6832 13.1322 20.5158C13.8259 20.3027 14.3516 19.9423 15.6504 18.6258L18.3742 15.8646C19.6729 14.5481 20.0285 14.0152 20.2387 13.312C20.4038 12.7598 20.4038 12.2128 20.2387 11.6607C20.0285 10.9575 19.6729 10.4246 18.3742 9.10803L15.6504 6.3469C14.3516 5.03038 13.8259 4.66998 13.1322 4.45683C12.5875 4.28948 12.0479 4.28948 11.5032 4.45683C10.8164 4.66784 10.2943 5.02318 9.02372 6.30766ZM15.8147 11.4923C16.3685 10.9309 17.2664 10.9309 17.8202 11.4923C18.3739 12.0537 18.374 12.9638 17.8202 13.5252L13.3535 18.0531C12.7997 18.6144 11.9018 18.6144 11.348 18.0531L10.6958 17.392C10.5739 17.2684 10.5424 17.2107 10.5217 17.1414C10.501 17.0721 10.501 17.0011 10.5217 16.9318C10.5424 16.8625 10.5739 16.8048 10.6958 16.6812L15.8147 11.4923ZM8.35774 14.0054C8.49112 13.8702 8.67213 13.7944 8.86075 13.7949L11.4696 13.801C11.612 13.8013 11.7272 13.9186 11.7268 14.063C11.7267 14.1307 11.7006 14.1958 11.654 14.2444L11.5164 14.3881L9.88948 16.0226C9.73826 16.1745 9.49432 16.174 9.34376 16.0214L8.35774 15.0219C8.08085 14.7412 8.08085 14.2861 8.35774 14.0054Z" className="fill-fill-primary"/>
519
+ </svg>
520
+ <IconArrowInternalReturn size={24} className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity" />
521
+ </div>
522
+ <span className="text-label-primary text-[13px] font-medium leading-4 whitespace-nowrap">Back to Admin Panel</span>
523
+ </NavLink>
524
+ )}
525
+ </div>
526
+ );
527
+ }
528
+
529
+ // Show back to company only if provider has a company_id (and user is not an admin)
530
+ if (destination === 'provider' && currentProvider?.company_id && !hasAdminAccess) {
531
+ return (
532
+ <div className="flex items-start self-stretch">
533
+ {collapsed ? (
534
+ <Tooltip delayDuration={100}>
535
+ <TooltipTrigger asChild>
536
+ <NavLink
537
+ to={`/company/${urlCompanyId || currentProvider.company_id}`}
538
+ onClick={() => setMobileMenuOpen(false)}
539
+ className="group flex items-center justify-center w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
540
+ >
541
+ <svg width="24" height="24" viewBox="0 0 32 32" fill="none" className="group-hover:hidden">
542
+ <path d="M25 24.6667H7V23H8V8C8 7.44772 8.44772 7 9 7H22C22.5523 7 23 7.44772 23 8V13H25V23H25.6667V24.6667H25ZM21 23H23V15H17V23H19V17H21V23ZM21 13V9H9V23H15V13H21ZM11 15H13V17H11V15ZM11 19H13V21H11V19ZM11 11H13V13H11V11Z" className="fill-fill-primary" />
543
+ </svg>
544
+ <IconArrowInternalReturn size={24} className="hidden group-hover:block" />
545
+ </NavLink>
546
+ </TooltipTrigger>
547
+ <TooltipContent side="right" sideOffset={8}>
548
+ <p>Back to Company</p>
549
+ </TooltipContent>
550
+ </Tooltip>
551
+ ) : (
552
+ <NavLink
553
+ to={`/company/${urlCompanyId || currentProvider.company_id}`}
554
+ onClick={() => setMobileMenuOpen(false)}
555
+ className="group flex items-center gap-2 w-full p-2 rounded-lg hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed transition-colors"
556
+ >
557
+ <svg width="24" height="24" viewBox="0 0 32 32" fill="none" className="flex-shrink-0 group-hover:hidden">
558
+ <path d="M25 24.6667H7V23H8V8C8 7.44772 8.44772 7 9 7H22C22.5523 7 23 7.44772 23 8V13H25V23H25.6667V24.6667H25ZM21 23H23V15H17V23H19V17H21V23ZM21 13V9H9V23H15V13H21ZM11 15H13V17H11V15ZM11 19H13V21H11V19ZM11 11H13V13H11V11Z" className="fill-fill-primary" />
559
+ </svg>
560
+ <IconArrowInternalReturn size={24} className="flex-shrink-0 hidden group-hover:block" />
561
+ <span className="text-label-primary text-[13px] font-medium leading-4 whitespace-nowrap">Back to Company</span>
562
+ </NavLink>
563
+ )}
564
+ </div>
565
+ );
566
+ }
567
+
568
+ return null;
569
+ };
570
+
571
+ return (
572
+ <TooltipProvider delayDuration={200}>
573
+ <aside className={`hidden sm:flex flex-col items-start bg-surface-secondary p-2 border-border-primary fixed top-12 z-20 overflow-y-auto transition-all duration-300 left-0 border-r rtl:left-auto rtl:right-0 rtl:border-r-0 rtl:border-l ${
574
+ collapsed ? 'w-[72px] h-[calc(100vh-3rem)]' : 'w-[268px] h-[calc(100vh-3rem)]'
575
+ } ${
576
+ mobileMenuOpen ? 'max-sm:!flex max-sm:w-full max-sm:h-[calc(100vh-3rem)] max-sm:border-r-0 max-sm:border-l-0' : ''
577
+ }`}>
578
+ <div className="flex flex-col items-start gap-1 w-full">
579
+ {/* Back Navigation (if applicable) */}
580
+ {renderBackNavigation()}
581
+
582
+ {/* Header Content */}
583
+ <div className="flex w-full flex-col items-start">
584
+ {renderHeader()}
585
+ </div>
586
+
587
+ {/* Navigation Links */}
588
+ <nav className="flex flex-col items-start gap-1 w-full pt-2">
589
+ {navItems.map((item) => (
590
+ <SidebarNavLink
591
+ key={item.to}
592
+ icon={item.icon}
593
+ label={item.label}
594
+ to={item.to}
595
+ end={item.end}
596
+ destination={destination}
597
+ />
598
+ ))}
599
+ </nav>
600
+ </div>
601
+ </aside>
602
+ </TooltipProvider>
603
+ );
604
+ };
605
+
606
+ interface SidebarNavLinkProps {
607
+ icon: React.ReactNode;
608
+ label: string;
609
+ to: string;
610
+ end?: boolean;
611
+ destination: Destination;
612
+ }
613
+
614
+ const SidebarNavLink: React.FC<SidebarNavLinkProps> = ({ icon, label, to, end, destination }) => {
615
+ const { collapsed, setMobileMenuOpen } = useSidebar();
616
+ const location = useLocation();
617
+
618
+ const handleClick = () => {
619
+ // Close mobile menu when a nav item is clicked
620
+ setMobileMenuOpen(false);
621
+ };
622
+
623
+ const linkContent = (
624
+ <NavLink
625
+ to={to}
626
+ end={end}
627
+ className={({ isActive }) => {
628
+ // Special handling for Users to include Roles (admin only)
629
+ let shouldBeActive = isActive;
630
+ if (to === '/admin/users' && destination === 'admin') {
631
+ shouldBeActive = isActive ||
632
+ location.pathname === '/admin/roles' ||
633
+ location.pathname.startsWith('/admin/roles/');
634
+ }
635
+
636
+ // Special handling for Settings routes with secondary nav
637
+ if (to.includes('/settings') && !end) {
638
+ shouldBeActive = location.pathname.startsWith(to);
639
+
640
+ // For company and provider contexts, user detail pages live under settings/team
641
+ // but route as /users/:id — keep Settings active for these paths
642
+ if (!shouldBeActive && (destination === 'company' || destination === 'provider')) {
643
+ const settingsPrefix = to.replace('/settings', '');
644
+ shouldBeActive = location.pathname.startsWith(`${settingsPrefix}/users/`) ||
645
+ location.pathname.startsWith(`${settingsPrefix}/overview/team`);
646
+ }
647
+ }
648
+
649
+ // Special handling for Debugging routes with secondary nav
650
+ if (to.includes('/debugging') && !end) {
651
+ shouldBeActive = location.pathname.startsWith(to);
652
+ }
653
+
654
+ // Special handling for Marketing routes
655
+ if (to.includes('/marketing') && !end) {
656
+ shouldBeActive = location.pathname.startsWith(to) ||
657
+ location.pathname.includes('/marketing');
658
+ }
659
+
660
+ // Special handling for Inventory/Booking Types routes
661
+ // Match both /inventory and /booking-types paths
662
+ if (to.includes('/inventory') && destination === 'provider') {
663
+ const routePrefixMatch = to.replace('/inventory', '');
664
+ shouldBeActive = location.pathname.startsWith(to) ||
665
+ location.pathname.startsWith(`${routePrefixMatch}/booking-types`);
666
+ }
667
+
668
+ // Special handling for Home routes - match based on /home at end of path
669
+ if (to.endsWith('/home') && end) {
670
+ shouldBeActive = location.pathname.endsWith('/home');
671
+ }
672
+
673
+ // Special handling for company home (exact match on company root)
674
+ if (destination === 'company' && end && !to.includes('/')) {
675
+ // Company home is the root company path
676
+ const companyMatch = location.pathname.match(/^\/company\/[^/]+$/);
677
+ shouldBeActive = !!companyMatch;
678
+ }
679
+
680
+ return cn(
681
+ "flex items-center gap-2 w-full p-2 rounded-lg transition-colors hover:bg-surface-secondary-hover active:bg-surface-secondary-pressed max-sm:py-2.5",
682
+ collapsed ? 'justify-center' : '',
683
+ shouldBeActive && "bg-gradient-to-tr from-gradient-stop1 via-gradient-stop2 to-gradient-stop3 [&_path]:!fill-fill-primary-alt [&_span]:text-label-primary-alt"
684
+ );
685
+ }}
686
+ >
687
+ <div className="flex-shrink-0 max-sm:[&_svg]:w-[26px] max-sm:[&_svg]:h-[26px]">
688
+ {icon}
689
+ </div>
690
+ {!collapsed && (
691
+ <span className="text-[13px] font-medium leading-4 text-label-primary whitespace-nowrap max-sm:text-[15px] max-sm:leading-5">
692
+ {label}
693
+ </span>
694
+ )}
695
+ </NavLink>
696
+ );
697
+
698
+ const navLinkWithClick = (
699
+ <div onClick={handleClick} className="w-full">
700
+ {linkContent}
701
+ </div>
702
+ );
703
+
704
+ if (collapsed) {
705
+ return (
706
+ <Tooltip delayDuration={100}>
707
+ <TooltipTrigger asChild>
708
+ <div onClick={handleClick} className="w-full">
709
+ {linkContent}
710
+ </div>
711
+ </TooltipTrigger>
712
+ <TooltipContent side="right" sideOffset={8}>
713
+ <p>{label}</p>
714
+ </TooltipContent>
715
+ </Tooltip>
716
+ );
717
+ }
718
+
719
+ return navLinkWithClick;
720
+ };
721
+
722
+ export default UnifiedSidebar;