cortex-react-components 3.3.0 → 4.0.3

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 (395) hide show
  1. package/dist/{chunk-Z54HOXSV.mjs → chunk-2254O4YT.mjs} +2 -2
  2. package/dist/{chunk-V6YEUAIH.mjs → chunk-3BYBIUZN.mjs} +3 -3
  3. package/dist/{chunk-XFJPL6FS.mjs → chunk-3IXZB3VP.mjs} +1 -1
  4. package/dist/{chunk-WJTVZ6CB.mjs → chunk-3NXXPFU2.mjs} +1 -1
  5. package/dist/{chunk-CONYNX7Y.mjs → chunk-4HKHDXKK.mjs} +3 -3
  6. package/dist/{chunk-DSVXGGGV.mjs → chunk-54AIO5ED.mjs} +2 -2
  7. package/dist/{chunk-7ZCW4XMR.mjs → chunk-64IBDKCH.mjs} +1 -1
  8. package/dist/{chunk-EJJITIA3.mjs → chunk-65ZDGR46.mjs} +5 -5
  9. package/dist/{chunk-I4MTJN23.mjs → chunk-6A7T3O6T.mjs} +6 -5
  10. package/dist/{chunk-HUZCVQP7.mjs → chunk-7IMTNL53.mjs} +1 -1
  11. package/dist/{chunk-IJ3E6ZXF.mjs → chunk-B2LFNC3C.mjs} +1 -1
  12. package/dist/{chunk-IDMTHUC4.mjs → chunk-B36NGEMF.mjs} +3 -3
  13. package/dist/{chunk-FABRRO2B.mjs → chunk-BAJ7NCAT.mjs} +1 -1
  14. package/dist/{chunk-4JHX6BW6.mjs → chunk-BEGQGEDH.mjs} +1 -1
  15. package/dist/{chunk-36W3BORX.mjs → chunk-BWS5MUG7.mjs} +1 -1
  16. package/dist/{chunk-5NGZXIP7.mjs → chunk-CI625DSA.mjs} +1 -1
  17. package/dist/{chunk-WX5QYPGU.mjs → chunk-CUUAA2TB.mjs} +1 -1
  18. package/dist/{chunk-ETG5N2OG.mjs → chunk-DOIUUDF6.mjs} +1 -1
  19. package/dist/{chunk-SSE3MQDP.mjs → chunk-DST7L2PX.mjs} +3 -3
  20. package/dist/{chunk-UETTBM3J.mjs → chunk-F6NJD6IG.mjs} +1 -1
  21. package/dist/{chunk-L4SNPNYU.mjs → chunk-FBCL4K4A.mjs} +1 -1
  22. package/dist/{chunk-IVOPNDSN.mjs → chunk-G5N5MCLS.mjs} +5 -5
  23. package/dist/{chunk-NQMJXY3N.mjs → chunk-GC7DB2Y5.mjs} +1 -1
  24. package/dist/{chunk-5CQITTLV.mjs → chunk-GMHZ7GGN.mjs} +1 -1
  25. package/dist/{chunk-C3CKYJ2F.mjs → chunk-GZRODHXY.mjs} +1 -1
  26. package/dist/{chunk-SM57JU3T.mjs → chunk-HCVN3YVW.mjs} +5 -5
  27. package/dist/{chunk-SSDRUPMS.mjs → chunk-HWSDSULO.mjs} +183 -36
  28. package/dist/{chunk-QPO45D6F.mjs → chunk-I2MVZVXE.mjs} +1 -1
  29. package/dist/chunk-IC4N2KYF.mjs +401 -0
  30. package/dist/{chunk-GGOGMLBY.mjs → chunk-JKVS2VFG.mjs} +4 -4
  31. package/dist/{chunk-OPJMXB4K.mjs → chunk-K4ZS4W4S.mjs} +2 -2
  32. package/dist/{chunk-Q6CUUDUR.mjs → chunk-LVLYUHSA.mjs} +1 -1
  33. package/dist/{chunk-UDCOG2XL.mjs → chunk-LY4RR7AL.mjs} +1 -1
  34. package/dist/{chunk-QMFGV3M5.mjs → chunk-LZUYY2G6.mjs} +2 -2
  35. package/dist/{chunk-XGHUG2WQ.mjs → chunk-MDG2I4PB.mjs} +1 -1
  36. package/dist/{chunk-YD7Q7IZX.mjs → chunk-MNJ5CMJM.mjs} +1 -1
  37. package/dist/{chunk-YY4VLYYH.mjs → chunk-MOMYX6OH.mjs} +26 -11
  38. package/dist/{chunk-EDYFH3EJ.mjs → chunk-NM7RODDO.mjs} +3 -3
  39. package/dist/{chunk-KOK3VCJZ.mjs → chunk-O5RKEF5N.mjs} +2 -2
  40. package/dist/chunk-PBIUFMQ7.mjs +595 -0
  41. package/dist/{chunk-GTHNG3Q7.mjs → chunk-PPESICX2.mjs} +1 -1
  42. package/dist/{chunk-F7JPOQIC.mjs → chunk-Q54XDKD6.mjs} +1 -1
  43. package/dist/{chunk-LTDXFLCW.mjs → chunk-QM3XSGNV.mjs} +13 -5
  44. package/dist/{chunk-LGGOEYDB.mjs → chunk-QU3TSSIT.mjs} +9 -9
  45. package/dist/{chunk-OCVHSV6Z.mjs → chunk-R4WRE5VN.mjs} +2 -2
  46. package/dist/{chunk-HMVIQFLN.mjs → chunk-S2JSIAMP.mjs} +1 -1
  47. package/dist/{chunk-4JSM5VYZ.mjs → chunk-SAVDOTMQ.mjs} +1 -1
  48. package/dist/{chunk-PE44IHZN.mjs → chunk-SBD4TWK2.mjs} +1 -1
  49. package/dist/{chunk-B7WVGDB6.mjs → chunk-SZJ6XME5.mjs} +1 -1
  50. package/dist/{chunk-URC56DLC.mjs → chunk-T2VDQBFT.mjs} +1 -1
  51. package/dist/{chunk-2D3EN2AX.mjs → chunk-T36HNGWV.mjs} +2 -2
  52. package/dist/{chunk-3BYULUMU.mjs → chunk-T62Q55Y5.mjs} +1 -1
  53. package/dist/{chunk-IBQBZNEA.mjs → chunk-T756T7P5.mjs} +1 -1
  54. package/dist/{chunk-HNBHBFLY.mjs → chunk-TZBPEFJY.mjs} +1 -1
  55. package/dist/{chunk-HQW5M4ND.mjs → chunk-U5XRK325.mjs} +1 -1
  56. package/dist/{chunk-4P5Q6UXF.mjs → chunk-UBFOKMYD.mjs} +5 -5
  57. package/dist/{chunk-6NRBLKM4.mjs → chunk-UM7KTWAX.mjs} +2 -2
  58. package/dist/{chunk-E5LGE3IW.mjs → chunk-W73LGNTH.mjs} +1 -1
  59. package/dist/{chunk-QETXXFRW.mjs → chunk-WNGLLRYA.mjs} +1 -1
  60. package/dist/{chunk-NVSA5BFC.mjs → chunk-XP74JZNW.mjs} +3 -3
  61. package/dist/{chunk-OXP3LJ53.mjs → chunk-XT7I7SJB.mjs} +4 -4
  62. package/dist/{chunk-JFXWP3RQ.mjs → chunk-Y7B7YO6Q.mjs} +1 -1
  63. package/dist/{chunk-XZFMQXYJ.mjs → chunk-ZD5DKC5T.mjs} +1 -1
  64. package/dist/{chunk-EC5I4CIO.mjs → chunk-ZJ5SRNYD.mjs} +1 -1
  65. package/dist/{chunk-LM4J7254.mjs → chunk-ZSGXRIK7.mjs} +7 -7
  66. package/dist/{chunk-MZVEK6A5.mjs → chunk-ZZQWZWMG.mjs} +19 -19
  67. package/dist/components/AdvancedComponents/AppSidebar.d.ts +1 -1
  68. package/dist/components/AdvancedComponents/AppSidebar.js +481 -302
  69. package/dist/components/AdvancedComponents/AppSidebar.mjs +4 -4
  70. package/dist/components/AdvancedComponents/index.js +481 -302
  71. package/dist/components/AdvancedComponents/index.mjs +4 -4
  72. package/dist/components/Blocks/Banner.mjs +6 -6
  73. package/dist/components/Blocks/CallToAction.mjs +6 -6
  74. package/dist/components/Blocks/CollapsibleArea.mjs +7 -7
  75. package/dist/components/Blocks/Content.mjs +7 -7
  76. package/dist/components/Blocks/FeaturesBlock.mjs +6 -6
  77. package/dist/components/Blocks/RelatedPosts.mjs +7 -7
  78. package/dist/components/Blocks/RenderBlocks.mjs +9 -9
  79. package/dist/components/Blocks/ReusableContentBlock.mjs +9 -9
  80. package/dist/components/Blocks/index.mjs +15 -15
  81. package/dist/components/CRM/CogeBoard.js +1 -1
  82. package/dist/components/CRM/CogeBoard.mjs +3 -3
  83. package/dist/components/CRM/DealDetails.js +1 -1
  84. package/dist/components/CRM/DealDetails.mjs +2 -2
  85. package/dist/components/CRM/KanbanBoard.js +1 -1
  86. package/dist/components/CRM/KanbanBoard.mjs +3 -3
  87. package/dist/components/CRM/NewDealForm.js +1 -1
  88. package/dist/components/CRM/NewDealForm.mjs +2 -2
  89. package/dist/components/CRM/index.js +1 -1
  90. package/dist/components/CRM/index.mjs +8 -8
  91. package/dist/components/Cards/ContentCard.mjs +6 -6
  92. package/dist/components/Cards/FeatureCard.mjs +6 -6
  93. package/dist/components/Cards/Image.js +1 -1
  94. package/dist/components/Cards/Image.mjs +2 -2
  95. package/dist/components/Cards/ImageProxy.js +1 -1
  96. package/dist/components/Cards/ImageProxy.mjs +2 -2
  97. package/dist/components/Cards/index.js +1 -1
  98. package/dist/components/Cards/index.mjs +12 -12
  99. package/dist/components/Chat/ChatInterface.mjs +11 -11
  100. package/dist/components/Chat/CopilotInterface.d.ts +1 -1
  101. package/dist/components/Chat/CopilotInterface.js +528 -331
  102. package/dist/components/Chat/CopilotInterface.mjs +17 -17
  103. package/dist/components/Chat/PartTypes/MessageHandler.mjs +9 -9
  104. package/dist/components/Chat/PartTypes/index.mjs +11 -11
  105. package/dist/components/Chat/chat-session-sidebar.d.ts +1 -1
  106. package/dist/components/Chat/demo-long-messages.js +528 -331
  107. package/dist/components/Chat/demo-long-messages.mjs +17 -17
  108. package/dist/components/Chat/demo-tests.js +528 -331
  109. package/dist/components/Chat/demo-tests.mjs +17 -17
  110. package/dist/components/Chat/demo.js +528 -331
  111. package/dist/components/Chat/demo.mjs +17 -17
  112. package/dist/components/Chat/example-usage.js +528 -331
  113. package/dist/components/Chat/example-usage.mjs +18 -18
  114. package/dist/components/Chat/example-with-vercel-ai.js +528 -331
  115. package/dist/components/Chat/example-with-vercel-ai.mjs +17 -17
  116. package/dist/components/Chat/index.js +528 -331
  117. package/dist/components/Chat/index.mjs +25 -25
  118. package/dist/components/DigitalColleagues/Views/TeamsIndexView.d.ts +1 -9
  119. package/dist/components/DigitalColleagues/Views/TeamsIndexView.js +23 -28
  120. package/dist/components/DigitalColleagues/Views/TeamsIndexView.mjs +5 -7
  121. package/dist/components/DigitalColleagues/index.d.ts +0 -18
  122. package/dist/components/DigitalColleagues/index.js +0 -16754
  123. package/dist/components/DigitalColleagues/test-data.d.ts +1 -112
  124. package/dist/components/DigitalColleagues/test-data.js +482 -308
  125. package/dist/components/DigitalColleagues/test-data.mjs +1 -5
  126. package/dist/components/Foundry/Knowledge/add-knowledge-modal.js +1 -1
  127. package/dist/components/Foundry/Knowledge/add-knowledge-modal.mjs +3 -3
  128. package/dist/components/Foundry/Knowledge/add-team-context.js +1 -1
  129. package/dist/components/Foundry/Knowledge/add-team-context.mjs +2 -2
  130. package/dist/components/Foundry/Knowledge/manage-team-context.js +1 -1
  131. package/dist/components/Foundry/Knowledge/manage-team-context.mjs +2 -2
  132. package/dist/components/Foundry/MainPage.mjs +3 -3
  133. package/dist/components/Foundry/ManagementSidebar.d.ts +2 -2
  134. package/dist/components/Foundry/ManagementSidebar.js +12 -4
  135. package/dist/components/Foundry/ManagementSidebar.mjs +1 -1
  136. package/dist/components/Foundry/Pages/dashboardpage.js +1424 -2040
  137. package/dist/components/Foundry/Pages/dashboardpage.mjs +25 -26
  138. package/dist/components/Foundry/RichText/index.js +1 -1
  139. package/dist/components/Foundry/RichText/index.mjs +5 -5
  140. package/dist/components/Foundry/RichText/plugins/image-plugin.js +1 -1
  141. package/dist/components/Foundry/RichText/plugins/image-plugin.mjs +2 -2
  142. package/dist/components/Foundry/RichText/plugins/toolbar-plugin.js +1 -1
  143. package/dist/components/Foundry/RichText/plugins/toolbar-plugin.mjs +4 -4
  144. package/dist/components/Foundry/Views/ColleaguesView.js +5 -4
  145. package/dist/components/Foundry/Views/ColleaguesView.mjs +3 -3
  146. package/dist/components/Foundry/Views/KnowledgeView.js +1 -1
  147. package/dist/components/Foundry/Views/KnowledgeView.mjs +12 -12
  148. package/dist/components/Foundry/Views/TeamsIndexView.js +6 -5
  149. package/dist/components/Foundry/Views/TeamsIndexView.mjs +5 -5
  150. package/dist/components/Foundry/Views/index.js +1352 -787
  151. package/dist/components/Foundry/Views/index.mjs +50 -49
  152. package/dist/components/{.archive → Foundry}/app-card.d.ts +1 -1
  153. package/dist/components/{DigitalColleagues/colleague-type-selection.js → Foundry/app-card.js} +89 -117
  154. package/dist/components/{DigitalColleagues/colleague-card.mjs → Foundry/app-card.mjs} +4 -5
  155. package/dist/components/Foundry/document-edit.js +1 -1
  156. package/dist/components/Foundry/document-edit.mjs +6 -6
  157. package/dist/components/Foundry/document-preview-examples.js +1 -1
  158. package/dist/components/Foundry/document-preview-examples.mjs +7 -7
  159. package/dist/components/Foundry/document-preview.js +1 -1
  160. package/dist/components/Foundry/document-preview.mjs +7 -7
  161. package/dist/components/Foundry/file-edit.js +1 -1
  162. package/dist/components/Foundry/file-edit.mjs +7 -7
  163. package/dist/components/Foundry/foundary-layout.js +481 -302
  164. package/dist/components/Foundry/foundary-layout.mjs +5 -5
  165. package/dist/components/Foundry/index.js +2748 -2868
  166. package/dist/components/Foundry/index.mjs +78 -79
  167. package/dist/components/Foundry/knowledge-browser.js +1 -1
  168. package/dist/components/Foundry/knowledge-browser.mjs +8 -8
  169. package/dist/components/Foundry/types.d.ts +26 -0
  170. package/dist/components/HeaderFooter/SectionHeading.mjs +7 -7
  171. package/dist/components/HeaderFooter/index.mjs +5 -5
  172. package/dist/components/Heros/DashboardHero/DashboardHero.js +5 -4
  173. package/dist/components/Heros/DashboardHero/DashboardHero.mjs +2 -2
  174. package/dist/components/Heros/DashboardHero/index.js +5 -4
  175. package/dist/components/Heros/DashboardHero/index.mjs +2 -2
  176. package/dist/components/Heros/HighImpact/index.mjs +7 -7
  177. package/dist/components/Heros/LowImpact/index.mjs +7 -7
  178. package/dist/components/Heros/MediumImpact/index.mjs +7 -7
  179. package/dist/components/Heros/PostHero/index.mjs +2 -2
  180. package/dist/components/Heros/RenderHero.mjs +10 -10
  181. package/dist/components/Heros/index.js +5 -4
  182. package/dist/components/Heros/index.mjs +15 -15
  183. package/dist/components/Layouts/OutputHeaderFooter.mjs +7 -7
  184. package/dist/components/Layouts/Print.mjs +11 -11
  185. package/dist/components/Layouts/SlideShow.mjs +13 -13
  186. package/dist/components/Layouts/index.mjs +17 -17
  187. package/dist/components/Payload/RichText/index.mjs +6 -6
  188. package/dist/components/Payload/RichText/serialize.mjs +6 -6
  189. package/dist/components/Payload/index.mjs +6 -6
  190. package/dist/components/Projects/AddEpicModal.js +1 -1
  191. package/dist/components/Projects/AddEpicModal.mjs +2 -2
  192. package/dist/components/Projects/AddFileModal.js +1 -1
  193. package/dist/components/Projects/AddFileModal.mjs +2 -2
  194. package/dist/components/Projects/AddSprintModal.js +1 -1
  195. package/dist/components/Projects/AddSprintModal.mjs +2 -2
  196. package/dist/components/Projects/AddTaskModal.js +1 -1
  197. package/dist/components/Projects/AddTaskModal.mjs +2 -2
  198. package/dist/components/Projects/EpicFilter.d.ts +6 -2
  199. package/dist/components/Projects/EpicFilter.js +6 -6
  200. package/dist/components/Projects/EpicFilter.mjs +6 -6
  201. package/dist/components/Projects/EpicsView.d.ts +12 -2
  202. package/dist/components/Projects/EpicsView.js +3980 -736
  203. package/dist/components/Projects/EpicsView.mjs +48 -6
  204. package/dist/components/Projects/FileView.js +6 -5
  205. package/dist/components/Projects/FileView.mjs +12 -12
  206. package/dist/components/Projects/GanttView.d.ts +13 -0
  207. package/dist/components/{DigitalColleagues/colleague-card.js → Projects/GanttView.js} +559 -260
  208. package/dist/components/{DigitalColleagues/digital-colleague-clone.mjs → Projects/GanttView.mjs} +7 -6
  209. package/dist/components/Projects/KanbanBoardView.js +6 -5
  210. package/dist/components/Projects/KanbanBoardView.mjs +17 -17
  211. package/dist/components/Projects/KanbanColumn.d.ts +1 -1
  212. package/dist/components/Projects/PlanningView.js +6 -5
  213. package/dist/components/Projects/PlanningView.mjs +5 -5
  214. package/dist/components/Projects/ProjectPage.d.ts +2 -2
  215. package/dist/components/Projects/ProjectPage.js +1727 -966
  216. package/dist/components/Projects/ProjectPage.mjs +30 -29
  217. package/dist/components/Projects/ProjectView.d.ts +1 -1
  218. package/dist/components/Projects/ProjectView.js +1209 -644
  219. package/dist/components/Projects/ProjectView.mjs +25 -24
  220. package/dist/components/Projects/ProjectsIndexView.js +6 -5
  221. package/dist/components/Projects/ProjectsIndexView.mjs +4 -4
  222. package/dist/components/Projects/SprintBoardView.d.ts +3 -0
  223. package/dist/components/Projects/SprintBoardView.js +252 -110
  224. package/dist/components/Projects/SprintBoardView.mjs +18 -18
  225. package/dist/components/Projects/TaskDetailsModal.js +1 -1
  226. package/dist/components/Projects/TaskDetailsModal.mjs +11 -11
  227. package/dist/components/Projects/TasksView.js +6 -5
  228. package/dist/components/Projects/TasksView.mjs +4 -4
  229. package/dist/components/Projects/business-unit-switcher.d.ts +1 -1
  230. package/dist/components/Projects/business-units.d.ts +1 -1
  231. package/dist/components/Projects/file-list.js +1 -1
  232. package/dist/components/Projects/file-list.mjs +8 -8
  233. package/dist/components/Projects/index.js +538 -231
  234. package/dist/components/Projects/index.mjs +23 -23
  235. package/dist/components/Projects/project-card.d.ts +1 -1
  236. package/dist/components/Projects/project-form.d.ts +1 -1
  237. package/dist/components/Projects/team-card.d.ts +1 -1
  238. package/dist/components/Projects/team-switcher-bar.d.ts +1 -1
  239. package/dist/components/Projects/test-data.d.ts +448 -29
  240. package/dist/components/dc-temp/dashboard-integration-example.js +498 -326
  241. package/dist/components/dc-temp/dashboard-integration-example.mjs +7 -7
  242. package/dist/components/dc-temp/index.d.ts +3 -3
  243. package/dist/components/dc-temp/index.js +3746 -2980
  244. package/dist/components/dc-temp/index.mjs +24 -22
  245. package/dist/components/dc-temp/mock-data.d.ts +1 -1
  246. package/dist/components/index.js +4129 -4210
  247. package/dist/components/index.mjs +174 -176
  248. package/dist/components/ui/command.js +1 -1
  249. package/dist/components/ui/command.mjs +2 -2
  250. package/dist/components/ui/dialog.js +1 -1
  251. package/dist/components/ui/dialog.mjs +1 -1
  252. package/dist/components/ui/index.js +1 -1
  253. package/dist/components/ui/index.mjs +2 -2
  254. package/dist/decorators/Intranet.css +54 -14
  255. package/dist/decorators/Intranet.mjs +103 -105
  256. package/dist/globals.css +54 -14
  257. package/dist/hooks/use-local-storage.d.ts +2 -1
  258. package/dist/hooks/use-local-storage.js +5 -4
  259. package/dist/hooks/use-local-storage.mjs +1 -1
  260. package/dist/index.js +4125 -4206
  261. package/dist/index.mjs +185 -187
  262. package/dist/metafile-cjs.json +1 -1
  263. package/dist/metafile-esm.json +1 -1
  264. package/dist/pages/Blog.mjs +11 -11
  265. package/dist/pages/Documentation.mjs +3 -3
  266. package/dist/pages/IndexPage.mjs +14 -14
  267. package/dist/pages/Intranet.mjs +1 -1
  268. package/dist/pages/LandingPage.mjs +113 -115
  269. package/dist/pages/Page.mjs +15 -15
  270. package/dist/pages/Publish.mjs +104 -106
  271. package/dist/pages/Website.mjs +18 -18
  272. package/dist/sections/AboutSection.mjs +8 -8
  273. package/dist/sections/BlogDetail.mjs +7 -7
  274. package/dist/sections/BlogList.mjs +8 -8
  275. package/dist/sections/ContactSection.mjs +8 -8
  276. package/dist/sections/PageSections.mjs +113 -115
  277. package/dist/sections/PricingSection.mjs +8 -8
  278. package/dist/sections/ServiceDetail.mjs +7 -7
  279. package/dist/sections/ServiceDetailSection.mjs +7 -7
  280. package/dist/sections/ServiceSection.mjs +104 -106
  281. package/dist/sections/index.mjs +113 -115
  282. package/package.json +5 -2
  283. package/dist/chunk-5MMSWFVA.mjs +0 -364
  284. package/dist/chunk-7TDXZ32Q.mjs +0 -197
  285. package/dist/chunk-APXXTGT4.mjs +0 -424
  286. package/dist/chunk-BZENEU5C.mjs +0 -160
  287. package/dist/chunk-C444TUVA.mjs +0 -306
  288. package/dist/chunk-CNQTT5P3.mjs +0 -276
  289. package/dist/chunk-CQKCEXF2.mjs +0 -82
  290. package/dist/chunk-EKQB7NJA.mjs +0 -194
  291. package/dist/chunk-G4WW3ZTX.mjs +0 -1063
  292. package/dist/chunk-IWG2URAU.mjs +0 -74
  293. package/dist/chunk-IWSATDRG.mjs +0 -118
  294. package/dist/chunk-JRNDRMIC.mjs +0 -73
  295. package/dist/chunk-K2C4VMGF.mjs +0 -121
  296. package/dist/chunk-LQQ6C7FN.mjs +0 -365
  297. package/dist/chunk-M6ELOAGS.mjs +0 -136
  298. package/dist/chunk-NAUBZM7P.mjs +0 -183
  299. package/dist/chunk-NHDPHK6D.mjs +0 -72
  300. package/dist/chunk-R5MJWISX.mjs +0 -194
  301. package/dist/chunk-RKYMAFRJ.mjs +0 -92
  302. package/dist/chunk-SZBUXY6L.mjs +0 -121
  303. package/dist/chunk-VY6L37RQ.mjs +0 -103
  304. package/dist/chunk-X6UI73UN.mjs +0 -262
  305. package/dist/components/DigitalColleagues/AppSidebarLeft.d.ts +0 -47
  306. package/dist/components/DigitalColleagues/AppSidebarLeft.js +0 -3407
  307. package/dist/components/DigitalColleagues/AppSidebarLeft.mjs +0 -23
  308. package/dist/components/DigitalColleagues/DashboardHeader.d.ts +0 -8
  309. package/dist/components/DigitalColleagues/DashboardHeader.js +0 -2756
  310. package/dist/components/DigitalColleagues/DashboardHeader.mjs +0 -15
  311. package/dist/components/DigitalColleagues/DigitalColleageusLayout.css +0 -917
  312. package/dist/components/DigitalColleagues/DigitalColleageusLayout.d.ts +0 -28
  313. package/dist/components/DigitalColleagues/DigitalColleageusLayout.js +0 -4417
  314. package/dist/components/DigitalColleagues/DigitalColleageusLayout.mjs +0 -31
  315. package/dist/components/DigitalColleagues/MainPage.css +0 -917
  316. package/dist/components/DigitalColleagues/MainPage.d.ts +0 -3
  317. package/dist/components/DigitalColleagues/MainPage.js +0 -4080
  318. package/dist/components/DigitalColleagues/MainPage.mjs +0 -46
  319. package/dist/components/DigitalColleagues/ManagementSidebar.d.ts +0 -8
  320. package/dist/components/DigitalColleagues/ManagementSidebar.js +0 -99
  321. package/dist/components/DigitalColleagues/ManagementSidebar.mjs +0 -9
  322. package/dist/components/DigitalColleagues/Pages/dashboardpage.css +0 -917
  323. package/dist/components/DigitalColleagues/Pages/dashboardpage.d.ts +0 -18
  324. package/dist/components/DigitalColleagues/Pages/dashboardpage.js +0 -8514
  325. package/dist/components/DigitalColleagues/Pages/dashboardpage.mjs +0 -78
  326. package/dist/components/DigitalColleagues/README-document-edit.js +0 -2
  327. package/dist/components/DigitalColleagues/README-document-edit.mjs +0 -7
  328. package/dist/components/DigitalColleagues/README-document-preview.js +0 -2
  329. package/dist/components/DigitalColleagues/README-document-preview.mjs +0 -7
  330. package/dist/components/DigitalColleagues/SearchableSelect.css +0 -917
  331. package/dist/components/DigitalColleagues/SearchableSelect.d.ts +0 -16
  332. package/dist/components/DigitalColleagues/SearchableSelect.js +0 -2745
  333. package/dist/components/DigitalColleagues/SearchableSelect.mjs +0 -16
  334. package/dist/components/DigitalColleagues/Views/ColleaguesView.css +0 -917
  335. package/dist/components/DigitalColleagues/Views/ColleaguesView.d.ts +0 -14
  336. package/dist/components/DigitalColleagues/Views/ColleaguesView.js +0 -3795
  337. package/dist/components/DigitalColleagues/Views/ColleaguesView.mjs +0 -28
  338. package/dist/components/DigitalColleagues/Views/KnowledgeView.css +0 -917
  339. package/dist/components/DigitalColleagues/Views/KnowledgeView.d.ts +0 -11
  340. package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.js +0 -2
  341. package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.mjs +0 -7
  342. package/dist/components/DigitalColleagues/Views/KnowledgeView.js +0 -3935
  343. package/dist/components/DigitalColleagues/Views/KnowledgeView.mjs +0 -26
  344. package/dist/components/DigitalColleagues/Views/index.css +0 -917
  345. package/dist/components/DigitalColleagues/Views/index.d.ts +0 -7
  346. package/dist/components/DigitalColleagues/Views/index.js +0 -12284
  347. package/dist/components/DigitalColleagues/Views/index.mjs +0 -114
  348. package/dist/components/DigitalColleagues/colleague-card.css +0 -917
  349. package/dist/components/DigitalColleagues/colleague-card.d.ts +0 -12
  350. package/dist/components/DigitalColleagues/colleague-form.css +0 -917
  351. package/dist/components/DigitalColleagues/colleague-form.d.ts +0 -14
  352. package/dist/components/DigitalColleagues/colleague-form.js +0 -3086
  353. package/dist/components/DigitalColleagues/colleague-form.mjs +0 -22
  354. package/dist/components/DigitalColleagues/colleague-type-selection.css +0 -917
  355. package/dist/components/DigitalColleagues/colleague-type-selection.d.ts +0 -7
  356. package/dist/components/DigitalColleagues/colleague-type-selection.mjs +0 -16
  357. package/dist/components/DigitalColleagues/digital-colleague-clone.css +0 -917
  358. package/dist/components/DigitalColleagues/digital-colleague-clone.d.ts +0 -9
  359. package/dist/components/DigitalColleagues/digital-colleague-clone.js +0 -2828
  360. package/dist/components/DigitalColleagues/digital-colleague-options.css +0 -917
  361. package/dist/components/DigitalColleagues/digital-colleague-options.d.ts +0 -7
  362. package/dist/components/DigitalColleagues/digital-colleague-options.js +0 -2697
  363. package/dist/components/DigitalColleagues/digital-colleague-options.mjs +0 -16
  364. package/dist/components/DigitalColleagues/document-edit.css +0 -917
  365. package/dist/components/DigitalColleagues/document-edit.d.ts +0 -10
  366. package/dist/components/DigitalColleagues/document-edit.js +0 -3112
  367. package/dist/components/DigitalColleagues/document-edit.mjs +0 -20
  368. package/dist/components/DigitalColleagues/document-preview-examples.css +0 -917
  369. package/dist/components/DigitalColleagues/document-preview-examples.d.ts +0 -12
  370. package/dist/components/DigitalColleagues/document-preview-examples.js +0 -3433
  371. package/dist/components/DigitalColleagues/document-preview-examples.mjs +0 -151
  372. package/dist/components/DigitalColleagues/document-preview.css +0 -917
  373. package/dist/components/DigitalColleagues/document-preview.d.ts +0 -18
  374. package/dist/components/DigitalColleagues/document-preview.js +0 -3296
  375. package/dist/components/DigitalColleagues/document-preview.mjs +0 -21
  376. package/dist/components/DigitalColleagues/index.css +0 -917
  377. package/dist/components/DigitalColleagues/index.mjs +0 -200
  378. package/dist/components/DigitalColleagues/knowledge-browser.css +0 -917
  379. package/dist/components/DigitalColleagues/knowledge-browser.d.ts +0 -13
  380. package/dist/components/DigitalColleagues/knowledge-browser.js +0 -3581
  381. package/dist/components/DigitalColleagues/knowledge-browser.mjs +0 -23
  382. package/dist/components/DigitalColleagues/knowledge-search.css +0 -917
  383. package/dist/components/DigitalColleagues/knowledge-search.d.ts +0 -12
  384. package/dist/components/DigitalColleagues/knowledge-search.js +0 -2819
  385. package/dist/components/DigitalColleagues/knowledge-search.mjs +0 -20
  386. package/dist/components/DigitalColleagues/team-form.css +0 -917
  387. package/dist/components/DigitalColleagues/team-form.d.ts +0 -24
  388. package/dist/components/DigitalColleagues/team-form.js +0 -2836
  389. package/dist/components/DigitalColleagues/team-form.mjs +0 -20
  390. package/dist/components/DigitalColleagues/types.d.ts +0 -289
  391. package/dist/components/DigitalColleagues/types.js +0 -18
  392. package/dist/{chunk-RFQKQLNT.mjs → chunk-JJDC25TG.mjs} +3 -3
  393. package/dist/{chunk-GZGWWPCP.mjs → chunk-L666B5DN.mjs} +12 -12
  394. /package/dist/components/{DigitalColleagues/AppSidebarLeft.css → Foundry/app-card.css} +0 -0
  395. /package/dist/components/{DigitalColleagues/DashboardHeader.css → Projects/GanttView.css} +0 -0
@@ -1,4417 +0,0 @@
1
- "use client";
2
- "use strict";
3
- "use client"
4
-
5
- "use strict";
6
- "use client";
7
- var __create = Object.create;
8
- var __defProp = Object.defineProperty;
9
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
- var __getOwnPropNames = Object.getOwnPropertyNames;
11
- var __getProtoOf = Object.getPrototypeOf;
12
- var __hasOwnProp = Object.prototype.hasOwnProperty;
13
- var __export = (target, all) => {
14
- for (var name in all)
15
- __defProp(target, name, { get: all[name], enumerable: true });
16
- };
17
- var __copyProps = (to, from, except, desc) => {
18
- if (from && typeof from === "object" || typeof from === "function") {
19
- for (let key of __getOwnPropNames(from))
20
- if (!__hasOwnProp.call(to, key) && key !== except)
21
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
- }
23
- return to;
24
- };
25
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
- // If the importer is in node compatibility mode or this is not an ESM
27
- // file that has been converted to a CommonJS file using a Babel-
28
- // compatible transform (i.e. "__esModule" has not been set), then set
29
- // "default" to the CommonJS "module.exports" for node compatibility.
30
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
- mod
32
- ));
33
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
-
35
- // src/components/DigitalColleagues/DigitalColleageusLayout.tsx
36
- var DigitalColleageusLayout_exports = {};
37
- __export(DigitalColleageusLayout_exports, {
38
- DigitalColleageusLayout: () => DigitalColleageusLayout
39
- });
40
- module.exports = __toCommonJS(DigitalColleageusLayout_exports);
41
- var import_react6 = require("react");
42
-
43
- // src/utils/cn.ts
44
- var import_clsx = require("clsx");
45
-
46
- // node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
47
- var CLASS_PART_SEPARATOR = "-";
48
- var createClassGroupUtils = (config) => {
49
- const classMap = createClassMap(config);
50
- const {
51
- conflictingClassGroups,
52
- conflictingClassGroupModifiers
53
- } = config;
54
- const getClassGroupId = (className) => {
55
- const classParts = className.split(CLASS_PART_SEPARATOR);
56
- if (classParts[0] === "" && classParts.length !== 1) {
57
- classParts.shift();
58
- }
59
- return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
60
- };
61
- const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
62
- const conflicts = conflictingClassGroups[classGroupId] || [];
63
- if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
64
- return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
65
- }
66
- return conflicts;
67
- };
68
- return {
69
- getClassGroupId,
70
- getConflictingClassGroupIds
71
- };
72
- };
73
- var getGroupRecursive = (classParts, classPartObject) => {
74
- if (classParts.length === 0) {
75
- return classPartObject.classGroupId;
76
- }
77
- const currentClassPart = classParts[0];
78
- const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
79
- const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
80
- if (classGroupFromNextClassPart) {
81
- return classGroupFromNextClassPart;
82
- }
83
- if (classPartObject.validators.length === 0) {
84
- return void 0;
85
- }
86
- const classRest = classParts.join(CLASS_PART_SEPARATOR);
87
- return classPartObject.validators.find(({
88
- validator
89
- }) => validator(classRest))?.classGroupId;
90
- };
91
- var arbitraryPropertyRegex = /^\[(.+)\]$/;
92
- var getGroupIdForArbitraryProperty = (className) => {
93
- if (arbitraryPropertyRegex.test(className)) {
94
- const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
95
- const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(":"));
96
- if (property) {
97
- return "arbitrary.." + property;
98
- }
99
- }
100
- };
101
- var createClassMap = (config) => {
102
- const {
103
- theme,
104
- prefix
105
- } = config;
106
- const classMap = {
107
- nextPart: /* @__PURE__ */ new Map(),
108
- validators: []
109
- };
110
- const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
111
- prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
112
- processClassesRecursively(classGroup, classMap, classGroupId, theme);
113
- });
114
- return classMap;
115
- };
116
- var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
117
- classGroup.forEach((classDefinition) => {
118
- if (typeof classDefinition === "string") {
119
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
120
- classPartObjectToEdit.classGroupId = classGroupId;
121
- return;
122
- }
123
- if (typeof classDefinition === "function") {
124
- if (isThemeGetter(classDefinition)) {
125
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
126
- return;
127
- }
128
- classPartObject.validators.push({
129
- validator: classDefinition,
130
- classGroupId
131
- });
132
- return;
133
- }
134
- Object.entries(classDefinition).forEach(([key, classGroup2]) => {
135
- processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
136
- });
137
- });
138
- };
139
- var getPart = (classPartObject, path) => {
140
- let currentClassPartObject = classPartObject;
141
- path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
142
- if (!currentClassPartObject.nextPart.has(pathPart)) {
143
- currentClassPartObject.nextPart.set(pathPart, {
144
- nextPart: /* @__PURE__ */ new Map(),
145
- validators: []
146
- });
147
- }
148
- currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
149
- });
150
- return currentClassPartObject;
151
- };
152
- var isThemeGetter = (func) => func.isThemeGetter;
153
- var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
154
- if (!prefix) {
155
- return classGroupEntries;
156
- }
157
- return classGroupEntries.map(([classGroupId, classGroup]) => {
158
- const prefixedClassGroup = classGroup.map((classDefinition) => {
159
- if (typeof classDefinition === "string") {
160
- return prefix + classDefinition;
161
- }
162
- if (typeof classDefinition === "object") {
163
- return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
164
- }
165
- return classDefinition;
166
- });
167
- return [classGroupId, prefixedClassGroup];
168
- });
169
- };
170
- var createLruCache = (maxCacheSize) => {
171
- if (maxCacheSize < 1) {
172
- return {
173
- get: () => void 0,
174
- set: () => {
175
- }
176
- };
177
- }
178
- let cacheSize = 0;
179
- let cache = /* @__PURE__ */ new Map();
180
- let previousCache = /* @__PURE__ */ new Map();
181
- const update = (key, value) => {
182
- cache.set(key, value);
183
- cacheSize++;
184
- if (cacheSize > maxCacheSize) {
185
- cacheSize = 0;
186
- previousCache = cache;
187
- cache = /* @__PURE__ */ new Map();
188
- }
189
- };
190
- return {
191
- get(key) {
192
- let value = cache.get(key);
193
- if (value !== void 0) {
194
- return value;
195
- }
196
- if ((value = previousCache.get(key)) !== void 0) {
197
- update(key, value);
198
- return value;
199
- }
200
- },
201
- set(key, value) {
202
- if (cache.has(key)) {
203
- cache.set(key, value);
204
- } else {
205
- update(key, value);
206
- }
207
- }
208
- };
209
- };
210
- var IMPORTANT_MODIFIER = "!";
211
- var createParseClassName = (config) => {
212
- const {
213
- separator,
214
- experimentalParseClassName
215
- } = config;
216
- const isSeparatorSingleCharacter = separator.length === 1;
217
- const firstSeparatorCharacter = separator[0];
218
- const separatorLength = separator.length;
219
- const parseClassName = (className) => {
220
- const modifiers = [];
221
- let bracketDepth = 0;
222
- let modifierStart = 0;
223
- let postfixModifierPosition;
224
- for (let index = 0; index < className.length; index++) {
225
- let currentCharacter = className[index];
226
- if (bracketDepth === 0) {
227
- if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
228
- modifiers.push(className.slice(modifierStart, index));
229
- modifierStart = index + separatorLength;
230
- continue;
231
- }
232
- if (currentCharacter === "/") {
233
- postfixModifierPosition = index;
234
- continue;
235
- }
236
- }
237
- if (currentCharacter === "[") {
238
- bracketDepth++;
239
- } else if (currentCharacter === "]") {
240
- bracketDepth--;
241
- }
242
- }
243
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
244
- const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
245
- const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
246
- const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
247
- return {
248
- modifiers,
249
- hasImportantModifier,
250
- baseClassName,
251
- maybePostfixModifierPosition
252
- };
253
- };
254
- if (experimentalParseClassName) {
255
- return (className) => experimentalParseClassName({
256
- className,
257
- parseClassName
258
- });
259
- }
260
- return parseClassName;
261
- };
262
- var sortModifiers = (modifiers) => {
263
- if (modifiers.length <= 1) {
264
- return modifiers;
265
- }
266
- const sortedModifiers = [];
267
- let unsortedModifiers = [];
268
- modifiers.forEach((modifier) => {
269
- const isArbitraryVariant = modifier[0] === "[";
270
- if (isArbitraryVariant) {
271
- sortedModifiers.push(...unsortedModifiers.sort(), modifier);
272
- unsortedModifiers = [];
273
- } else {
274
- unsortedModifiers.push(modifier);
275
- }
276
- });
277
- sortedModifiers.push(...unsortedModifiers.sort());
278
- return sortedModifiers;
279
- };
280
- var createConfigUtils = (config) => ({
281
- cache: createLruCache(config.cacheSize),
282
- parseClassName: createParseClassName(config),
283
- ...createClassGroupUtils(config)
284
- });
285
- var SPLIT_CLASSES_REGEX = /\s+/;
286
- var mergeClassList = (classList, configUtils) => {
287
- const {
288
- parseClassName,
289
- getClassGroupId,
290
- getConflictingClassGroupIds
291
- } = configUtils;
292
- const classGroupsInConflict = [];
293
- const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
294
- let result = "";
295
- for (let index = classNames.length - 1; index >= 0; index -= 1) {
296
- const originalClassName = classNames[index];
297
- const {
298
- modifiers,
299
- hasImportantModifier,
300
- baseClassName,
301
- maybePostfixModifierPosition
302
- } = parseClassName(originalClassName);
303
- let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
304
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
305
- if (!classGroupId) {
306
- if (!hasPostfixModifier) {
307
- result = originalClassName + (result.length > 0 ? " " + result : result);
308
- continue;
309
- }
310
- classGroupId = getClassGroupId(baseClassName);
311
- if (!classGroupId) {
312
- result = originalClassName + (result.length > 0 ? " " + result : result);
313
- continue;
314
- }
315
- hasPostfixModifier = false;
316
- }
317
- const variantModifier = sortModifiers(modifiers).join(":");
318
- const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
319
- const classId = modifierId + classGroupId;
320
- if (classGroupsInConflict.includes(classId)) {
321
- continue;
322
- }
323
- classGroupsInConflict.push(classId);
324
- const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
325
- for (let i = 0; i < conflictGroups.length; ++i) {
326
- const group = conflictGroups[i];
327
- classGroupsInConflict.push(modifierId + group);
328
- }
329
- result = originalClassName + (result.length > 0 ? " " + result : result);
330
- }
331
- return result;
332
- };
333
- function twJoin() {
334
- let index = 0;
335
- let argument;
336
- let resolvedValue;
337
- let string = "";
338
- while (index < arguments.length) {
339
- if (argument = arguments[index++]) {
340
- if (resolvedValue = toValue(argument)) {
341
- string && (string += " ");
342
- string += resolvedValue;
343
- }
344
- }
345
- }
346
- return string;
347
- }
348
- var toValue = (mix) => {
349
- if (typeof mix === "string") {
350
- return mix;
351
- }
352
- let resolvedValue;
353
- let string = "";
354
- for (let k = 0; k < mix.length; k++) {
355
- if (mix[k]) {
356
- if (resolvedValue = toValue(mix[k])) {
357
- string && (string += " ");
358
- string += resolvedValue;
359
- }
360
- }
361
- }
362
- return string;
363
- };
364
- function createTailwindMerge(createConfigFirst, ...createConfigRest) {
365
- let configUtils;
366
- let cacheGet;
367
- let cacheSet;
368
- let functionToCall = initTailwindMerge;
369
- function initTailwindMerge(classList) {
370
- const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
371
- configUtils = createConfigUtils(config);
372
- cacheGet = configUtils.cache.get;
373
- cacheSet = configUtils.cache.set;
374
- functionToCall = tailwindMerge;
375
- return tailwindMerge(classList);
376
- }
377
- function tailwindMerge(classList) {
378
- const cachedResult = cacheGet(classList);
379
- if (cachedResult) {
380
- return cachedResult;
381
- }
382
- const result = mergeClassList(classList, configUtils);
383
- cacheSet(classList, result);
384
- return result;
385
- }
386
- return function callTailwindMerge() {
387
- return functionToCall(twJoin.apply(null, arguments));
388
- };
389
- }
390
- var fromTheme = (key) => {
391
- const themeGetter = (theme) => theme[key] || [];
392
- themeGetter.isThemeGetter = true;
393
- return themeGetter;
394
- };
395
- var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
396
- var fractionRegex = /^\d+\/\d+$/;
397
- var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
398
- var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
399
- var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
400
- var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
401
- var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
402
- var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
403
- var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
404
- var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
405
- var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
406
- var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
407
- var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
408
- var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
409
- var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
410
- var isTshirtSize = (value) => tshirtUnitRegex.test(value);
411
- var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
412
- var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
413
- var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
414
- var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
415
- var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
416
- var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
417
- var isAny = () => true;
418
- var getIsArbitraryValue = (value, label, testValue) => {
419
- const result = arbitraryValueRegex.exec(value);
420
- if (result) {
421
- if (result[1]) {
422
- return typeof label === "string" ? result[1] === label : label.has(result[1]);
423
- }
424
- return testValue(result[2]);
425
- }
426
- return false;
427
- };
428
- var isLengthOnly = (value) => (
429
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
430
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
431
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
432
- lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
433
- );
434
- var isNever = () => false;
435
- var isShadow = (value) => shadowRegex.test(value);
436
- var isImage = (value) => imageRegex.test(value);
437
- var getDefaultConfig = () => {
438
- const colors = fromTheme("colors");
439
- const spacing = fromTheme("spacing");
440
- const blur = fromTheme("blur");
441
- const brightness = fromTheme("brightness");
442
- const borderColor = fromTheme("borderColor");
443
- const borderRadius = fromTheme("borderRadius");
444
- const borderSpacing = fromTheme("borderSpacing");
445
- const borderWidth = fromTheme("borderWidth");
446
- const contrast = fromTheme("contrast");
447
- const grayscale = fromTheme("grayscale");
448
- const hueRotate = fromTheme("hueRotate");
449
- const invert = fromTheme("invert");
450
- const gap = fromTheme("gap");
451
- const gradientColorStops = fromTheme("gradientColorStops");
452
- const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
453
- const inset = fromTheme("inset");
454
- const margin = fromTheme("margin");
455
- const opacity = fromTheme("opacity");
456
- const padding = fromTheme("padding");
457
- const saturate = fromTheme("saturate");
458
- const scale = fromTheme("scale");
459
- const sepia = fromTheme("sepia");
460
- const skew = fromTheme("skew");
461
- const space = fromTheme("space");
462
- const translate = fromTheme("translate");
463
- const getOverscroll = () => ["auto", "contain", "none"];
464
- const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
465
- const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
466
- const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
467
- const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
468
- const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
469
- const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
470
- const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
471
- const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
472
- const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
473
- const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
474
- const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
475
- const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
476
- return {
477
- cacheSize: 500,
478
- separator: ":",
479
- theme: {
480
- colors: [isAny],
481
- spacing: [isLength, isArbitraryLength],
482
- blur: ["none", "", isTshirtSize, isArbitraryValue],
483
- brightness: getNumberAndArbitrary(),
484
- borderColor: [colors],
485
- borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
486
- borderSpacing: getSpacingWithArbitrary(),
487
- borderWidth: getLengthWithEmptyAndArbitrary(),
488
- contrast: getNumberAndArbitrary(),
489
- grayscale: getZeroAndEmpty(),
490
- hueRotate: getNumberAndArbitrary(),
491
- invert: getZeroAndEmpty(),
492
- gap: getSpacingWithArbitrary(),
493
- gradientColorStops: [colors],
494
- gradientColorStopPositions: [isPercent, isArbitraryLength],
495
- inset: getSpacingWithAutoAndArbitrary(),
496
- margin: getSpacingWithAutoAndArbitrary(),
497
- opacity: getNumberAndArbitrary(),
498
- padding: getSpacingWithArbitrary(),
499
- saturate: getNumberAndArbitrary(),
500
- scale: getNumberAndArbitrary(),
501
- sepia: getZeroAndEmpty(),
502
- skew: getNumberAndArbitrary(),
503
- space: getSpacingWithArbitrary(),
504
- translate: getSpacingWithArbitrary()
505
- },
506
- classGroups: {
507
- // Layout
508
- /**
509
- * Aspect Ratio
510
- * @see https://tailwindcss.com/docs/aspect-ratio
511
- */
512
- aspect: [{
513
- aspect: ["auto", "square", "video", isArbitraryValue]
514
- }],
515
- /**
516
- * Container
517
- * @see https://tailwindcss.com/docs/container
518
- */
519
- container: ["container"],
520
- /**
521
- * Columns
522
- * @see https://tailwindcss.com/docs/columns
523
- */
524
- columns: [{
525
- columns: [isTshirtSize]
526
- }],
527
- /**
528
- * Break After
529
- * @see https://tailwindcss.com/docs/break-after
530
- */
531
- "break-after": [{
532
- "break-after": getBreaks()
533
- }],
534
- /**
535
- * Break Before
536
- * @see https://tailwindcss.com/docs/break-before
537
- */
538
- "break-before": [{
539
- "break-before": getBreaks()
540
- }],
541
- /**
542
- * Break Inside
543
- * @see https://tailwindcss.com/docs/break-inside
544
- */
545
- "break-inside": [{
546
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
547
- }],
548
- /**
549
- * Box Decoration Break
550
- * @see https://tailwindcss.com/docs/box-decoration-break
551
- */
552
- "box-decoration": [{
553
- "box-decoration": ["slice", "clone"]
554
- }],
555
- /**
556
- * Box Sizing
557
- * @see https://tailwindcss.com/docs/box-sizing
558
- */
559
- box: [{
560
- box: ["border", "content"]
561
- }],
562
- /**
563
- * Display
564
- * @see https://tailwindcss.com/docs/display
565
- */
566
- display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
567
- /**
568
- * Floats
569
- * @see https://tailwindcss.com/docs/float
570
- */
571
- float: [{
572
- float: ["right", "left", "none", "start", "end"]
573
- }],
574
- /**
575
- * Clear
576
- * @see https://tailwindcss.com/docs/clear
577
- */
578
- clear: [{
579
- clear: ["left", "right", "both", "none", "start", "end"]
580
- }],
581
- /**
582
- * Isolation
583
- * @see https://tailwindcss.com/docs/isolation
584
- */
585
- isolation: ["isolate", "isolation-auto"],
586
- /**
587
- * Object Fit
588
- * @see https://tailwindcss.com/docs/object-fit
589
- */
590
- "object-fit": [{
591
- object: ["contain", "cover", "fill", "none", "scale-down"]
592
- }],
593
- /**
594
- * Object Position
595
- * @see https://tailwindcss.com/docs/object-position
596
- */
597
- "object-position": [{
598
- object: [...getPositions(), isArbitraryValue]
599
- }],
600
- /**
601
- * Overflow
602
- * @see https://tailwindcss.com/docs/overflow
603
- */
604
- overflow: [{
605
- overflow: getOverflow()
606
- }],
607
- /**
608
- * Overflow X
609
- * @see https://tailwindcss.com/docs/overflow
610
- */
611
- "overflow-x": [{
612
- "overflow-x": getOverflow()
613
- }],
614
- /**
615
- * Overflow Y
616
- * @see https://tailwindcss.com/docs/overflow
617
- */
618
- "overflow-y": [{
619
- "overflow-y": getOverflow()
620
- }],
621
- /**
622
- * Overscroll Behavior
623
- * @see https://tailwindcss.com/docs/overscroll-behavior
624
- */
625
- overscroll: [{
626
- overscroll: getOverscroll()
627
- }],
628
- /**
629
- * Overscroll Behavior X
630
- * @see https://tailwindcss.com/docs/overscroll-behavior
631
- */
632
- "overscroll-x": [{
633
- "overscroll-x": getOverscroll()
634
- }],
635
- /**
636
- * Overscroll Behavior Y
637
- * @see https://tailwindcss.com/docs/overscroll-behavior
638
- */
639
- "overscroll-y": [{
640
- "overscroll-y": getOverscroll()
641
- }],
642
- /**
643
- * Position
644
- * @see https://tailwindcss.com/docs/position
645
- */
646
- position: ["static", "fixed", "absolute", "relative", "sticky"],
647
- /**
648
- * Top / Right / Bottom / Left
649
- * @see https://tailwindcss.com/docs/top-right-bottom-left
650
- */
651
- inset: [{
652
- inset: [inset]
653
- }],
654
- /**
655
- * Right / Left
656
- * @see https://tailwindcss.com/docs/top-right-bottom-left
657
- */
658
- "inset-x": [{
659
- "inset-x": [inset]
660
- }],
661
- /**
662
- * Top / Bottom
663
- * @see https://tailwindcss.com/docs/top-right-bottom-left
664
- */
665
- "inset-y": [{
666
- "inset-y": [inset]
667
- }],
668
- /**
669
- * Start
670
- * @see https://tailwindcss.com/docs/top-right-bottom-left
671
- */
672
- start: [{
673
- start: [inset]
674
- }],
675
- /**
676
- * End
677
- * @see https://tailwindcss.com/docs/top-right-bottom-left
678
- */
679
- end: [{
680
- end: [inset]
681
- }],
682
- /**
683
- * Top
684
- * @see https://tailwindcss.com/docs/top-right-bottom-left
685
- */
686
- top: [{
687
- top: [inset]
688
- }],
689
- /**
690
- * Right
691
- * @see https://tailwindcss.com/docs/top-right-bottom-left
692
- */
693
- right: [{
694
- right: [inset]
695
- }],
696
- /**
697
- * Bottom
698
- * @see https://tailwindcss.com/docs/top-right-bottom-left
699
- */
700
- bottom: [{
701
- bottom: [inset]
702
- }],
703
- /**
704
- * Left
705
- * @see https://tailwindcss.com/docs/top-right-bottom-left
706
- */
707
- left: [{
708
- left: [inset]
709
- }],
710
- /**
711
- * Visibility
712
- * @see https://tailwindcss.com/docs/visibility
713
- */
714
- visibility: ["visible", "invisible", "collapse"],
715
- /**
716
- * Z-Index
717
- * @see https://tailwindcss.com/docs/z-index
718
- */
719
- z: [{
720
- z: ["auto", isInteger, isArbitraryValue]
721
- }],
722
- // Flexbox and Grid
723
- /**
724
- * Flex Basis
725
- * @see https://tailwindcss.com/docs/flex-basis
726
- */
727
- basis: [{
728
- basis: getSpacingWithAutoAndArbitrary()
729
- }],
730
- /**
731
- * Flex Direction
732
- * @see https://tailwindcss.com/docs/flex-direction
733
- */
734
- "flex-direction": [{
735
- flex: ["row", "row-reverse", "col", "col-reverse"]
736
- }],
737
- /**
738
- * Flex Wrap
739
- * @see https://tailwindcss.com/docs/flex-wrap
740
- */
741
- "flex-wrap": [{
742
- flex: ["wrap", "wrap-reverse", "nowrap"]
743
- }],
744
- /**
745
- * Flex
746
- * @see https://tailwindcss.com/docs/flex
747
- */
748
- flex: [{
749
- flex: ["1", "auto", "initial", "none", isArbitraryValue]
750
- }],
751
- /**
752
- * Flex Grow
753
- * @see https://tailwindcss.com/docs/flex-grow
754
- */
755
- grow: [{
756
- grow: getZeroAndEmpty()
757
- }],
758
- /**
759
- * Flex Shrink
760
- * @see https://tailwindcss.com/docs/flex-shrink
761
- */
762
- shrink: [{
763
- shrink: getZeroAndEmpty()
764
- }],
765
- /**
766
- * Order
767
- * @see https://tailwindcss.com/docs/order
768
- */
769
- order: [{
770
- order: ["first", "last", "none", isInteger, isArbitraryValue]
771
- }],
772
- /**
773
- * Grid Template Columns
774
- * @see https://tailwindcss.com/docs/grid-template-columns
775
- */
776
- "grid-cols": [{
777
- "grid-cols": [isAny]
778
- }],
779
- /**
780
- * Grid Column Start / End
781
- * @see https://tailwindcss.com/docs/grid-column
782
- */
783
- "col-start-end": [{
784
- col: ["auto", {
785
- span: ["full", isInteger, isArbitraryValue]
786
- }, isArbitraryValue]
787
- }],
788
- /**
789
- * Grid Column Start
790
- * @see https://tailwindcss.com/docs/grid-column
791
- */
792
- "col-start": [{
793
- "col-start": getNumberWithAutoAndArbitrary()
794
- }],
795
- /**
796
- * Grid Column End
797
- * @see https://tailwindcss.com/docs/grid-column
798
- */
799
- "col-end": [{
800
- "col-end": getNumberWithAutoAndArbitrary()
801
- }],
802
- /**
803
- * Grid Template Rows
804
- * @see https://tailwindcss.com/docs/grid-template-rows
805
- */
806
- "grid-rows": [{
807
- "grid-rows": [isAny]
808
- }],
809
- /**
810
- * Grid Row Start / End
811
- * @see https://tailwindcss.com/docs/grid-row
812
- */
813
- "row-start-end": [{
814
- row: ["auto", {
815
- span: [isInteger, isArbitraryValue]
816
- }, isArbitraryValue]
817
- }],
818
- /**
819
- * Grid Row Start
820
- * @see https://tailwindcss.com/docs/grid-row
821
- */
822
- "row-start": [{
823
- "row-start": getNumberWithAutoAndArbitrary()
824
- }],
825
- /**
826
- * Grid Row End
827
- * @see https://tailwindcss.com/docs/grid-row
828
- */
829
- "row-end": [{
830
- "row-end": getNumberWithAutoAndArbitrary()
831
- }],
832
- /**
833
- * Grid Auto Flow
834
- * @see https://tailwindcss.com/docs/grid-auto-flow
835
- */
836
- "grid-flow": [{
837
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
838
- }],
839
- /**
840
- * Grid Auto Columns
841
- * @see https://tailwindcss.com/docs/grid-auto-columns
842
- */
843
- "auto-cols": [{
844
- "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
845
- }],
846
- /**
847
- * Grid Auto Rows
848
- * @see https://tailwindcss.com/docs/grid-auto-rows
849
- */
850
- "auto-rows": [{
851
- "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
852
- }],
853
- /**
854
- * Gap
855
- * @see https://tailwindcss.com/docs/gap
856
- */
857
- gap: [{
858
- gap: [gap]
859
- }],
860
- /**
861
- * Gap X
862
- * @see https://tailwindcss.com/docs/gap
863
- */
864
- "gap-x": [{
865
- "gap-x": [gap]
866
- }],
867
- /**
868
- * Gap Y
869
- * @see https://tailwindcss.com/docs/gap
870
- */
871
- "gap-y": [{
872
- "gap-y": [gap]
873
- }],
874
- /**
875
- * Justify Content
876
- * @see https://tailwindcss.com/docs/justify-content
877
- */
878
- "justify-content": [{
879
- justify: ["normal", ...getAlign()]
880
- }],
881
- /**
882
- * Justify Items
883
- * @see https://tailwindcss.com/docs/justify-items
884
- */
885
- "justify-items": [{
886
- "justify-items": ["start", "end", "center", "stretch"]
887
- }],
888
- /**
889
- * Justify Self
890
- * @see https://tailwindcss.com/docs/justify-self
891
- */
892
- "justify-self": [{
893
- "justify-self": ["auto", "start", "end", "center", "stretch"]
894
- }],
895
- /**
896
- * Align Content
897
- * @see https://tailwindcss.com/docs/align-content
898
- */
899
- "align-content": [{
900
- content: ["normal", ...getAlign(), "baseline"]
901
- }],
902
- /**
903
- * Align Items
904
- * @see https://tailwindcss.com/docs/align-items
905
- */
906
- "align-items": [{
907
- items: ["start", "end", "center", "baseline", "stretch"]
908
- }],
909
- /**
910
- * Align Self
911
- * @see https://tailwindcss.com/docs/align-self
912
- */
913
- "align-self": [{
914
- self: ["auto", "start", "end", "center", "stretch", "baseline"]
915
- }],
916
- /**
917
- * Place Content
918
- * @see https://tailwindcss.com/docs/place-content
919
- */
920
- "place-content": [{
921
- "place-content": [...getAlign(), "baseline"]
922
- }],
923
- /**
924
- * Place Items
925
- * @see https://tailwindcss.com/docs/place-items
926
- */
927
- "place-items": [{
928
- "place-items": ["start", "end", "center", "baseline", "stretch"]
929
- }],
930
- /**
931
- * Place Self
932
- * @see https://tailwindcss.com/docs/place-self
933
- */
934
- "place-self": [{
935
- "place-self": ["auto", "start", "end", "center", "stretch"]
936
- }],
937
- // Spacing
938
- /**
939
- * Padding
940
- * @see https://tailwindcss.com/docs/padding
941
- */
942
- p: [{
943
- p: [padding]
944
- }],
945
- /**
946
- * Padding X
947
- * @see https://tailwindcss.com/docs/padding
948
- */
949
- px: [{
950
- px: [padding]
951
- }],
952
- /**
953
- * Padding Y
954
- * @see https://tailwindcss.com/docs/padding
955
- */
956
- py: [{
957
- py: [padding]
958
- }],
959
- /**
960
- * Padding Start
961
- * @see https://tailwindcss.com/docs/padding
962
- */
963
- ps: [{
964
- ps: [padding]
965
- }],
966
- /**
967
- * Padding End
968
- * @see https://tailwindcss.com/docs/padding
969
- */
970
- pe: [{
971
- pe: [padding]
972
- }],
973
- /**
974
- * Padding Top
975
- * @see https://tailwindcss.com/docs/padding
976
- */
977
- pt: [{
978
- pt: [padding]
979
- }],
980
- /**
981
- * Padding Right
982
- * @see https://tailwindcss.com/docs/padding
983
- */
984
- pr: [{
985
- pr: [padding]
986
- }],
987
- /**
988
- * Padding Bottom
989
- * @see https://tailwindcss.com/docs/padding
990
- */
991
- pb: [{
992
- pb: [padding]
993
- }],
994
- /**
995
- * Padding Left
996
- * @see https://tailwindcss.com/docs/padding
997
- */
998
- pl: [{
999
- pl: [padding]
1000
- }],
1001
- /**
1002
- * Margin
1003
- * @see https://tailwindcss.com/docs/margin
1004
- */
1005
- m: [{
1006
- m: [margin]
1007
- }],
1008
- /**
1009
- * Margin X
1010
- * @see https://tailwindcss.com/docs/margin
1011
- */
1012
- mx: [{
1013
- mx: [margin]
1014
- }],
1015
- /**
1016
- * Margin Y
1017
- * @see https://tailwindcss.com/docs/margin
1018
- */
1019
- my: [{
1020
- my: [margin]
1021
- }],
1022
- /**
1023
- * Margin Start
1024
- * @see https://tailwindcss.com/docs/margin
1025
- */
1026
- ms: [{
1027
- ms: [margin]
1028
- }],
1029
- /**
1030
- * Margin End
1031
- * @see https://tailwindcss.com/docs/margin
1032
- */
1033
- me: [{
1034
- me: [margin]
1035
- }],
1036
- /**
1037
- * Margin Top
1038
- * @see https://tailwindcss.com/docs/margin
1039
- */
1040
- mt: [{
1041
- mt: [margin]
1042
- }],
1043
- /**
1044
- * Margin Right
1045
- * @see https://tailwindcss.com/docs/margin
1046
- */
1047
- mr: [{
1048
- mr: [margin]
1049
- }],
1050
- /**
1051
- * Margin Bottom
1052
- * @see https://tailwindcss.com/docs/margin
1053
- */
1054
- mb: [{
1055
- mb: [margin]
1056
- }],
1057
- /**
1058
- * Margin Left
1059
- * @see https://tailwindcss.com/docs/margin
1060
- */
1061
- ml: [{
1062
- ml: [margin]
1063
- }],
1064
- /**
1065
- * Space Between X
1066
- * @see https://tailwindcss.com/docs/space
1067
- */
1068
- "space-x": [{
1069
- "space-x": [space]
1070
- }],
1071
- /**
1072
- * Space Between X Reverse
1073
- * @see https://tailwindcss.com/docs/space
1074
- */
1075
- "space-x-reverse": ["space-x-reverse"],
1076
- /**
1077
- * Space Between Y
1078
- * @see https://tailwindcss.com/docs/space
1079
- */
1080
- "space-y": [{
1081
- "space-y": [space]
1082
- }],
1083
- /**
1084
- * Space Between Y Reverse
1085
- * @see https://tailwindcss.com/docs/space
1086
- */
1087
- "space-y-reverse": ["space-y-reverse"],
1088
- // Sizing
1089
- /**
1090
- * Width
1091
- * @see https://tailwindcss.com/docs/width
1092
- */
1093
- w: [{
1094
- w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
1095
- }],
1096
- /**
1097
- * Min-Width
1098
- * @see https://tailwindcss.com/docs/min-width
1099
- */
1100
- "min-w": [{
1101
- "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
1102
- }],
1103
- /**
1104
- * Max-Width
1105
- * @see https://tailwindcss.com/docs/max-width
1106
- */
1107
- "max-w": [{
1108
- "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
1109
- screen: [isTshirtSize]
1110
- }, isTshirtSize]
1111
- }],
1112
- /**
1113
- * Height
1114
- * @see https://tailwindcss.com/docs/height
1115
- */
1116
- h: [{
1117
- h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
1118
- }],
1119
- /**
1120
- * Min-Height
1121
- * @see https://tailwindcss.com/docs/min-height
1122
- */
1123
- "min-h": [{
1124
- "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1125
- }],
1126
- /**
1127
- * Max-Height
1128
- * @see https://tailwindcss.com/docs/max-height
1129
- */
1130
- "max-h": [{
1131
- "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1132
- }],
1133
- /**
1134
- * Size
1135
- * @see https://tailwindcss.com/docs/size
1136
- */
1137
- size: [{
1138
- size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
1139
- }],
1140
- // Typography
1141
- /**
1142
- * Font Size
1143
- * @see https://tailwindcss.com/docs/font-size
1144
- */
1145
- "font-size": [{
1146
- text: ["base", isTshirtSize, isArbitraryLength]
1147
- }],
1148
- /**
1149
- * Font Smoothing
1150
- * @see https://tailwindcss.com/docs/font-smoothing
1151
- */
1152
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
1153
- /**
1154
- * Font Style
1155
- * @see https://tailwindcss.com/docs/font-style
1156
- */
1157
- "font-style": ["italic", "not-italic"],
1158
- /**
1159
- * Font Weight
1160
- * @see https://tailwindcss.com/docs/font-weight
1161
- */
1162
- "font-weight": [{
1163
- font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
1164
- }],
1165
- /**
1166
- * Font Family
1167
- * @see https://tailwindcss.com/docs/font-family
1168
- */
1169
- "font-family": [{
1170
- font: [isAny]
1171
- }],
1172
- /**
1173
- * Font Variant Numeric
1174
- * @see https://tailwindcss.com/docs/font-variant-numeric
1175
- */
1176
- "fvn-normal": ["normal-nums"],
1177
- /**
1178
- * Font Variant Numeric
1179
- * @see https://tailwindcss.com/docs/font-variant-numeric
1180
- */
1181
- "fvn-ordinal": ["ordinal"],
1182
- /**
1183
- * Font Variant Numeric
1184
- * @see https://tailwindcss.com/docs/font-variant-numeric
1185
- */
1186
- "fvn-slashed-zero": ["slashed-zero"],
1187
- /**
1188
- * Font Variant Numeric
1189
- * @see https://tailwindcss.com/docs/font-variant-numeric
1190
- */
1191
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
1192
- /**
1193
- * Font Variant Numeric
1194
- * @see https://tailwindcss.com/docs/font-variant-numeric
1195
- */
1196
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1197
- /**
1198
- * Font Variant Numeric
1199
- * @see https://tailwindcss.com/docs/font-variant-numeric
1200
- */
1201
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1202
- /**
1203
- * Letter Spacing
1204
- * @see https://tailwindcss.com/docs/letter-spacing
1205
- */
1206
- tracking: [{
1207
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
1208
- }],
1209
- /**
1210
- * Line Clamp
1211
- * @see https://tailwindcss.com/docs/line-clamp
1212
- */
1213
- "line-clamp": [{
1214
- "line-clamp": ["none", isNumber, isArbitraryNumber]
1215
- }],
1216
- /**
1217
- * Line Height
1218
- * @see https://tailwindcss.com/docs/line-height
1219
- */
1220
- leading: [{
1221
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
1222
- }],
1223
- /**
1224
- * List Style Image
1225
- * @see https://tailwindcss.com/docs/list-style-image
1226
- */
1227
- "list-image": [{
1228
- "list-image": ["none", isArbitraryValue]
1229
- }],
1230
- /**
1231
- * List Style Type
1232
- * @see https://tailwindcss.com/docs/list-style-type
1233
- */
1234
- "list-style-type": [{
1235
- list: ["none", "disc", "decimal", isArbitraryValue]
1236
- }],
1237
- /**
1238
- * List Style Position
1239
- * @see https://tailwindcss.com/docs/list-style-position
1240
- */
1241
- "list-style-position": [{
1242
- list: ["inside", "outside"]
1243
- }],
1244
- /**
1245
- * Placeholder Color
1246
- * @deprecated since Tailwind CSS v3.0.0
1247
- * @see https://tailwindcss.com/docs/placeholder-color
1248
- */
1249
- "placeholder-color": [{
1250
- placeholder: [colors]
1251
- }],
1252
- /**
1253
- * Placeholder Opacity
1254
- * @see https://tailwindcss.com/docs/placeholder-opacity
1255
- */
1256
- "placeholder-opacity": [{
1257
- "placeholder-opacity": [opacity]
1258
- }],
1259
- /**
1260
- * Text Alignment
1261
- * @see https://tailwindcss.com/docs/text-align
1262
- */
1263
- "text-alignment": [{
1264
- text: ["left", "center", "right", "justify", "start", "end"]
1265
- }],
1266
- /**
1267
- * Text Color
1268
- * @see https://tailwindcss.com/docs/text-color
1269
- */
1270
- "text-color": [{
1271
- text: [colors]
1272
- }],
1273
- /**
1274
- * Text Opacity
1275
- * @see https://tailwindcss.com/docs/text-opacity
1276
- */
1277
- "text-opacity": [{
1278
- "text-opacity": [opacity]
1279
- }],
1280
- /**
1281
- * Text Decoration
1282
- * @see https://tailwindcss.com/docs/text-decoration
1283
- */
1284
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1285
- /**
1286
- * Text Decoration Style
1287
- * @see https://tailwindcss.com/docs/text-decoration-style
1288
- */
1289
- "text-decoration-style": [{
1290
- decoration: [...getLineStyles(), "wavy"]
1291
- }],
1292
- /**
1293
- * Text Decoration Thickness
1294
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1295
- */
1296
- "text-decoration-thickness": [{
1297
- decoration: ["auto", "from-font", isLength, isArbitraryLength]
1298
- }],
1299
- /**
1300
- * Text Underline Offset
1301
- * @see https://tailwindcss.com/docs/text-underline-offset
1302
- */
1303
- "underline-offset": [{
1304
- "underline-offset": ["auto", isLength, isArbitraryValue]
1305
- }],
1306
- /**
1307
- * Text Decoration Color
1308
- * @see https://tailwindcss.com/docs/text-decoration-color
1309
- */
1310
- "text-decoration-color": [{
1311
- decoration: [colors]
1312
- }],
1313
- /**
1314
- * Text Transform
1315
- * @see https://tailwindcss.com/docs/text-transform
1316
- */
1317
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1318
- /**
1319
- * Text Overflow
1320
- * @see https://tailwindcss.com/docs/text-overflow
1321
- */
1322
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1323
- /**
1324
- * Text Wrap
1325
- * @see https://tailwindcss.com/docs/text-wrap
1326
- */
1327
- "text-wrap": [{
1328
- text: ["wrap", "nowrap", "balance", "pretty"]
1329
- }],
1330
- /**
1331
- * Text Indent
1332
- * @see https://tailwindcss.com/docs/text-indent
1333
- */
1334
- indent: [{
1335
- indent: getSpacingWithArbitrary()
1336
- }],
1337
- /**
1338
- * Vertical Alignment
1339
- * @see https://tailwindcss.com/docs/vertical-align
1340
- */
1341
- "vertical-align": [{
1342
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
1343
- }],
1344
- /**
1345
- * Whitespace
1346
- * @see https://tailwindcss.com/docs/whitespace
1347
- */
1348
- whitespace: [{
1349
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1350
- }],
1351
- /**
1352
- * Word Break
1353
- * @see https://tailwindcss.com/docs/word-break
1354
- */
1355
- break: [{
1356
- break: ["normal", "words", "all", "keep"]
1357
- }],
1358
- /**
1359
- * Hyphens
1360
- * @see https://tailwindcss.com/docs/hyphens
1361
- */
1362
- hyphens: [{
1363
- hyphens: ["none", "manual", "auto"]
1364
- }],
1365
- /**
1366
- * Content
1367
- * @see https://tailwindcss.com/docs/content
1368
- */
1369
- content: [{
1370
- content: ["none", isArbitraryValue]
1371
- }],
1372
- // Backgrounds
1373
- /**
1374
- * Background Attachment
1375
- * @see https://tailwindcss.com/docs/background-attachment
1376
- */
1377
- "bg-attachment": [{
1378
- bg: ["fixed", "local", "scroll"]
1379
- }],
1380
- /**
1381
- * Background Clip
1382
- * @see https://tailwindcss.com/docs/background-clip
1383
- */
1384
- "bg-clip": [{
1385
- "bg-clip": ["border", "padding", "content", "text"]
1386
- }],
1387
- /**
1388
- * Background Opacity
1389
- * @deprecated since Tailwind CSS v3.0.0
1390
- * @see https://tailwindcss.com/docs/background-opacity
1391
- */
1392
- "bg-opacity": [{
1393
- "bg-opacity": [opacity]
1394
- }],
1395
- /**
1396
- * Background Origin
1397
- * @see https://tailwindcss.com/docs/background-origin
1398
- */
1399
- "bg-origin": [{
1400
- "bg-origin": ["border", "padding", "content"]
1401
- }],
1402
- /**
1403
- * Background Position
1404
- * @see https://tailwindcss.com/docs/background-position
1405
- */
1406
- "bg-position": [{
1407
- bg: [...getPositions(), isArbitraryPosition]
1408
- }],
1409
- /**
1410
- * Background Repeat
1411
- * @see https://tailwindcss.com/docs/background-repeat
1412
- */
1413
- "bg-repeat": [{
1414
- bg: ["no-repeat", {
1415
- repeat: ["", "x", "y", "round", "space"]
1416
- }]
1417
- }],
1418
- /**
1419
- * Background Size
1420
- * @see https://tailwindcss.com/docs/background-size
1421
- */
1422
- "bg-size": [{
1423
- bg: ["auto", "cover", "contain", isArbitrarySize]
1424
- }],
1425
- /**
1426
- * Background Image
1427
- * @see https://tailwindcss.com/docs/background-image
1428
- */
1429
- "bg-image": [{
1430
- bg: ["none", {
1431
- "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1432
- }, isArbitraryImage]
1433
- }],
1434
- /**
1435
- * Background Color
1436
- * @see https://tailwindcss.com/docs/background-color
1437
- */
1438
- "bg-color": [{
1439
- bg: [colors]
1440
- }],
1441
- /**
1442
- * Gradient Color Stops From Position
1443
- * @see https://tailwindcss.com/docs/gradient-color-stops
1444
- */
1445
- "gradient-from-pos": [{
1446
- from: [gradientColorStopPositions]
1447
- }],
1448
- /**
1449
- * Gradient Color Stops Via Position
1450
- * @see https://tailwindcss.com/docs/gradient-color-stops
1451
- */
1452
- "gradient-via-pos": [{
1453
- via: [gradientColorStopPositions]
1454
- }],
1455
- /**
1456
- * Gradient Color Stops To Position
1457
- * @see https://tailwindcss.com/docs/gradient-color-stops
1458
- */
1459
- "gradient-to-pos": [{
1460
- to: [gradientColorStopPositions]
1461
- }],
1462
- /**
1463
- * Gradient Color Stops From
1464
- * @see https://tailwindcss.com/docs/gradient-color-stops
1465
- */
1466
- "gradient-from": [{
1467
- from: [gradientColorStops]
1468
- }],
1469
- /**
1470
- * Gradient Color Stops Via
1471
- * @see https://tailwindcss.com/docs/gradient-color-stops
1472
- */
1473
- "gradient-via": [{
1474
- via: [gradientColorStops]
1475
- }],
1476
- /**
1477
- * Gradient Color Stops To
1478
- * @see https://tailwindcss.com/docs/gradient-color-stops
1479
- */
1480
- "gradient-to": [{
1481
- to: [gradientColorStops]
1482
- }],
1483
- // Borders
1484
- /**
1485
- * Border Radius
1486
- * @see https://tailwindcss.com/docs/border-radius
1487
- */
1488
- rounded: [{
1489
- rounded: [borderRadius]
1490
- }],
1491
- /**
1492
- * Border Radius Start
1493
- * @see https://tailwindcss.com/docs/border-radius
1494
- */
1495
- "rounded-s": [{
1496
- "rounded-s": [borderRadius]
1497
- }],
1498
- /**
1499
- * Border Radius End
1500
- * @see https://tailwindcss.com/docs/border-radius
1501
- */
1502
- "rounded-e": [{
1503
- "rounded-e": [borderRadius]
1504
- }],
1505
- /**
1506
- * Border Radius Top
1507
- * @see https://tailwindcss.com/docs/border-radius
1508
- */
1509
- "rounded-t": [{
1510
- "rounded-t": [borderRadius]
1511
- }],
1512
- /**
1513
- * Border Radius Right
1514
- * @see https://tailwindcss.com/docs/border-radius
1515
- */
1516
- "rounded-r": [{
1517
- "rounded-r": [borderRadius]
1518
- }],
1519
- /**
1520
- * Border Radius Bottom
1521
- * @see https://tailwindcss.com/docs/border-radius
1522
- */
1523
- "rounded-b": [{
1524
- "rounded-b": [borderRadius]
1525
- }],
1526
- /**
1527
- * Border Radius Left
1528
- * @see https://tailwindcss.com/docs/border-radius
1529
- */
1530
- "rounded-l": [{
1531
- "rounded-l": [borderRadius]
1532
- }],
1533
- /**
1534
- * Border Radius Start Start
1535
- * @see https://tailwindcss.com/docs/border-radius
1536
- */
1537
- "rounded-ss": [{
1538
- "rounded-ss": [borderRadius]
1539
- }],
1540
- /**
1541
- * Border Radius Start End
1542
- * @see https://tailwindcss.com/docs/border-radius
1543
- */
1544
- "rounded-se": [{
1545
- "rounded-se": [borderRadius]
1546
- }],
1547
- /**
1548
- * Border Radius End End
1549
- * @see https://tailwindcss.com/docs/border-radius
1550
- */
1551
- "rounded-ee": [{
1552
- "rounded-ee": [borderRadius]
1553
- }],
1554
- /**
1555
- * Border Radius End Start
1556
- * @see https://tailwindcss.com/docs/border-radius
1557
- */
1558
- "rounded-es": [{
1559
- "rounded-es": [borderRadius]
1560
- }],
1561
- /**
1562
- * Border Radius Top Left
1563
- * @see https://tailwindcss.com/docs/border-radius
1564
- */
1565
- "rounded-tl": [{
1566
- "rounded-tl": [borderRadius]
1567
- }],
1568
- /**
1569
- * Border Radius Top Right
1570
- * @see https://tailwindcss.com/docs/border-radius
1571
- */
1572
- "rounded-tr": [{
1573
- "rounded-tr": [borderRadius]
1574
- }],
1575
- /**
1576
- * Border Radius Bottom Right
1577
- * @see https://tailwindcss.com/docs/border-radius
1578
- */
1579
- "rounded-br": [{
1580
- "rounded-br": [borderRadius]
1581
- }],
1582
- /**
1583
- * Border Radius Bottom Left
1584
- * @see https://tailwindcss.com/docs/border-radius
1585
- */
1586
- "rounded-bl": [{
1587
- "rounded-bl": [borderRadius]
1588
- }],
1589
- /**
1590
- * Border Width
1591
- * @see https://tailwindcss.com/docs/border-width
1592
- */
1593
- "border-w": [{
1594
- border: [borderWidth]
1595
- }],
1596
- /**
1597
- * Border Width X
1598
- * @see https://tailwindcss.com/docs/border-width
1599
- */
1600
- "border-w-x": [{
1601
- "border-x": [borderWidth]
1602
- }],
1603
- /**
1604
- * Border Width Y
1605
- * @see https://tailwindcss.com/docs/border-width
1606
- */
1607
- "border-w-y": [{
1608
- "border-y": [borderWidth]
1609
- }],
1610
- /**
1611
- * Border Width Start
1612
- * @see https://tailwindcss.com/docs/border-width
1613
- */
1614
- "border-w-s": [{
1615
- "border-s": [borderWidth]
1616
- }],
1617
- /**
1618
- * Border Width End
1619
- * @see https://tailwindcss.com/docs/border-width
1620
- */
1621
- "border-w-e": [{
1622
- "border-e": [borderWidth]
1623
- }],
1624
- /**
1625
- * Border Width Top
1626
- * @see https://tailwindcss.com/docs/border-width
1627
- */
1628
- "border-w-t": [{
1629
- "border-t": [borderWidth]
1630
- }],
1631
- /**
1632
- * Border Width Right
1633
- * @see https://tailwindcss.com/docs/border-width
1634
- */
1635
- "border-w-r": [{
1636
- "border-r": [borderWidth]
1637
- }],
1638
- /**
1639
- * Border Width Bottom
1640
- * @see https://tailwindcss.com/docs/border-width
1641
- */
1642
- "border-w-b": [{
1643
- "border-b": [borderWidth]
1644
- }],
1645
- /**
1646
- * Border Width Left
1647
- * @see https://tailwindcss.com/docs/border-width
1648
- */
1649
- "border-w-l": [{
1650
- "border-l": [borderWidth]
1651
- }],
1652
- /**
1653
- * Border Opacity
1654
- * @see https://tailwindcss.com/docs/border-opacity
1655
- */
1656
- "border-opacity": [{
1657
- "border-opacity": [opacity]
1658
- }],
1659
- /**
1660
- * Border Style
1661
- * @see https://tailwindcss.com/docs/border-style
1662
- */
1663
- "border-style": [{
1664
- border: [...getLineStyles(), "hidden"]
1665
- }],
1666
- /**
1667
- * Divide Width X
1668
- * @see https://tailwindcss.com/docs/divide-width
1669
- */
1670
- "divide-x": [{
1671
- "divide-x": [borderWidth]
1672
- }],
1673
- /**
1674
- * Divide Width X Reverse
1675
- * @see https://tailwindcss.com/docs/divide-width
1676
- */
1677
- "divide-x-reverse": ["divide-x-reverse"],
1678
- /**
1679
- * Divide Width Y
1680
- * @see https://tailwindcss.com/docs/divide-width
1681
- */
1682
- "divide-y": [{
1683
- "divide-y": [borderWidth]
1684
- }],
1685
- /**
1686
- * Divide Width Y Reverse
1687
- * @see https://tailwindcss.com/docs/divide-width
1688
- */
1689
- "divide-y-reverse": ["divide-y-reverse"],
1690
- /**
1691
- * Divide Opacity
1692
- * @see https://tailwindcss.com/docs/divide-opacity
1693
- */
1694
- "divide-opacity": [{
1695
- "divide-opacity": [opacity]
1696
- }],
1697
- /**
1698
- * Divide Style
1699
- * @see https://tailwindcss.com/docs/divide-style
1700
- */
1701
- "divide-style": [{
1702
- divide: getLineStyles()
1703
- }],
1704
- /**
1705
- * Border Color
1706
- * @see https://tailwindcss.com/docs/border-color
1707
- */
1708
- "border-color": [{
1709
- border: [borderColor]
1710
- }],
1711
- /**
1712
- * Border Color X
1713
- * @see https://tailwindcss.com/docs/border-color
1714
- */
1715
- "border-color-x": [{
1716
- "border-x": [borderColor]
1717
- }],
1718
- /**
1719
- * Border Color Y
1720
- * @see https://tailwindcss.com/docs/border-color
1721
- */
1722
- "border-color-y": [{
1723
- "border-y": [borderColor]
1724
- }],
1725
- /**
1726
- * Border Color S
1727
- * @see https://tailwindcss.com/docs/border-color
1728
- */
1729
- "border-color-s": [{
1730
- "border-s": [borderColor]
1731
- }],
1732
- /**
1733
- * Border Color E
1734
- * @see https://tailwindcss.com/docs/border-color
1735
- */
1736
- "border-color-e": [{
1737
- "border-e": [borderColor]
1738
- }],
1739
- /**
1740
- * Border Color Top
1741
- * @see https://tailwindcss.com/docs/border-color
1742
- */
1743
- "border-color-t": [{
1744
- "border-t": [borderColor]
1745
- }],
1746
- /**
1747
- * Border Color Right
1748
- * @see https://tailwindcss.com/docs/border-color
1749
- */
1750
- "border-color-r": [{
1751
- "border-r": [borderColor]
1752
- }],
1753
- /**
1754
- * Border Color Bottom
1755
- * @see https://tailwindcss.com/docs/border-color
1756
- */
1757
- "border-color-b": [{
1758
- "border-b": [borderColor]
1759
- }],
1760
- /**
1761
- * Border Color Left
1762
- * @see https://tailwindcss.com/docs/border-color
1763
- */
1764
- "border-color-l": [{
1765
- "border-l": [borderColor]
1766
- }],
1767
- /**
1768
- * Divide Color
1769
- * @see https://tailwindcss.com/docs/divide-color
1770
- */
1771
- "divide-color": [{
1772
- divide: [borderColor]
1773
- }],
1774
- /**
1775
- * Outline Style
1776
- * @see https://tailwindcss.com/docs/outline-style
1777
- */
1778
- "outline-style": [{
1779
- outline: ["", ...getLineStyles()]
1780
- }],
1781
- /**
1782
- * Outline Offset
1783
- * @see https://tailwindcss.com/docs/outline-offset
1784
- */
1785
- "outline-offset": [{
1786
- "outline-offset": [isLength, isArbitraryValue]
1787
- }],
1788
- /**
1789
- * Outline Width
1790
- * @see https://tailwindcss.com/docs/outline-width
1791
- */
1792
- "outline-w": [{
1793
- outline: [isLength, isArbitraryLength]
1794
- }],
1795
- /**
1796
- * Outline Color
1797
- * @see https://tailwindcss.com/docs/outline-color
1798
- */
1799
- "outline-color": [{
1800
- outline: [colors]
1801
- }],
1802
- /**
1803
- * Ring Width
1804
- * @see https://tailwindcss.com/docs/ring-width
1805
- */
1806
- "ring-w": [{
1807
- ring: getLengthWithEmptyAndArbitrary()
1808
- }],
1809
- /**
1810
- * Ring Width Inset
1811
- * @see https://tailwindcss.com/docs/ring-width
1812
- */
1813
- "ring-w-inset": ["ring-inset"],
1814
- /**
1815
- * Ring Color
1816
- * @see https://tailwindcss.com/docs/ring-color
1817
- */
1818
- "ring-color": [{
1819
- ring: [colors]
1820
- }],
1821
- /**
1822
- * Ring Opacity
1823
- * @see https://tailwindcss.com/docs/ring-opacity
1824
- */
1825
- "ring-opacity": [{
1826
- "ring-opacity": [opacity]
1827
- }],
1828
- /**
1829
- * Ring Offset Width
1830
- * @see https://tailwindcss.com/docs/ring-offset-width
1831
- */
1832
- "ring-offset-w": [{
1833
- "ring-offset": [isLength, isArbitraryLength]
1834
- }],
1835
- /**
1836
- * Ring Offset Color
1837
- * @see https://tailwindcss.com/docs/ring-offset-color
1838
- */
1839
- "ring-offset-color": [{
1840
- "ring-offset": [colors]
1841
- }],
1842
- // Effects
1843
- /**
1844
- * Box Shadow
1845
- * @see https://tailwindcss.com/docs/box-shadow
1846
- */
1847
- shadow: [{
1848
- shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
1849
- }],
1850
- /**
1851
- * Box Shadow Color
1852
- * @see https://tailwindcss.com/docs/box-shadow-color
1853
- */
1854
- "shadow-color": [{
1855
- shadow: [isAny]
1856
- }],
1857
- /**
1858
- * Opacity
1859
- * @see https://tailwindcss.com/docs/opacity
1860
- */
1861
- opacity: [{
1862
- opacity: [opacity]
1863
- }],
1864
- /**
1865
- * Mix Blend Mode
1866
- * @see https://tailwindcss.com/docs/mix-blend-mode
1867
- */
1868
- "mix-blend": [{
1869
- "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
1870
- }],
1871
- /**
1872
- * Background Blend Mode
1873
- * @see https://tailwindcss.com/docs/background-blend-mode
1874
- */
1875
- "bg-blend": [{
1876
- "bg-blend": getBlendModes()
1877
- }],
1878
- // Filters
1879
- /**
1880
- * Filter
1881
- * @deprecated since Tailwind CSS v3.0.0
1882
- * @see https://tailwindcss.com/docs/filter
1883
- */
1884
- filter: [{
1885
- filter: ["", "none"]
1886
- }],
1887
- /**
1888
- * Blur
1889
- * @see https://tailwindcss.com/docs/blur
1890
- */
1891
- blur: [{
1892
- blur: [blur]
1893
- }],
1894
- /**
1895
- * Brightness
1896
- * @see https://tailwindcss.com/docs/brightness
1897
- */
1898
- brightness: [{
1899
- brightness: [brightness]
1900
- }],
1901
- /**
1902
- * Contrast
1903
- * @see https://tailwindcss.com/docs/contrast
1904
- */
1905
- contrast: [{
1906
- contrast: [contrast]
1907
- }],
1908
- /**
1909
- * Drop Shadow
1910
- * @see https://tailwindcss.com/docs/drop-shadow
1911
- */
1912
- "drop-shadow": [{
1913
- "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
1914
- }],
1915
- /**
1916
- * Grayscale
1917
- * @see https://tailwindcss.com/docs/grayscale
1918
- */
1919
- grayscale: [{
1920
- grayscale: [grayscale]
1921
- }],
1922
- /**
1923
- * Hue Rotate
1924
- * @see https://tailwindcss.com/docs/hue-rotate
1925
- */
1926
- "hue-rotate": [{
1927
- "hue-rotate": [hueRotate]
1928
- }],
1929
- /**
1930
- * Invert
1931
- * @see https://tailwindcss.com/docs/invert
1932
- */
1933
- invert: [{
1934
- invert: [invert]
1935
- }],
1936
- /**
1937
- * Saturate
1938
- * @see https://tailwindcss.com/docs/saturate
1939
- */
1940
- saturate: [{
1941
- saturate: [saturate]
1942
- }],
1943
- /**
1944
- * Sepia
1945
- * @see https://tailwindcss.com/docs/sepia
1946
- */
1947
- sepia: [{
1948
- sepia: [sepia]
1949
- }],
1950
- /**
1951
- * Backdrop Filter
1952
- * @deprecated since Tailwind CSS v3.0.0
1953
- * @see https://tailwindcss.com/docs/backdrop-filter
1954
- */
1955
- "backdrop-filter": [{
1956
- "backdrop-filter": ["", "none"]
1957
- }],
1958
- /**
1959
- * Backdrop Blur
1960
- * @see https://tailwindcss.com/docs/backdrop-blur
1961
- */
1962
- "backdrop-blur": [{
1963
- "backdrop-blur": [blur]
1964
- }],
1965
- /**
1966
- * Backdrop Brightness
1967
- * @see https://tailwindcss.com/docs/backdrop-brightness
1968
- */
1969
- "backdrop-brightness": [{
1970
- "backdrop-brightness": [brightness]
1971
- }],
1972
- /**
1973
- * Backdrop Contrast
1974
- * @see https://tailwindcss.com/docs/backdrop-contrast
1975
- */
1976
- "backdrop-contrast": [{
1977
- "backdrop-contrast": [contrast]
1978
- }],
1979
- /**
1980
- * Backdrop Grayscale
1981
- * @see https://tailwindcss.com/docs/backdrop-grayscale
1982
- */
1983
- "backdrop-grayscale": [{
1984
- "backdrop-grayscale": [grayscale]
1985
- }],
1986
- /**
1987
- * Backdrop Hue Rotate
1988
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1989
- */
1990
- "backdrop-hue-rotate": [{
1991
- "backdrop-hue-rotate": [hueRotate]
1992
- }],
1993
- /**
1994
- * Backdrop Invert
1995
- * @see https://tailwindcss.com/docs/backdrop-invert
1996
- */
1997
- "backdrop-invert": [{
1998
- "backdrop-invert": [invert]
1999
- }],
2000
- /**
2001
- * Backdrop Opacity
2002
- * @see https://tailwindcss.com/docs/backdrop-opacity
2003
- */
2004
- "backdrop-opacity": [{
2005
- "backdrop-opacity": [opacity]
2006
- }],
2007
- /**
2008
- * Backdrop Saturate
2009
- * @see https://tailwindcss.com/docs/backdrop-saturate
2010
- */
2011
- "backdrop-saturate": [{
2012
- "backdrop-saturate": [saturate]
2013
- }],
2014
- /**
2015
- * Backdrop Sepia
2016
- * @see https://tailwindcss.com/docs/backdrop-sepia
2017
- */
2018
- "backdrop-sepia": [{
2019
- "backdrop-sepia": [sepia]
2020
- }],
2021
- // Tables
2022
- /**
2023
- * Border Collapse
2024
- * @see https://tailwindcss.com/docs/border-collapse
2025
- */
2026
- "border-collapse": [{
2027
- border: ["collapse", "separate"]
2028
- }],
2029
- /**
2030
- * Border Spacing
2031
- * @see https://tailwindcss.com/docs/border-spacing
2032
- */
2033
- "border-spacing": [{
2034
- "border-spacing": [borderSpacing]
2035
- }],
2036
- /**
2037
- * Border Spacing X
2038
- * @see https://tailwindcss.com/docs/border-spacing
2039
- */
2040
- "border-spacing-x": [{
2041
- "border-spacing-x": [borderSpacing]
2042
- }],
2043
- /**
2044
- * Border Spacing Y
2045
- * @see https://tailwindcss.com/docs/border-spacing
2046
- */
2047
- "border-spacing-y": [{
2048
- "border-spacing-y": [borderSpacing]
2049
- }],
2050
- /**
2051
- * Table Layout
2052
- * @see https://tailwindcss.com/docs/table-layout
2053
- */
2054
- "table-layout": [{
2055
- table: ["auto", "fixed"]
2056
- }],
2057
- /**
2058
- * Caption Side
2059
- * @see https://tailwindcss.com/docs/caption-side
2060
- */
2061
- caption: [{
2062
- caption: ["top", "bottom"]
2063
- }],
2064
- // Transitions and Animation
2065
- /**
2066
- * Tranisition Property
2067
- * @see https://tailwindcss.com/docs/transition-property
2068
- */
2069
- transition: [{
2070
- transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
2071
- }],
2072
- /**
2073
- * Transition Duration
2074
- * @see https://tailwindcss.com/docs/transition-duration
2075
- */
2076
- duration: [{
2077
- duration: getNumberAndArbitrary()
2078
- }],
2079
- /**
2080
- * Transition Timing Function
2081
- * @see https://tailwindcss.com/docs/transition-timing-function
2082
- */
2083
- ease: [{
2084
- ease: ["linear", "in", "out", "in-out", isArbitraryValue]
2085
- }],
2086
- /**
2087
- * Transition Delay
2088
- * @see https://tailwindcss.com/docs/transition-delay
2089
- */
2090
- delay: [{
2091
- delay: getNumberAndArbitrary()
2092
- }],
2093
- /**
2094
- * Animation
2095
- * @see https://tailwindcss.com/docs/animation
2096
- */
2097
- animate: [{
2098
- animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
2099
- }],
2100
- // Transforms
2101
- /**
2102
- * Transform
2103
- * @see https://tailwindcss.com/docs/transform
2104
- */
2105
- transform: [{
2106
- transform: ["", "gpu", "none"]
2107
- }],
2108
- /**
2109
- * Scale
2110
- * @see https://tailwindcss.com/docs/scale
2111
- */
2112
- scale: [{
2113
- scale: [scale]
2114
- }],
2115
- /**
2116
- * Scale X
2117
- * @see https://tailwindcss.com/docs/scale
2118
- */
2119
- "scale-x": [{
2120
- "scale-x": [scale]
2121
- }],
2122
- /**
2123
- * Scale Y
2124
- * @see https://tailwindcss.com/docs/scale
2125
- */
2126
- "scale-y": [{
2127
- "scale-y": [scale]
2128
- }],
2129
- /**
2130
- * Rotate
2131
- * @see https://tailwindcss.com/docs/rotate
2132
- */
2133
- rotate: [{
2134
- rotate: [isInteger, isArbitraryValue]
2135
- }],
2136
- /**
2137
- * Translate X
2138
- * @see https://tailwindcss.com/docs/translate
2139
- */
2140
- "translate-x": [{
2141
- "translate-x": [translate]
2142
- }],
2143
- /**
2144
- * Translate Y
2145
- * @see https://tailwindcss.com/docs/translate
2146
- */
2147
- "translate-y": [{
2148
- "translate-y": [translate]
2149
- }],
2150
- /**
2151
- * Skew X
2152
- * @see https://tailwindcss.com/docs/skew
2153
- */
2154
- "skew-x": [{
2155
- "skew-x": [skew]
2156
- }],
2157
- /**
2158
- * Skew Y
2159
- * @see https://tailwindcss.com/docs/skew
2160
- */
2161
- "skew-y": [{
2162
- "skew-y": [skew]
2163
- }],
2164
- /**
2165
- * Transform Origin
2166
- * @see https://tailwindcss.com/docs/transform-origin
2167
- */
2168
- "transform-origin": [{
2169
- origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
2170
- }],
2171
- // Interactivity
2172
- /**
2173
- * Accent Color
2174
- * @see https://tailwindcss.com/docs/accent-color
2175
- */
2176
- accent: [{
2177
- accent: ["auto", colors]
2178
- }],
2179
- /**
2180
- * Appearance
2181
- * @see https://tailwindcss.com/docs/appearance
2182
- */
2183
- appearance: [{
2184
- appearance: ["none", "auto"]
2185
- }],
2186
- /**
2187
- * Cursor
2188
- * @see https://tailwindcss.com/docs/cursor
2189
- */
2190
- cursor: [{
2191
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryValue]
2192
- }],
2193
- /**
2194
- * Caret Color
2195
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2196
- */
2197
- "caret-color": [{
2198
- caret: [colors]
2199
- }],
2200
- /**
2201
- * Pointer Events
2202
- * @see https://tailwindcss.com/docs/pointer-events
2203
- */
2204
- "pointer-events": [{
2205
- "pointer-events": ["none", "auto"]
2206
- }],
2207
- /**
2208
- * Resize
2209
- * @see https://tailwindcss.com/docs/resize
2210
- */
2211
- resize: [{
2212
- resize: ["none", "y", "x", ""]
2213
- }],
2214
- /**
2215
- * Scroll Behavior
2216
- * @see https://tailwindcss.com/docs/scroll-behavior
2217
- */
2218
- "scroll-behavior": [{
2219
- scroll: ["auto", "smooth"]
2220
- }],
2221
- /**
2222
- * Scroll Margin
2223
- * @see https://tailwindcss.com/docs/scroll-margin
2224
- */
2225
- "scroll-m": [{
2226
- "scroll-m": getSpacingWithArbitrary()
2227
- }],
2228
- /**
2229
- * Scroll Margin X
2230
- * @see https://tailwindcss.com/docs/scroll-margin
2231
- */
2232
- "scroll-mx": [{
2233
- "scroll-mx": getSpacingWithArbitrary()
2234
- }],
2235
- /**
2236
- * Scroll Margin Y
2237
- * @see https://tailwindcss.com/docs/scroll-margin
2238
- */
2239
- "scroll-my": [{
2240
- "scroll-my": getSpacingWithArbitrary()
2241
- }],
2242
- /**
2243
- * Scroll Margin Start
2244
- * @see https://tailwindcss.com/docs/scroll-margin
2245
- */
2246
- "scroll-ms": [{
2247
- "scroll-ms": getSpacingWithArbitrary()
2248
- }],
2249
- /**
2250
- * Scroll Margin End
2251
- * @see https://tailwindcss.com/docs/scroll-margin
2252
- */
2253
- "scroll-me": [{
2254
- "scroll-me": getSpacingWithArbitrary()
2255
- }],
2256
- /**
2257
- * Scroll Margin Top
2258
- * @see https://tailwindcss.com/docs/scroll-margin
2259
- */
2260
- "scroll-mt": [{
2261
- "scroll-mt": getSpacingWithArbitrary()
2262
- }],
2263
- /**
2264
- * Scroll Margin Right
2265
- * @see https://tailwindcss.com/docs/scroll-margin
2266
- */
2267
- "scroll-mr": [{
2268
- "scroll-mr": getSpacingWithArbitrary()
2269
- }],
2270
- /**
2271
- * Scroll Margin Bottom
2272
- * @see https://tailwindcss.com/docs/scroll-margin
2273
- */
2274
- "scroll-mb": [{
2275
- "scroll-mb": getSpacingWithArbitrary()
2276
- }],
2277
- /**
2278
- * Scroll Margin Left
2279
- * @see https://tailwindcss.com/docs/scroll-margin
2280
- */
2281
- "scroll-ml": [{
2282
- "scroll-ml": getSpacingWithArbitrary()
2283
- }],
2284
- /**
2285
- * Scroll Padding
2286
- * @see https://tailwindcss.com/docs/scroll-padding
2287
- */
2288
- "scroll-p": [{
2289
- "scroll-p": getSpacingWithArbitrary()
2290
- }],
2291
- /**
2292
- * Scroll Padding X
2293
- * @see https://tailwindcss.com/docs/scroll-padding
2294
- */
2295
- "scroll-px": [{
2296
- "scroll-px": getSpacingWithArbitrary()
2297
- }],
2298
- /**
2299
- * Scroll Padding Y
2300
- * @see https://tailwindcss.com/docs/scroll-padding
2301
- */
2302
- "scroll-py": [{
2303
- "scroll-py": getSpacingWithArbitrary()
2304
- }],
2305
- /**
2306
- * Scroll Padding Start
2307
- * @see https://tailwindcss.com/docs/scroll-padding
2308
- */
2309
- "scroll-ps": [{
2310
- "scroll-ps": getSpacingWithArbitrary()
2311
- }],
2312
- /**
2313
- * Scroll Padding End
2314
- * @see https://tailwindcss.com/docs/scroll-padding
2315
- */
2316
- "scroll-pe": [{
2317
- "scroll-pe": getSpacingWithArbitrary()
2318
- }],
2319
- /**
2320
- * Scroll Padding Top
2321
- * @see https://tailwindcss.com/docs/scroll-padding
2322
- */
2323
- "scroll-pt": [{
2324
- "scroll-pt": getSpacingWithArbitrary()
2325
- }],
2326
- /**
2327
- * Scroll Padding Right
2328
- * @see https://tailwindcss.com/docs/scroll-padding
2329
- */
2330
- "scroll-pr": [{
2331
- "scroll-pr": getSpacingWithArbitrary()
2332
- }],
2333
- /**
2334
- * Scroll Padding Bottom
2335
- * @see https://tailwindcss.com/docs/scroll-padding
2336
- */
2337
- "scroll-pb": [{
2338
- "scroll-pb": getSpacingWithArbitrary()
2339
- }],
2340
- /**
2341
- * Scroll Padding Left
2342
- * @see https://tailwindcss.com/docs/scroll-padding
2343
- */
2344
- "scroll-pl": [{
2345
- "scroll-pl": getSpacingWithArbitrary()
2346
- }],
2347
- /**
2348
- * Scroll Snap Align
2349
- * @see https://tailwindcss.com/docs/scroll-snap-align
2350
- */
2351
- "snap-align": [{
2352
- snap: ["start", "end", "center", "align-none"]
2353
- }],
2354
- /**
2355
- * Scroll Snap Stop
2356
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2357
- */
2358
- "snap-stop": [{
2359
- snap: ["normal", "always"]
2360
- }],
2361
- /**
2362
- * Scroll Snap Type
2363
- * @see https://tailwindcss.com/docs/scroll-snap-type
2364
- */
2365
- "snap-type": [{
2366
- snap: ["none", "x", "y", "both"]
2367
- }],
2368
- /**
2369
- * Scroll Snap Type Strictness
2370
- * @see https://tailwindcss.com/docs/scroll-snap-type
2371
- */
2372
- "snap-strictness": [{
2373
- snap: ["mandatory", "proximity"]
2374
- }],
2375
- /**
2376
- * Touch Action
2377
- * @see https://tailwindcss.com/docs/touch-action
2378
- */
2379
- touch: [{
2380
- touch: ["auto", "none", "manipulation"]
2381
- }],
2382
- /**
2383
- * Touch Action X
2384
- * @see https://tailwindcss.com/docs/touch-action
2385
- */
2386
- "touch-x": [{
2387
- "touch-pan": ["x", "left", "right"]
2388
- }],
2389
- /**
2390
- * Touch Action Y
2391
- * @see https://tailwindcss.com/docs/touch-action
2392
- */
2393
- "touch-y": [{
2394
- "touch-pan": ["y", "up", "down"]
2395
- }],
2396
- /**
2397
- * Touch Action Pinch Zoom
2398
- * @see https://tailwindcss.com/docs/touch-action
2399
- */
2400
- "touch-pz": ["touch-pinch-zoom"],
2401
- /**
2402
- * User Select
2403
- * @see https://tailwindcss.com/docs/user-select
2404
- */
2405
- select: [{
2406
- select: ["none", "text", "all", "auto"]
2407
- }],
2408
- /**
2409
- * Will Change
2410
- * @see https://tailwindcss.com/docs/will-change
2411
- */
2412
- "will-change": [{
2413
- "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
2414
- }],
2415
- // SVG
2416
- /**
2417
- * Fill
2418
- * @see https://tailwindcss.com/docs/fill
2419
- */
2420
- fill: [{
2421
- fill: [colors, "none"]
2422
- }],
2423
- /**
2424
- * Stroke Width
2425
- * @see https://tailwindcss.com/docs/stroke-width
2426
- */
2427
- "stroke-w": [{
2428
- stroke: [isLength, isArbitraryLength, isArbitraryNumber]
2429
- }],
2430
- /**
2431
- * Stroke
2432
- * @see https://tailwindcss.com/docs/stroke
2433
- */
2434
- stroke: [{
2435
- stroke: [colors, "none"]
2436
- }],
2437
- // Accessibility
2438
- /**
2439
- * Screen Readers
2440
- * @see https://tailwindcss.com/docs/screen-readers
2441
- */
2442
- sr: ["sr-only", "not-sr-only"],
2443
- /**
2444
- * Forced Color Adjust
2445
- * @see https://tailwindcss.com/docs/forced-color-adjust
2446
- */
2447
- "forced-color-adjust": [{
2448
- "forced-color-adjust": ["auto", "none"]
2449
- }]
2450
- },
2451
- conflictingClassGroups: {
2452
- overflow: ["overflow-x", "overflow-y"],
2453
- overscroll: ["overscroll-x", "overscroll-y"],
2454
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2455
- "inset-x": ["right", "left"],
2456
- "inset-y": ["top", "bottom"],
2457
- flex: ["basis", "grow", "shrink"],
2458
- gap: ["gap-x", "gap-y"],
2459
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2460
- px: ["pr", "pl"],
2461
- py: ["pt", "pb"],
2462
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2463
- mx: ["mr", "ml"],
2464
- my: ["mt", "mb"],
2465
- size: ["w", "h"],
2466
- "font-size": ["leading"],
2467
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2468
- "fvn-ordinal": ["fvn-normal"],
2469
- "fvn-slashed-zero": ["fvn-normal"],
2470
- "fvn-figure": ["fvn-normal"],
2471
- "fvn-spacing": ["fvn-normal"],
2472
- "fvn-fraction": ["fvn-normal"],
2473
- "line-clamp": ["display", "overflow"],
2474
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2475
- "rounded-s": ["rounded-ss", "rounded-es"],
2476
- "rounded-e": ["rounded-se", "rounded-ee"],
2477
- "rounded-t": ["rounded-tl", "rounded-tr"],
2478
- "rounded-r": ["rounded-tr", "rounded-br"],
2479
- "rounded-b": ["rounded-br", "rounded-bl"],
2480
- "rounded-l": ["rounded-tl", "rounded-bl"],
2481
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
2482
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2483
- "border-w-x": ["border-w-r", "border-w-l"],
2484
- "border-w-y": ["border-w-t", "border-w-b"],
2485
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2486
- "border-color-x": ["border-color-r", "border-color-l"],
2487
- "border-color-y": ["border-color-t", "border-color-b"],
2488
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2489
- "scroll-mx": ["scroll-mr", "scroll-ml"],
2490
- "scroll-my": ["scroll-mt", "scroll-mb"],
2491
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2492
- "scroll-px": ["scroll-pr", "scroll-pl"],
2493
- "scroll-py": ["scroll-pt", "scroll-pb"],
2494
- touch: ["touch-x", "touch-y", "touch-pz"],
2495
- "touch-x": ["touch"],
2496
- "touch-y": ["touch"],
2497
- "touch-pz": ["touch"]
2498
- },
2499
- conflictingClassGroupModifiers: {
2500
- "font-size": ["leading"]
2501
- }
2502
- };
2503
- };
2504
- var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
2505
-
2506
- // src/utils/cn.ts
2507
- function cn(...inputs) {
2508
- return twMerge((0, import_clsx.clsx)(inputs));
2509
- }
2510
-
2511
- // src/components/AdvancedComponents/AppSidebar.tsx
2512
- var React6 = __toESM(require("react"));
2513
- var import_link = __toESM(require("next/link"));
2514
- var import_lucide_react4 = require("lucide-react");
2515
-
2516
- // src/components/ui/badge.tsx
2517
- var import_class_variance_authority = require("class-variance-authority");
2518
- var import_jsx_runtime = require("react/jsx-runtime");
2519
- var badgeVariants = (0, import_class_variance_authority.cva)(
2520
- "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
2521
- {
2522
- variants: {
2523
- variant: {
2524
- default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
2525
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
2526
- destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
2527
- outline: "text-foreground"
2528
- }
2529
- },
2530
- defaultVariants: {
2531
- variant: "default"
2532
- }
2533
- }
2534
- );
2535
- function Badge({ className, variant, ...props }) {
2536
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
2537
- }
2538
-
2539
- // src/components/ui/button.tsx
2540
- var import_react_slot = require("@radix-ui/react-slot");
2541
- var import_class_variance_authority2 = require("class-variance-authority");
2542
- var React = __toESM(require("react"));
2543
- var import_jsx_runtime2 = require("react/jsx-runtime");
2544
- var buttonVariants = (0, import_class_variance_authority2.cva)(
2545
- "inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
2546
- {
2547
- defaultVariants: {
2548
- size: "default",
2549
- variant: "default"
2550
- },
2551
- variants: {
2552
- size: {
2553
- clear: "",
2554
- default: "h-10 px-4 py-2",
2555
- icon: "h-10 w-10",
2556
- lg: "h-11 rounded px-8",
2557
- sm: "h-9 rounded px-3"
2558
- },
2559
- variant: {
2560
- default: "bg-accent text-accent-foreground hover:bg-background hover:text-accent hover:border-accent hover:border",
2561
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
2562
- ghost: "hover:bg-card hover:text-accent",
2563
- link: "text-primary items-start justify-start underline-offset-4 hover:underline",
2564
- outline: "border border-border bg-background hover:bg-card hover:text-accent",
2565
- secondary: "bg-secondary text-secondary-foreground hover:bg-accent"
2566
- }
2567
- }
2568
- }
2569
- );
2570
- var Button = React.forwardRef(
2571
- ({ asChild = false, className, size, variant, ...props }, ref) => {
2572
- const Comp = asChild ? import_react_slot.Slot : "button";
2573
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Comp, { className: cn(buttonVariants({ className, size, variant })), ref, ...props });
2574
- }
2575
- );
2576
- Button.displayName = "Button";
2577
-
2578
- // src/components/ui/input.tsx
2579
- var React2 = __toESM(require("react"));
2580
- var import_jsx_runtime3 = require("react/jsx-runtime");
2581
- var Input = React2.forwardRef(
2582
- ({ className, type, ...props }, ref) => {
2583
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2584
- "input",
2585
- {
2586
- type,
2587
- className: cn(
2588
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
2589
- className
2590
- ),
2591
- ref,
2592
- ...props
2593
- }
2594
- );
2595
- }
2596
- );
2597
- Input.displayName = "Input";
2598
-
2599
- // src/components/ui/scroll-area.tsx
2600
- var React3 = __toESM(require("react"));
2601
- var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"));
2602
- var import_jsx_runtime4 = require("react/jsx-runtime");
2603
- var ScrollArea = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
2604
- ScrollAreaPrimitive.Root,
2605
- {
2606
- ref,
2607
- className: cn("relative overflow-hidden", className),
2608
- ...props,
2609
- children: [
2610
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
2611
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ScrollBar, {}),
2612
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ScrollAreaPrimitive.Corner, {})
2613
- ]
2614
- }
2615
- ));
2616
- ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2617
- var ScrollBar = React3.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
2618
- ScrollAreaPrimitive.ScrollAreaScrollbar,
2619
- {
2620
- ref,
2621
- orientation,
2622
- className: cn(
2623
- "flex touch-none select-none transition-colors",
2624
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
2625
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
2626
- className
2627
- ),
2628
- ...props,
2629
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
2630
- }
2631
- ));
2632
- ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2633
-
2634
- // src/components/ui/dialog.tsx
2635
- var React4 = __toESM(require("react"));
2636
- var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
2637
- var import_lucide_react = require("lucide-react");
2638
- var import_jsx_runtime5 = require("react/jsx-runtime");
2639
- var Dialog = DialogPrimitive.Root;
2640
- var DialogPortal = DialogPrimitive.Portal;
2641
- var DialogOverlay = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2642
- DialogPrimitive.Overlay,
2643
- {
2644
- ref,
2645
- className: cn(
2646
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2647
- className
2648
- ),
2649
- ...props
2650
- }
2651
- ));
2652
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
2653
- var DialogContent = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(DialogPortal, { children: [
2654
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DialogOverlay, {}),
2655
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
2656
- DialogPrimitive.Content,
2657
- {
2658
- ref,
2659
- className: cn(
2660
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
2661
- className
2662
- ),
2663
- ...props,
2664
- children: [
2665
- children,
2666
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
2667
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.X, { className: "h-4 w-4" }),
2668
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "sr-only", children: "Close" })
2669
- ] })
2670
- ]
2671
- }
2672
- )
2673
- ] }));
2674
- DialogContent.displayName = DialogPrimitive.Content.displayName;
2675
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
2676
- DialogHeader.displayName = "DialogHeader";
2677
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2678
- "div",
2679
- {
2680
- className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
2681
- ...props
2682
- }
2683
- );
2684
- DialogFooter.displayName = "DialogFooter";
2685
- var DialogTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2686
- DialogPrimitive.Title,
2687
- {
2688
- ref,
2689
- className: cn("text-lg font-semibold leading-none tracking-tight", className),
2690
- ...props
2691
- }
2692
- ));
2693
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
2694
- var DialogDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2695
- DialogPrimitive.Description,
2696
- {
2697
- ref,
2698
- className: cn("text-sm text-muted-foreground", className),
2699
- ...props
2700
- }
2701
- ));
2702
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
2703
-
2704
- // src/components/ui/checkbox.tsx
2705
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
2706
- var import_lucide_react2 = require("lucide-react");
2707
- var React5 = __toESM(require("react"));
2708
- var import_jsx_runtime6 = require("react/jsx-runtime");
2709
- var Checkbox = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2710
- CheckboxPrimitive.Root,
2711
- {
2712
- className: cn(
2713
- "peer h-4 w-4 shrink-0 rounded border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2714
- className
2715
- ),
2716
- ref,
2717
- ...props,
2718
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Check, { className: "h-4 w-4" }) })
2719
- }
2720
- ));
2721
- Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2722
-
2723
- // src/components/DigitalColleagues/test-data.tsx
2724
- var import_lucide_react3 = require("lucide-react");
2725
- var import_jsx_runtime7 = require("react/jsx-runtime");
2726
- var createKnowledgeDocument = (title) => ({
2727
- id: Math.random().toString(36).substr(2, 9),
2728
- title,
2729
- format: "markdown",
2730
- createdAt: /* @__PURE__ */ new Date()
2731
- });
2732
- var businessUnits = [
2733
- {
2734
- id: "design",
2735
- name: "Design",
2736
- description: "Creative and visual design team",
2737
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Palette, { className: "h-4 w-4" }),
2738
- color: "bg-purple-600",
2739
- accentColor: "text-purple-600"
2740
- },
2741
- {
2742
- id: "engineering",
2743
- name: "Engineering",
2744
- description: "Software development and technical teams",
2745
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Code, { className: "h-4 w-4" }),
2746
- color: "bg-blue-600",
2747
- accentColor: "text-blue-600"
2748
- },
2749
- {
2750
- id: "marketing",
2751
- name: "Marketing",
2752
- description: "Brand, campaigns, and growth marketing",
2753
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.TrendingUp, { className: "h-4 w-4" }),
2754
- color: "bg-pink-600",
2755
- accentColor: "text-pink-600"
2756
- },
2757
- {
2758
- id: "sales",
2759
- name: "Sales",
2760
- description: "Revenue generation and customer acquisition",
2761
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.DollarSign, { className: "h-4 w-4" }),
2762
- color: "bg-green-600",
2763
- accentColor: "text-green-600"
2764
- },
2765
- {
2766
- id: "hr",
2767
- name: "Human Resources",
2768
- description: "People operations and talent management",
2769
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Users, { className: "h-4 w-4" }),
2770
- color: "bg-orange-600",
2771
- accentColor: "text-orange-600"
2772
- },
2773
- {
2774
- id: "operations",
2775
- name: "Operations",
2776
- description: "Business operations and process optimization",
2777
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Wrench, { className: "h-4 w-4" }),
2778
- color: "bg-indigo-600",
2779
- accentColor: "text-indigo-600"
2780
- },
2781
- {
2782
- id: "legal",
2783
- name: "Legal",
2784
- description: "Legal affairs and compliance",
2785
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Scale, { className: "h-4 w-4" }),
2786
- color: "bg-slate-600",
2787
- accentColor: "text-slate-600"
2788
- },
2789
- {
2790
- id: "product",
2791
- name: "Product",
2792
- description: "Product strategy and management",
2793
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Package, { className: "h-4 w-4" }),
2794
- color: "bg-violet-600",
2795
- accentColor: "text-violet-600"
2796
- },
2797
- {
2798
- id: "it",
2799
- name: "IT Support",
2800
- description: "Information technology and infrastructure",
2801
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Zap, { className: "h-4 w-4" }),
2802
- color: "bg-cyan-600",
2803
- accentColor: "text-cyan-600"
2804
- },
2805
- {
2806
- id: "company",
2807
- name: "Company",
2808
- description: "Company-wide resources and information",
2809
- icon: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.Building2, { className: "h-4 w-4" }),
2810
- color: "bg-gray-600",
2811
- accentColor: "text-gray-600"
2812
- }
2813
- ];
2814
- var mockProjects = [
2815
- {
2816
- id: "1",
2817
- name: "E-commerce Platform",
2818
- description: "Main customer-facing e-commerce application",
2819
- isSelected: true
2820
- },
2821
- {
2822
- id: "2",
2823
- name: "Admin Dashboard",
2824
- description: "Internal administration and analytics dashboard",
2825
- isSelected: false
2826
- },
2827
- {
2828
- id: "3",
2829
- name: "Mobile App",
2830
- description: "Native mobile application for iOS and Android",
2831
- isSelected: false
2832
- }
2833
- ];
2834
- var mockEpics = [
2835
- {
2836
- id: "1",
2837
- name: "User Authentication",
2838
- color: "bg-blue-500",
2839
- description: "Implement secure user authentication system",
2840
- confidence: "high",
2841
- phase: 2,
2842
- // development
2843
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
2844
- endDate: /* @__PURE__ */ new Date("2024-02-15"),
2845
- progress: 75,
2846
- isSelected: true
2847
- },
2848
- {
2849
- id: "2",
2850
- name: "Dashboard Features",
2851
- color: "bg-green-500",
2852
- description: "Build comprehensive dashboard functionality",
2853
- confidence: "medium",
2854
- phase: 1,
2855
- // planning
2856
- startDate: /* @__PURE__ */ new Date("2024-02-01"),
2857
- endDate: /* @__PURE__ */ new Date("2024-03-15"),
2858
- progress: 30,
2859
- isSelected: true
2860
- },
2861
- {
2862
- id: "3",
2863
- name: "Mobile Optimization",
2864
- color: "bg-purple-500",
2865
- description: "Optimize application for mobile devices",
2866
- confidence: "low",
2867
- phase: 1,
2868
- // planning
2869
- startDate: /* @__PURE__ */ new Date("2024-03-01"),
2870
- endDate: /* @__PURE__ */ new Date("2024-04-15"),
2871
- progress: 10,
2872
- isSelected: true
2873
- },
2874
- {
2875
- id: "4",
2876
- name: "Performance Improvements",
2877
- color: "bg-orange-500",
2878
- description: "Enhance application performance and speed",
2879
- confidence: "high",
2880
- phase: 3,
2881
- // testing
2882
- startDate: /* @__PURE__ */ new Date("2024-01-15"),
2883
- endDate: /* @__PURE__ */ new Date("2024-02-28"),
2884
- progress: 90,
2885
- isSelected: true
2886
- }
2887
- ];
2888
- var mockSprints = [
2889
- {
2890
- id: "backlog",
2891
- name: "Backlog",
2892
- description: "Tasks not yet assigned to a sprint",
2893
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
2894
- endDate: /* @__PURE__ */ new Date("2024-12-31"),
2895
- isActive: false,
2896
- isSelected: false
2897
- },
2898
- {
2899
- id: "all-tasks",
2900
- name: "All Tasks",
2901
- description: "View all tasks across all sprints",
2902
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
2903
- endDate: /* @__PURE__ */ new Date("2024-12-31"),
2904
- isActive: false,
2905
- isSelected: true
2906
- },
2907
- {
2908
- id: "1",
2909
- name: "Sprint 1",
2910
- description: "Initial development phase",
2911
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
2912
- endDate: /* @__PURE__ */ new Date("2024-01-14"),
2913
- isActive: false,
2914
- isSelected: false
2915
- },
2916
- {
2917
- id: "2",
2918
- name: "Sprint 2",
2919
- description: "Feature development",
2920
- startDate: /* @__PURE__ */ new Date("2024-01-15"),
2921
- endDate: /* @__PURE__ */ new Date("2024-01-28"),
2922
- isActive: true,
2923
- isSelected: false
2924
- }
2925
- ];
2926
- var mockTasks = [
2927
- {
2928
- id: "1",
2929
- name: "Design login page",
2930
- description: "Create wireframes and mockups for the login interface",
2931
- status: "todo",
2932
- priority: "high",
2933
- type: "story",
2934
- points: 5,
2935
- epicId: "1",
2936
- sprintId: "2",
2937
- assignee: "John Doe",
2938
- createdAt: /* @__PURE__ */ new Date("2024-01-15")
2939
- },
2940
- {
2941
- id: "2",
2942
- name: "Implement OAuth integration",
2943
- description: "Add Google and GitHub OAuth authentication",
2944
- status: "review",
2945
- priority: "high",
2946
- type: "task",
2947
- points: 8,
2948
- epicId: "1",
2949
- sprintId: "2",
2950
- assignee: "Jane Smith",
2951
- createdAt: /* @__PURE__ */ new Date("2024-01-16")
2952
- },
2953
- {
2954
- id: "3",
2955
- name: "Create dashboard widgets",
2956
- description: "Build analytics and metrics widgets for the main dashboard",
2957
- status: "todo",
2958
- priority: "medium",
2959
- type: "story",
2960
- points: 13,
2961
- epicId: "2",
2962
- sprintId: "2",
2963
- assignee: "Mike Johnson",
2964
- createdAt: /* @__PURE__ */ new Date("2024-01-17")
2965
- },
2966
- {
2967
- id: "4",
2968
- name: "Fix login redirect bug",
2969
- description: "Resolve issue where users are not redirected after login",
2970
- status: "done",
2971
- priority: "high",
2972
- type: "bug",
2973
- points: 3,
2974
- epicId: "1",
2975
- sprintId: "1",
2976
- assignee: "Sarah Wilson",
2977
- createdAt: /* @__PURE__ */ new Date("2024-01-14")
2978
- },
2979
- {
2980
- id: "5",
2981
- name: "Research mobile frameworks",
2982
- description: "Investigate best practices for mobile responsive design",
2983
- status: "in-progress",
2984
- priority: "medium",
2985
- type: "spike",
2986
- points: 5,
2987
- epicId: "3",
2988
- assignee: "Alex Brown",
2989
- createdAt: /* @__PURE__ */ new Date("2024-01-18")
2990
- },
2991
- {
2992
- id: "6",
2993
- name: "Update user profile page",
2994
- description: "Enhance user profile with new settings and preferences",
2995
- status: "review",
2996
- priority: "medium",
2997
- type: "story",
2998
- points: 8,
2999
- epicId: "2",
3000
- sprintId: "2",
3001
- assignee: "Emma Davis",
3002
- createdAt: /* @__PURE__ */ new Date("2024-01-19")
3003
- },
3004
- {
3005
- id: "7",
3006
- name: "Performance optimization",
3007
- description: "Optimize database queries and improve page load times",
3008
- status: "done",
3009
- priority: "high",
3010
- type: "task",
3011
- points: 13,
3012
- epicId: "4",
3013
- sprintId: "1",
3014
- assignee: "Tom Wilson",
3015
- createdAt: /* @__PURE__ */ new Date("2024-01-13")
3016
- }
3017
- ];
3018
- var highDensityTasks = [
3019
- ...mockTasks,
3020
- {
3021
- id: "8",
3022
- name: "Add search functionality",
3023
- description: "Implement search across all dashboard widgets",
3024
- status: "todo",
3025
- priority: "medium",
3026
- type: "story",
3027
- points: 8,
3028
- epicId: "2",
3029
- sprintId: "2",
3030
- assignee: "Chris Lee",
3031
- createdAt: /* @__PURE__ */ new Date("2024-01-20")
3032
- },
3033
- {
3034
- id: "9",
3035
- name: "Fix mobile responsive issues",
3036
- description: "Resolve layout problems on mobile devices",
3037
- status: "in-progress",
3038
- priority: "high",
3039
- type: "bug",
3040
- points: 5,
3041
- epicId: "3",
3042
- sprintId: "2",
3043
- assignee: "Taylor Swift",
3044
- createdAt: /* @__PURE__ */ new Date("2024-01-21")
3045
- },
3046
- {
3047
- id: "10",
3048
- name: "Implement dark mode",
3049
- description: "Add dark theme support across the application",
3050
- status: "review",
3051
- priority: "low",
3052
- type: "story",
3053
- points: 13,
3054
- epicId: "2",
3055
- sprintId: "2",
3056
- assignee: "Jordan Smith",
3057
- createdAt: /* @__PURE__ */ new Date("2024-01-22")
3058
- },
3059
- {
3060
- id: "11",
3061
- name: "API rate limiting",
3062
- description: "Implement rate limiting for API endpoints",
3063
- status: "done",
3064
- priority: "high",
3065
- type: "task",
3066
- points: 8,
3067
- epicId: "4",
3068
- sprintId: "1",
3069
- assignee: "Morgan Davis",
3070
- createdAt: /* @__PURE__ */ new Date("2024-01-12")
3071
- },
3072
- {
3073
- id: "12",
3074
- name: "User onboarding flow",
3075
- description: "Create guided tour for new users",
3076
- status: "todo",
3077
- priority: "medium",
3078
- type: "story",
3079
- points: 21,
3080
- epicId: "1",
3081
- sprintId: "2",
3082
- assignee: "Casey Johnson",
3083
- createdAt: /* @__PURE__ */ new Date("2024-01-23")
3084
- }
3085
- ];
3086
- var extendedProjects = [
3087
- ...mockProjects,
3088
- {
3089
- id: "4",
3090
- name: "Analytics Platform",
3091
- description: "Business intelligence and reporting system",
3092
- isSelected: false
3093
- },
3094
- {
3095
- id: "5",
3096
- name: "API Gateway",
3097
- description: "Microservices API management layer",
3098
- isSelected: false
3099
- }
3100
- ];
3101
- var emptyStateData = {
3102
- projects: [
3103
- {
3104
- id: "1",
3105
- name: "Empty Project",
3106
- description: "A project with no tasks",
3107
- isSelected: true
3108
- }
3109
- ],
3110
- epics: [],
3111
- sprints: [
3112
- {
3113
- id: "all-tasks",
3114
- name: "All Tasks",
3115
- description: "View all tasks across all sprints",
3116
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
3117
- endDate: /* @__PURE__ */ new Date("2024-12-31"),
3118
- isActive: false,
3119
- isSelected: true
3120
- }
3121
- ],
3122
- tasks: []
3123
- };
3124
- var singleEpicData = {
3125
- epics: [
3126
- {
3127
- id: "1",
3128
- name: "User Authentication",
3129
- color: "bg-blue-500",
3130
- description: "Implement secure user authentication system",
3131
- confidence: "high",
3132
- phase: 2,
3133
- startDate: /* @__PURE__ */ new Date("2024-01-01"),
3134
- endDate: /* @__PURE__ */ new Date("2024-02-15"),
3135
- progress: 75,
3136
- isSelected: true
3137
- }
3138
- ],
3139
- tasks: mockTasks.filter((task) => task.epicId === "1")
3140
- };
3141
- var testScenarios = {
3142
- empty: {
3143
- initialProjects: emptyStateData.projects,
3144
- initialEpics: emptyStateData.epics,
3145
- initialSprints: emptyStateData.sprints,
3146
- initialTasks: emptyStateData.tasks
3147
- },
3148
- default: {
3149
- initialProjects: mockProjects,
3150
- initialEpics: mockEpics,
3151
- initialSprints: mockSprints,
3152
- initialTasks: mockTasks
3153
- },
3154
- highDensity: {
3155
- initialProjects: mockProjects,
3156
- initialEpics: mockEpics,
3157
- initialSprints: mockSprints,
3158
- initialTasks: highDensityTasks
3159
- },
3160
- singleEpic: {
3161
- initialProjects: mockProjects,
3162
- initialEpics: singleEpicData.epics,
3163
- initialSprints: mockSprints,
3164
- initialTasks: singleEpicData.tasks
3165
- },
3166
- multipleProjects: {
3167
- initialProjects: extendedProjects,
3168
- initialEpics: mockEpics,
3169
- initialSprints: mockSprints,
3170
- initialTasks: mockTasks
3171
- }
3172
- };
3173
- var mockColleagues = [
3174
- {
3175
- id: "1",
3176
- type: "human",
3177
- name: "Sarah Johnson",
3178
- email: "sarah.johnson@company.com",
3179
- role: "Senior Designer",
3180
- department: "Design",
3181
- status: "active",
3182
- joinedDate: /* @__PURE__ */ new Date("2023-01-15"),
3183
- lastActive: /* @__PURE__ */ new Date(),
3184
- phone: "+1 (555) 123-4567",
3185
- location: "San Francisco, CA",
3186
- timezone: "PST",
3187
- skills: ["UI/UX Design", "Figma", "Adobe Creative Suite", "Prototyping", "User Research"],
3188
- bio: "Passionate designer with 8+ years of experience creating user-centered digital experiences."
3189
- },
3190
- {
3191
- id: "2",
3192
- type: "digital",
3193
- name: "CodeAssist Pro",
3194
- status: "active",
3195
- joinedDate: /* @__PURE__ */ new Date("2024-01-01"),
3196
- lastActive: /* @__PURE__ */ new Date(),
3197
- jobDescription: "AI-powered coding assistant that helps with code review, debugging, and documentation generation.",
3198
- workInstructions: "Review pull requests for code quality and best practices. Generate comprehensive documentation for new features. Assist with debugging complex issues. Provide code suggestions and optimizations.",
3199
- capabilities: [
3200
- "Code Review",
3201
- "Documentation Generation",
3202
- "Debugging",
3203
- "Code Optimization",
3204
- "Testing"
3205
- ],
3206
- knowledge: ["JavaScript", "TypeScript", "React", "Node.js", "Python", "Git"].map(
3207
- createKnowledgeDocument
3208
- ),
3209
- coreKnowledge: ["Company coding standards", "Architecture patterns", "Security guidelines"].map(
3210
- createKnowledgeDocument
3211
- ),
3212
- version: "2",
3213
- lastUpdated: /* @__PURE__ */ new Date("2024-01-15"),
3214
- isActive: true
3215
- },
3216
- {
3217
- id: "3",
3218
- type: "human",
3219
- name: "Michael Chen",
3220
- email: "michael.chen@company.com",
3221
- role: "Product Manager",
3222
- department: "Product",
3223
- status: "inactive",
3224
- joinedDate: /* @__PURE__ */ new Date("2022-08-20"),
3225
- lastActive: new Date(Date.now() - 2 * 60 * 60 * 1e3),
3226
- // 2 hours ago
3227
- phone: "+1 (555) 987-6543",
3228
- location: "New York, NY",
3229
- timezone: "EST",
3230
- skills: ["Product Strategy", "Agile", "Data Analysis", "User Stories", "Roadmapping"],
3231
- bio: "Strategic product manager focused on driving user engagement and business growth."
3232
- },
3233
- {
3234
- id: "4",
3235
- type: "digital",
3236
- name: "MarketingBot",
3237
- status: "active",
3238
- joinedDate: /* @__PURE__ */ new Date("2024-02-01"),
3239
- lastActive: /* @__PURE__ */ new Date(),
3240
- jobDescription: "Specialized AI assistant for marketing campaigns, content creation, and social media management.",
3241
- workInstructions: "Create engaging social media content. Analyze campaign performance metrics. Generate marketing copy and headlines. Schedule and manage social media posts.",
3242
- capabilities: [
3243
- "Content Creation",
3244
- "Social Media Management",
3245
- "Analytics",
3246
- "SEO Optimization",
3247
- "Campaign Management"
3248
- ],
3249
- knowledge: [
3250
- "Digital Marketing",
3251
- "Social Media Platforms",
3252
- "Content Strategy",
3253
- "Analytics Tools"
3254
- ].map(createKnowledgeDocument),
3255
- coreKnowledge: ["Brand guidelines", "Target audience personas", "Marketing objectives"].map(
3256
- createKnowledgeDocument
3257
- ),
3258
- version: "52",
3259
- lastUpdated: /* @__PURE__ */ new Date("2024-02-10"),
3260
- isActive: true
3261
- },
3262
- {
3263
- id: "5",
3264
- type: "human",
3265
- name: "Emily Rodriguez",
3266
- email: "emily.rodriguez@company.com",
3267
- role: "UX Researcher",
3268
- department: "Design",
3269
- status: "inactive",
3270
- joinedDate: /* @__PURE__ */ new Date("2023-06-10"),
3271
- lastActive: new Date(Date.now() - 7 * 24 * 60 * 60 * 1e3),
3272
- // 7 days ago
3273
- phone: "+1 (555) 456-7890",
3274
- location: "Austin, TX",
3275
- timezone: "CST",
3276
- skills: [
3277
- "User Research",
3278
- "Usability Testing",
3279
- "Data Analysis",
3280
- "Survey Design",
3281
- "Interview Techniques"
3282
- ],
3283
- bio: "User researcher dedicated to understanding user needs and improving product experiences."
3284
- },
3285
- {
3286
- id: "6",
3287
- type: "digital",
3288
- name: "DataAnalyzer Pro",
3289
- status: "active",
3290
- joinedDate: /* @__PURE__ */ new Date("2024-01-10"),
3291
- lastActive: /* @__PURE__ */ new Date(),
3292
- jobDescription: "Advanced AI assistant specializing in data analysis, reporting, and business intelligence.",
3293
- workInstructions: "Analyze complex datasets, generate insightful reports, create data visualizations, and provide actionable business recommendations.",
3294
- capabilities: [
3295
- "Data Analysis",
3296
- "Report Generation",
3297
- "Data Visualization",
3298
- "Business Intelligence",
3299
- "Statistical Analysis"
3300
- ],
3301
- knowledge: ["Python", "SQL", "Tableau", "Excel", "R", "Statistics"].map(
3302
- createKnowledgeDocument
3303
- ),
3304
- coreKnowledge: ["Company data sources", "KPI definitions", "Reporting standards"].map(
3305
- createKnowledgeDocument
3306
- ),
3307
- version: "3.1",
3308
- lastUpdated: /* @__PURE__ */ new Date("2024-02-20"),
3309
- isActive: true
3310
- },
3311
- {
3312
- id: "7",
3313
- type: "digital",
3314
- name: "ProjectManager AI",
3315
- status: "active",
3316
- joinedDate: /* @__PURE__ */ new Date("2024-01-05"),
3317
- lastActive: /* @__PURE__ */ new Date(),
3318
- jobDescription: "Intelligent project management assistant that helps coordinate tasks, track progress, and manage timelines.",
3319
- workInstructions: "Coordinate project activities, track milestones, manage resource allocation, and provide project status updates.",
3320
- capabilities: [
3321
- "Project Planning",
3322
- "Task Coordination",
3323
- "Timeline Management",
3324
- "Resource Allocation",
3325
- "Progress Tracking"
3326
- ],
3327
- knowledge: ["Agile", "Scrum", "Gantt Charts", "Risk Management", "Stakeholder Management"].map(
3328
- createKnowledgeDocument
3329
- ),
3330
- coreKnowledge: [
3331
- "Company project templates",
3332
- "Resource availability",
3333
- "Project methodologies"
3334
- ].map(createKnowledgeDocument),
3335
- version: "2.5",
3336
- lastUpdated: /* @__PURE__ */ new Date("2024-02-15"),
3337
- isActive: true
3338
- },
3339
- {
3340
- id: "8",
3341
- type: "digital",
3342
- name: "CustomerSupport Bot",
3343
- status: "active",
3344
- joinedDate: /* @__PURE__ */ new Date("2024-02-01"),
3345
- lastActive: /* @__PURE__ */ new Date(),
3346
- jobDescription: "AI-powered customer support assistant that handles inquiries, resolves issues, and escalates complex problems.",
3347
- workInstructions: "Respond to customer inquiries, troubleshoot common issues, provide product information, and escalate complex cases to human agents.",
3348
- capabilities: [
3349
- "Customer Support",
3350
- "Issue Resolution",
3351
- "Product Knowledge",
3352
- "Escalation Management",
3353
- "Chat Support"
3354
- ],
3355
- knowledge: [
3356
- "Product Documentation",
3357
- "FAQ",
3358
- "Troubleshooting Guides",
3359
- "Customer Service Best Practices"
3360
- ].map(createKnowledgeDocument),
3361
- coreKnowledge: ["Product catalog", "Support processes", "Escalation procedures"].map(
3362
- createKnowledgeDocument
3363
- ),
3364
- version: "1.8",
3365
- lastUpdated: /* @__PURE__ */ new Date("2024-02-25"),
3366
- isActive: true
3367
- }
3368
- ];
3369
- var mockReminders = [
3370
- {
3371
- id: "1",
3372
- title: "Review quarterly report",
3373
- description: "Go through Q4 performance metrics and prepare summary for the team meeting",
3374
- dueDate: new Date(2024, 2, 15),
3375
- dueTime: "14:30",
3376
- colleague: mockColleagues.find((c) => c.id === "2" && c.type === "digital"),
3377
- isCompleted: false,
3378
- isRecurring: false,
3379
- priority: "high",
3380
- reminderEnabled: true,
3381
- reminderMinutes: 30,
3382
- createdAt: new Date(2024, 2, 10),
3383
- tags: ["quarterly", "review", "urgent"]
3384
- },
3385
- {
3386
- id: "2",
3387
- title: "Weekly team standup",
3388
- description: "Join the weekly team synchronization meeting",
3389
- dueDate: new Date(2024, 2, 18),
3390
- dueTime: "10:00",
3391
- colleague: mockColleagues.find((c) => c.id === "4" && c.type === "digital"),
3392
- isCompleted: false,
3393
- isRecurring: true,
3394
- recurrencePattern: "weekly",
3395
- recurrenceInterval: 1,
3396
- priority: "medium",
3397
- reminderEnabled: true,
3398
- reminderMinutes: 15,
3399
- createdAt: new Date(2024, 2, 11),
3400
- tags: ["meeting", "standup", "weekly"]
3401
- },
3402
- {
3403
- id: "3",
3404
- title: "Deploy to production",
3405
- description: "Deploy the latest version to production environment",
3406
- dueDate: /* @__PURE__ */ new Date(),
3407
- dueTime: "16:00",
3408
- colleague: mockColleagues.find((c) => c.id === "2" && c.type === "digital"),
3409
- isCompleted: false,
3410
- isRecurring: false,
3411
- priority: "high",
3412
- reminderEnabled: true,
3413
- reminderMinutes: 60,
3414
- createdAt: /* @__PURE__ */ new Date(),
3415
- tags: ["deploy", "production", "urgent"]
3416
- }
3417
- ];
3418
- var mockDigitalColleagues = mockColleagues.filter(
3419
- (colleague) => colleague.type === "digital"
3420
- );
3421
-
3422
- // src/hooks/use-local-storage.ts
3423
- var import_react = require("react");
3424
- function useLocalStorage(key, initialValue) {
3425
- const [storedValue, setStoredValue] = (0, import_react.useState)(() => {
3426
- if (typeof window === "undefined") return initialValue;
3427
- try {
3428
- const item = window.localStorage.getItem(key);
3429
- return item ? JSON.parse(item) : initialValue;
3430
- } catch (error) {
3431
- return initialValue;
3432
- }
3433
- });
3434
- const setValue = (value) => {
3435
- try {
3436
- setStoredValue(value);
3437
- if (typeof window !== "undefined") {
3438
- window.localStorage.setItem(key, JSON.stringify(value));
3439
- }
3440
- } catch (error) {
3441
- }
3442
- };
3443
- (0, import_react.useEffect)(() => {
3444
- setValue(storedValue);
3445
- }, []);
3446
- return [storedValue, setValue];
3447
- }
3448
-
3449
- // src/components/AdvancedComponents/AppSidebar.tsx
3450
- var import_jsx_runtime8 = require("react/jsx-runtime");
3451
- function AppSidebar({
3452
- items,
3453
- isOpen,
3454
- isMobile = false,
3455
- onClose,
3456
- currentBusinessUnit = businessUnits[0],
3457
- // Default to Design unit
3458
- onBusinessUnitChange,
3459
- onSearch,
3460
- className,
3461
- logo = "/headerlogo.png",
3462
- logoLink = "/teams",
3463
- appName = "Nuvia",
3464
- tagline = "Collaboration Platform"
3465
- }) {
3466
- const [expandedItems, setExpandedItems] = React6.useState({});
3467
- const [favorites, setFavorites] = useLocalStorage(
3468
- "sidebar-favorites",
3469
- {}
3470
- );
3471
- const [showFavoritesDialog, setShowFavoritesDialog] = React6.useState(null);
3472
- const [searchQuery, setSearchQuery] = React6.useState("");
3473
- const toggleExpanded = (title) => {
3474
- setExpandedItems((prev) => ({
3475
- ...prev,
3476
- [title]: !prev[title]
3477
- }));
3478
- };
3479
- const handleBusinessUnitChange = (unit) => {
3480
- onBusinessUnitChange?.(unit);
3481
- };
3482
- const handleSearchSubmit = () => {
3483
- if (searchQuery.trim()) {
3484
- onSearch?.(searchQuery.trim());
3485
- }
3486
- };
3487
- const handleSearchKeyPress = (e) => {
3488
- if (e.key === "Enter") {
3489
- e.preventDefault();
3490
- handleSearchSubmit();
3491
- }
3492
- };
3493
- const toggleFavorite = (parentItemId, subItemId) => {
3494
- const itemFavorites = favorites[parentItemId] || [];
3495
- const newItemFavorites = itemFavorites.includes(subItemId) ? itemFavorites.filter((id) => id !== subItemId) : itemFavorites.concat(subItemId);
3496
- setFavorites({
3497
- ...favorites,
3498
- [parentItemId]: newItemFavorites
3499
- });
3500
- };
3501
- const getDisplaySubItems = (item) => {
3502
- if (!item.items || !item.maxItems || item.items.length <= item.maxItems) {
3503
- return item.items || [];
3504
- }
3505
- const itemFavorites = favorites[item.id] || [];
3506
- const favoriteSubItems = item.items.filter((subItem) => itemFavorites.includes(subItem.id));
3507
- const nonFavoriteSubItems = item.items.filter((subItem) => !itemFavorites.includes(subItem.id));
3508
- return [...favoriteSubItems, ...nonFavoriteSubItems].slice(0, item.maxItems);
3509
- };
3510
- const needsFavorites = (item) => item.maxItems && item.items && item.items.length > item.maxItems;
3511
- const displayItems = items;
3512
- const renderSidebarItem = (item) => {
3513
- const hasLimitedSubItems = needsFavorites(item);
3514
- const displaySubItems = getDisplaySubItems(item);
3515
- const buttonContent = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
3516
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center gap-3", children: [
3517
- item.icon,
3518
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: item.title })
3519
- ] }),
3520
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Badge, { variant: "outline", className: "ml-auto rounded-full px-2 py-0.5 text-xs", children: item.badge }),
3521
- item.items && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3522
- import_lucide_react4.ChevronDown,
3523
- {
3524
- className: cn(
3525
- "ml-2 h-4 w-4 transition-transform",
3526
- expandedItems[item.title] ? "rotate-180" : ""
3527
- )
3528
- }
3529
- )
3530
- ] });
3531
- const buttonClasses = cn(
3532
- "flex w-full items-center justify-between rounded-2xl px-3 py-2 text-sm font-medium",
3533
- item.isActive ? "bg-primary/10 text-primary" : "hover:bg-muted"
3534
- );
3535
- if (item.url) {
3536
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_link.default, { href: item.url, className: buttonClasses, onClick: isMobile ? onClose : void 0, children: buttonContent });
3537
- }
3538
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { className: buttonClasses, onClick: () => item.items && toggleExpanded(item.title), children: buttonContent });
3539
- };
3540
- const FavoritesDialog = () => {
3541
- const currentItem = items.find((item) => item.id === showFavoritesDialog);
3542
- if (!currentItem || !currentItem.items || !currentItem.maxItems) return null;
3543
- const itemFavorites = favorites[currentItem.id] || [];
3544
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3545
- Dialog,
3546
- {
3547
- open: !!showFavoritesDialog,
3548
- onOpenChange: (open) => !open && setShowFavoritesDialog(null),
3549
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DialogContent, { className: "sm:max-w-md", children: [
3550
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DialogHeader, { children: [
3551
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DialogTitle, { children: [
3552
- "Manage ",
3553
- currentItem.title,
3554
- " Favorites"
3555
- ] }),
3556
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
3557
- "Select up to ",
3558
- currentItem.maxItems,
3559
- " items to show in ",
3560
- currentItem.title.toLowerCase(),
3561
- "."
3562
- ] })
3563
- ] }),
3564
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ScrollArea, { className: "max-h-96 pr-4", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "space-y-4", children: currentItem.items.map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center space-x-2", children: [
3565
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3566
- Checkbox,
3567
- {
3568
- id: subItem.id,
3569
- checked: itemFavorites.includes(subItem.id),
3570
- onCheckedChange: () => toggleFavorite(currentItem.id, subItem.id),
3571
- disabled: !itemFavorites.includes(subItem.id) && itemFavorites.length >= (currentItem.maxItems || 0)
3572
- }
3573
- ),
3574
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
3575
- "label",
3576
- {
3577
- htmlFor: subItem.id,
3578
- className: "flex items-center gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer flex-1",
3579
- children: [
3580
- subItem.title,
3581
- subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Badge, { variant: "outline", className: "text-xs", children: subItem.badge })
3582
- ]
3583
- }
3584
- )
3585
- ] }, subItem.id)) }) })
3586
- ] })
3587
- }
3588
- );
3589
- };
3590
- const sidebarContent = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex h-full flex-col bg-background", children: [
3591
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center justify-between p-4", children: [
3592
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_link.default, { href: logoLink, className: "flex items-center gap-3", children: [
3593
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex h-14 w-14 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("img", { src: logo, alt: "Header Logo", className: "h-14 w-14 object-contain" }) }),
3594
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
3595
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { className: "font-semibold", children: appName }),
3596
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "text-xs text-muted-foreground", children: tagline })
3597
- ] })
3598
- ] }),
3599
- isMobile && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.X, { className: "h-5 w-5" }) })
3600
- ] }),
3601
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "relative", children: [
3602
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.Search, { className: "absolute left-3 top-3 h-4 w-4 text-muted-foreground" }),
3603
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3604
- Input,
3605
- {
3606
- type: "search",
3607
- placeholder: "Search...",
3608
- className: "w-full rounded-2xl bg-muted pl-9 pr-4 py-2",
3609
- value: searchQuery,
3610
- onChange: (e) => setSearchQuery(e.target.value),
3611
- onKeyPress: handleSearchKeyPress
3612
- }
3613
- )
3614
- ] }) }),
3615
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ScrollArea, { className: "flex-1 px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "space-y-1", children: displayItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "mb-1", children: [
3616
- renderSidebarItem(item),
3617
- item.items && expandedItems[item.title] && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "mt-1 ml-6 space-y-1 border-l pl-3", children: [
3618
- getDisplaySubItems(item).map((subItem) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
3619
- import_link.default,
3620
- {
3621
- href: subItem.url,
3622
- className: "flex items-center justify-between rounded-2xl px-3 py-2 text-sm hover:bg-muted",
3623
- onClick: isMobile ? onClose : void 0,
3624
- children: [
3625
- subItem.title,
3626
- subItem.badge && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3627
- Badge,
3628
- {
3629
- variant: "outline",
3630
- className: "ml-auto rounded-full px-2 py-0.5 text-xs",
3631
- children: subItem.badge
3632
- }
3633
- )
3634
- ]
3635
- },
3636
- subItem.id
3637
- )),
3638
- needsFavorites(item) && item.items && item.items.length > getDisplaySubItems(item).length && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
3639
- "button",
3640
- {
3641
- onClick: () => setShowFavoritesDialog(item.id),
3642
- className: "w-full px-3 py-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted rounded-2xl transition-colors text-left",
3643
- children: [
3644
- "...",
3645
- item.items.length - getDisplaySubItems(item).length,
3646
- " more available"
3647
- ]
3648
- }
3649
- )
3650
- ] })
3651
- ] }, item.id)) }) }),
3652
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "p-3", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_link.default, { href: "/admin", className: "flex w-full items-center gap-3 rounded-2xl px-3 py-2 text-sm font-medium hover:bg-muted", children: [
3653
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.Settings, { className: "h-5 w-5" }),
3654
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: "Settings" })
3655
- ] }) }) }),
3656
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(FavoritesDialog, {})
3657
- ] });
3658
- if (isMobile) {
3659
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3660
- "div",
3661
- {
3662
- className: cn(
3663
- "fixed inset-y-0 left-0 z-50 w-64 transform bg-background transition-transform duration-300 ease-in-out",
3664
- isOpen ? "translate-x-0" : "-translate-x-full",
3665
- className
3666
- ),
3667
- children: sidebarContent
3668
- }
3669
- );
3670
- }
3671
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
3672
- "div",
3673
- {
3674
- className: cn(
3675
- "fixed inset-y-0 left-0 z-30 w-64 transform bg-background transition-transform duration-300 ease-in-out",
3676
- isOpen ? "translate-x-0" : "-translate-x-full",
3677
- className
3678
- ),
3679
- children: sidebarContent
3680
- }
3681
- );
3682
- }
3683
-
3684
- // src/components/AdvancedComponents/app-header.tsx
3685
- var import_react4 = require("react");
3686
- var import_react5 = require("motion/react");
3687
- var import_lucide_react8 = require("lucide-react");
3688
-
3689
- // src/components/ui/avatar.tsx
3690
- var React7 = __toESM(require("react"));
3691
- var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
3692
- var import_jsx_runtime9 = require("react/jsx-runtime");
3693
- var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3694
- AvatarPrimitive.Root,
3695
- {
3696
- ref,
3697
- className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className),
3698
- ...props
3699
- }
3700
- ));
3701
- Avatar.displayName = AvatarPrimitive.Root.displayName;
3702
- var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3703
- AvatarPrimitive.Image,
3704
- {
3705
- ref,
3706
- className: cn("aspect-square h-full w-full", className),
3707
- ...props
3708
- }
3709
- ));
3710
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
3711
- var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3712
- AvatarPrimitive.Fallback,
3713
- {
3714
- ref,
3715
- className: cn(
3716
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
3717
- className
3718
- ),
3719
- ...props
3720
- }
3721
- ));
3722
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
3723
-
3724
- // src/components/ui/tooltip.tsx
3725
- var React8 = __toESM(require("react"));
3726
- var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
3727
- var import_jsx_runtime10 = require("react/jsx-runtime");
3728
- var TooltipProvider = TooltipPrimitive.Provider;
3729
- var Tooltip = TooltipPrimitive.Root;
3730
- var TooltipTrigger = TooltipPrimitive.Trigger;
3731
- var TooltipContent = React8.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3732
- TooltipPrimitive.Content,
3733
- {
3734
- ref,
3735
- sideOffset,
3736
- className: cn(
3737
- "z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3738
- className
3739
- ),
3740
- ...props
3741
- }
3742
- ) }));
3743
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3744
-
3745
- // src/components/AdvancedComponents/theme-toggle.tsx
3746
- var import_lucide_react5 = require("lucide-react");
3747
- var import_next_themes = require("next-themes");
3748
- var import_jsx_runtime11 = require("react/jsx-runtime");
3749
- function ThemeToggle() {
3750
- const { setTheme, theme } = (0, import_next_themes.useTheme)();
3751
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Tooltip, { children: [
3752
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3753
- Button,
3754
- {
3755
- variant: "ghost",
3756
- size: "icon",
3757
- className: "rounded-2xl",
3758
- onClick: () => setTheme(theme === "light" ? "dark" : "light"),
3759
- children: [
3760
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Sun, { className: "h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
3761
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react5.Moon, { className: "absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
3762
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "Toggle theme" })
3763
- ]
3764
- }
3765
- ) }),
3766
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipContent, { children: "Toggle theme" })
3767
- ] }) });
3768
- }
3769
-
3770
- // src/components/AdvancedComponents/notifications-panel.tsx
3771
- var import_react2 = require("motion/react");
3772
- var import_lucide_react6 = require("lucide-react");
3773
- var import_jsx_runtime12 = require("react/jsx-runtime");
3774
- function NotificationsPanel({
3775
- notifications,
3776
- open,
3777
- onClose,
3778
- onNotificationRemove,
3779
- onRemoveAll,
3780
- className
3781
- }) {
3782
- const unreadNotifications = notifications.filter((notification) => !notification.read);
3783
- const unreadCount = unreadNotifications.length;
3784
- const getNotificationIcon = (type) => {
3785
- switch (type) {
3786
- case "info":
3787
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Info, { className: "h-5 w-5 text-blue-500" });
3788
- case "success":
3789
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Check, { className: "h-5 w-5 text-green-500" });
3790
- case "warning":
3791
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.AlertTriangle, { className: "h-5 w-5 text-amber-500" });
3792
- case "error":
3793
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.AlertTriangle, { className: "h-5 w-5 text-red-500" });
3794
- }
3795
- };
3796
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react2.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
3797
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3798
- import_react2.motion.div,
3799
- {
3800
- initial: { opacity: 0 },
3801
- animate: { opacity: 1 },
3802
- exit: { opacity: 0 },
3803
- className: "fixed inset-0 z-40 bg-black/20 backdrop-blur-sm md:hidden",
3804
- onClick: onClose
3805
- }
3806
- ),
3807
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3808
- import_react2.motion.div,
3809
- {
3810
- initial: { x: "100%" },
3811
- animate: { x: 0 },
3812
- exit: { x: "100%" },
3813
- transition: { type: "spring", damping: 20, stiffness: 300 },
3814
- className: cn(
3815
- "fixed inset-y-0 right-0 z-50 w-full max-w-sm border-l bg-background shadow-lg md:w-96",
3816
- className
3817
- ),
3818
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex h-full flex-col", children: [
3819
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between border-b p-4", children: [
3820
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-2", children: [
3821
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Bell, { className: "h-5 w-5" }),
3822
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { className: "text-lg font-semibold", children: "Notifications" }),
3823
- unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Badge, { variant: "secondary", className: "rounded-full px-2 py-0.5", children: [
3824
- unreadCount,
3825
- " new"
3826
- ] })
3827
- ] }),
3828
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Button, { variant: "ghost", size: "icon", onClick: onClose, className: "rounded-full", children: [
3829
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.X, { className: "h-5 w-5" }),
3830
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Close" })
3831
- ] })
3832
- ] }),
3833
- unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between border-b p-2", children: [
3834
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "text-sm text-muted-foreground", children: [
3835
- unreadCount,
3836
- " unread notification",
3837
- unreadCount !== 1 ? "s" : ""
3838
- ] }),
3839
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Button, { variant: "ghost", size: "sm", onClick: onRemoveAll, className: "text-sm", children: "Dismiss all" })
3840
- ] }),
3841
- unreadNotifications.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ScrollArea, { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "divide-y", children: unreadNotifications.map((notification) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3842
- "div",
3843
- {
3844
- className: cn("flex gap-3 p-4 transition-colors bg-muted/50"),
3845
- children: [
3846
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full bg-muted", children: getNotificationIcon(notification.type) }),
3847
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex-1 space-y-1", children: [
3848
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between", children: [
3849
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "font-medium", children: notification.title }),
3850
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-2", children: [
3851
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-xs text-muted-foreground", children: notification.time }),
3852
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3853
- Button,
3854
- {
3855
- variant: "ghost",
3856
- size: "sm",
3857
- className: "h-6 w-6 p-0",
3858
- onClick: () => onNotificationRemove?.(notification.id),
3859
- title: "Dismiss",
3860
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Check, { className: "h-3 w-3" })
3861
- }
3862
- )
3863
- ] })
3864
- ] }),
3865
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-sm text-muted-foreground", children: notification.description }),
3866
- notification.actionLabel && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3867
- Button,
3868
- {
3869
- variant: "link",
3870
- size: "sm",
3871
- className: "h-auto p-0 text-sm",
3872
- onClick: notification.onAction,
3873
- children: [
3874
- notification.actionLabel,
3875
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.ChevronRight, { className: "ml-1 h-3 w-3" })
3876
- ]
3877
- }
3878
- )
3879
- ] })
3880
- ]
3881
- },
3882
- notification.id
3883
- )) }) }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-1 flex-col items-center justify-center p-8 text-center", children: [
3884
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react6.Bell, { className: "h-8 w-8 text-muted-foreground" }) }),
3885
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "mt-4 text-lg font-medium", children: "No notifications" }),
3886
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-2 text-sm text-muted-foreground", children: "When you receive notifications, they'll appear here." })
3887
- ] })
3888
- ] })
3889
- }
3890
- )
3891
- ] }) });
3892
- }
3893
-
3894
- // src/components/AdvancedComponents/navigation-tabs.tsx
3895
- var import_react3 = require("motion/react");
3896
- var import_lucide_react7 = require("lucide-react");
3897
-
3898
- // src/components/ui/tabs.tsx
3899
- var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"));
3900
- var import_jsx_runtime13 = require("react/jsx-runtime");
3901
- function Tabs({
3902
- className,
3903
- ...props
3904
- }) {
3905
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3906
- TabsPrimitive.Root,
3907
- {
3908
- "data-slot": "tabs",
3909
- className: cn("flex flex-col gap-2", className),
3910
- ...props
3911
- }
3912
- );
3913
- }
3914
- function TabsList({
3915
- className,
3916
- ...props
3917
- }) {
3918
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3919
- TabsPrimitive.List,
3920
- {
3921
- "data-slot": "tabs-list",
3922
- className: cn(
3923
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
3924
- className
3925
- ),
3926
- ...props
3927
- }
3928
- );
3929
- }
3930
- function TabsTrigger({
3931
- className,
3932
- ...props
3933
- }) {
3934
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3935
- TabsPrimitive.Trigger,
3936
- {
3937
- "data-slot": "tabs-trigger",
3938
- className: cn(
3939
- "data-[state=active]:bg-accent data-[state=active]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3940
- className
3941
- ),
3942
- ...props
3943
- }
3944
- );
3945
- }
3946
-
3947
- // src/components/ui/dropdown-menu.tsx
3948
- var React9 = __toESM(require("react"));
3949
- var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
3950
- var import_react_icons = require("@radix-ui/react-icons");
3951
- var import_jsx_runtime14 = require("react/jsx-runtime");
3952
- var DropdownMenu = DropdownMenuPrimitive.Root;
3953
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
3954
- var DropdownMenuSubTrigger = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3955
- DropdownMenuPrimitive.SubTrigger,
3956
- {
3957
- ref,
3958
- className: cn(
3959
- "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3960
- inset && "pl-8",
3961
- className
3962
- ),
3963
- ...props,
3964
- children: [
3965
- children,
3966
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_icons.ChevronRightIcon, { className: "ml-auto" })
3967
- ]
3968
- }
3969
- ));
3970
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3971
- var DropdownMenuSubContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3972
- DropdownMenuPrimitive.SubContent,
3973
- {
3974
- ref,
3975
- className: cn(
3976
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3977
- className
3978
- ),
3979
- ...props
3980
- }
3981
- ));
3982
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3983
- var DropdownMenuContent = React9.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3984
- DropdownMenuPrimitive.Content,
3985
- {
3986
- ref,
3987
- sideOffset,
3988
- className: cn(
3989
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
3990
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3991
- className
3992
- ),
3993
- ...props
3994
- }
3995
- ) }));
3996
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3997
- var DropdownMenuItem = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3998
- DropdownMenuPrimitive.Item,
3999
- {
4000
- ref,
4001
- className: cn(
4002
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
4003
- inset && "pl-8",
4004
- className
4005
- ),
4006
- ...props
4007
- }
4008
- ));
4009
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
4010
- var DropdownMenuCheckboxItem = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
4011
- DropdownMenuPrimitive.CheckboxItem,
4012
- {
4013
- ref,
4014
- className: cn(
4015
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4016
- className
4017
- ),
4018
- checked,
4019
- ...props,
4020
- children: [
4021
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_icons.CheckIcon, { className: "h-4 w-4" }) }) }),
4022
- children
4023
- ]
4024
- }
4025
- ));
4026
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
4027
- var DropdownMenuRadioItem = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
4028
- DropdownMenuPrimitive.RadioItem,
4029
- {
4030
- ref,
4031
- className: cn(
4032
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4033
- className
4034
- ),
4035
- ...props,
4036
- children: [
4037
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_icons.DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
4038
- children
4039
- ]
4040
- }
4041
- ));
4042
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
4043
- var DropdownMenuLabel = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4044
- DropdownMenuPrimitive.Label,
4045
- {
4046
- ref,
4047
- className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
4048
- ...props
4049
- }
4050
- ));
4051
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
4052
- var DropdownMenuSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4053
- DropdownMenuPrimitive.Separator,
4054
- {
4055
- ref,
4056
- className: cn("-mx-1 my-1 h-px bg-muted", className),
4057
- ...props
4058
- }
4059
- ));
4060
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
4061
- var DropdownMenuShortcut = ({ className, ...props }) => {
4062
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
4063
- };
4064
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
4065
-
4066
- // src/components/AdvancedComponents/navigation-tabs.tsx
4067
- var import_jsx_runtime15 = require("react/jsx-runtime");
4068
- function NavigationTabs({
4069
- activeTab,
4070
- onTabChange,
4071
- tabOptions,
4072
- className = "",
4073
- maxWidth = "700px",
4074
- gridCols = 6
4075
- }) {
4076
- const currentTab = tabOptions.find((tab) => tab.value === activeTab);
4077
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
4078
- import_react3.motion.div,
4079
- {
4080
- className: `flex-1 flex justify-center ${className}`,
4081
- initial: { opacity: 0, y: -20 },
4082
- animate: { opacity: 1, y: 0 },
4083
- transition: { duration: 0.3, ease: "easeOut" },
4084
- children: [
4085
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "hidden lg:block", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Tabs, { value: activeTab, onValueChange: onTabChange, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4086
- TabsList,
4087
- {
4088
- className: "grid w-full rounded-2xl p-0 h-10",
4089
- style: {
4090
- maxWidth,
4091
- gridTemplateColumns: `repeat(${Math.min(
4092
- gridCols,
4093
- tabOptions.length
4094
- )}, minmax(0, 1fr))`
4095
- },
4096
- children: tabOptions.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4097
- import_react3.motion.div,
4098
- {
4099
- whileHover: { scale: 1.1 },
4100
- whileTap: { scale: 0.98 },
4101
- transition: { type: "spring", stiffness: 400, damping: 17 },
4102
- className: "flex-1 px-2",
4103
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4104
- TabsTrigger,
4105
- {
4106
- value: tab.value,
4107
- onClick: () => onTabChange?.(tab.value),
4108
- className: "w-full h-8 rounded-xl data-[state=active]:rounded-xl transition-all duration-200 hover:border hover:border-accent hover:bg-accent/10 px-4 py-2 text-sm font-medium",
4109
- children: tab.label
4110
- }
4111
- )
4112
- },
4113
- tab.value
4114
- ))
4115
- }
4116
- ) }) }),
4117
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "lg:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(DropdownMenu, { children: [
4118
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Button, { variant: "outline", className: "rounded-2xl min-w-[140px] justify-between", children: [
4119
- currentTab?.label || "Select",
4120
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react7.ChevronDown, { className: "h-4 w-4 ml-2" })
4121
- ] }) }),
4122
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DropdownMenuContent, { align: "center", className: "w-[180px]", children: tabOptions.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4123
- DropdownMenuItem,
4124
- {
4125
- onClick: () => onTabChange?.(tab.value),
4126
- className: `cursor-pointer ${activeTab === tab.value ? "bg-accent" : ""}`,
4127
- children: tab.label
4128
- },
4129
- tab.value
4130
- )) })
4131
- ] }) })
4132
- ]
4133
- }
4134
- );
4135
- }
4136
-
4137
- // src/components/AdvancedComponents/app-header.tsx
4138
- var import_jsx_runtime16 = require("react/jsx-runtime");
4139
- function AppHeader({
4140
- title,
4141
- notifications = [],
4142
- onToggleSidebar,
4143
- onToggleMobileMenu,
4144
- sidebarOpen = true,
4145
- className,
4146
- activeTab = "assistant",
4147
- onTabChange,
4148
- showTabs = true,
4149
- tabOptions = [
4150
- { value: "home", label: "Home" },
4151
- { value: "chat", label: "Chat" },
4152
- { value: "projects", label: "Projects" },
4153
- { value: "colleagues", label: "Colleagues" },
4154
- { value: "knowledge", label: "Knowledge" }
4155
- // { value: "files", label: "Files" },
4156
- ],
4157
- onActionClick,
4158
- actionIcon = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.Bot, { className: "mr-2 h-4 w-4" }),
4159
- actionText = "Action",
4160
- onNotificationRemove,
4161
- onRemoveAll,
4162
- logo = "/headerlogo.png",
4163
- appName = "Nuvia",
4164
- tagline = "Collaboration Platform"
4165
- }) {
4166
- const [notificationsPanelOpen, setNotificationsPanelOpen] = (0, import_react4.useState)(false);
4167
- const [notificationsData, setNotificationsData] = (0, import_react4.useState)(notifications);
4168
- const unreadCount = notificationsData.filter((notification) => !notification.read).length;
4169
- const handleNotificationRemove = (id) => {
4170
- setNotificationsData((prev) => prev.filter((notification) => notification.id !== id));
4171
- onNotificationRemove?.(id);
4172
- };
4173
- const handleRemoveAll = () => {
4174
- setNotificationsData((prev) => prev.filter((notification) => notification.read));
4175
- onRemoveAll?.();
4176
- };
4177
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
4178
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
4179
- "header",
4180
- {
4181
- className: `sticky top-0 z-10 flex h-16 items-center gap-3 pl-2 pr-4 backdrop-blur ${className || ""}`,
4182
- children: [
4183
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "ghost", size: "icon", className: "md:hidden", onClick: onToggleMobileMenu, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.Menu, { className: "h-5 w-5" }) }),
4184
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "ghost", size: "icon", className: "hidden md:flex", onClick: onToggleSidebar, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.PanelLeft, { className: "h-5 w-5" }) }),
4185
- !sidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
4186
- import_react5.motion.div,
4187
- {
4188
- className: "flex items-center gap-3",
4189
- initial: { opacity: 0, x: -20 },
4190
- animate: { opacity: 1, x: 0 },
4191
- transition: { duration: 0.3 },
4192
- children: [
4193
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex h-10 w-10 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("img", { src: logo, alt: "Logo", className: "h-10 w-10 object-contain" }) }),
4194
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { children: [
4195
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { className: "font-semibold text-sm", children: appName }),
4196
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground", children: tagline })
4197
- ] })
4198
- ]
4199
- }
4200
- ),
4201
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-1 items-center", children: [
4202
- showTabs && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4203
- NavigationTabs,
4204
- {
4205
- activeTab,
4206
- onTabChange,
4207
- tabOptions
4208
- }
4209
- ),
4210
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center gap-3 ml-auto", children: [
4211
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4212
- import_react5.motion.div,
4213
- {
4214
- className: "hidden md:flex gap-2",
4215
- initial: { opacity: 0, x: 20 },
4216
- animate: { opacity: 1, x: 0 },
4217
- transition: { duration: 0.3, ease: "easeOut", delay: 0.1 },
4218
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4219
- import_react5.motion.div,
4220
- {
4221
- whileHover: { scale: 1.05 },
4222
- whileTap: { scale: 0.95 },
4223
- transition: { type: "spring", stiffness: 400, damping: 17 },
4224
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
4225
- Button,
4226
- {
4227
- className: "rounded-2xl transition-all duration-200 hover:shadow-md",
4228
- onClick: onActionClick,
4229
- children: [
4230
- actionIcon,
4231
- actionText
4232
- ]
4233
- }
4234
- )
4235
- }
4236
- )
4237
- }
4238
- ),
4239
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ThemeToggle, {}),
4240
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Tooltip, { children: [
4241
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4242
- import_react5.motion.div,
4243
- {
4244
- whileHover: { scale: 1.05 },
4245
- whileTap: { scale: 0.95 },
4246
- transition: { type: "spring", stiffness: 400, damping: 17 },
4247
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
4248
- Button,
4249
- {
4250
- variant: "ghost",
4251
- size: "icon",
4252
- className: "rounded-2xl relative transition-all duration-200",
4253
- onClick: () => setNotificationsPanelOpen(true),
4254
- children: [
4255
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4256
- import_react5.motion.div,
4257
- {
4258
- animate: unreadCount > 0 ? { rotate: [0, -10, 10, -10, 0] } : {},
4259
- transition: {
4260
- duration: 0.5,
4261
- repeat: unreadCount > 0 ? Infinity : 0,
4262
- repeatDelay: 3
4263
- },
4264
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.Bell, { className: "h-5 w-5" })
4265
- }
4266
- ),
4267
- unreadCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4268
- import_react5.motion.span,
4269
- {
4270
- className: "absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-red-500 text-xs text-white",
4271
- initial: { scale: 0 },
4272
- animate: { scale: 1 },
4273
- transition: { type: "spring", stiffness: 500, damping: 15 },
4274
- children: unreadCount
4275
- }
4276
- )
4277
- ]
4278
- }
4279
- )
4280
- }
4281
- ) }),
4282
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TooltipContent, { children: "Notifications" })
4283
- ] }) }),
4284
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4285
- import_react5.motion.div,
4286
- {
4287
- whileHover: { scale: 1.05 },
4288
- whileTap: { scale: 0.95 },
4289
- transition: { type: "spring", stiffness: 400, damping: 17 },
4290
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Avatar, { className: "h-9 w-9 border-2 border-primary transition-all duration-200 hover:shadow-md cursor-pointer", children: [
4291
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AvatarImage, { src: "/placeholder.svg?height=40&width=40", alt: "User" }),
4292
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AvatarFallback, {})
4293
- ] })
4294
- }
4295
- )
4296
- ] })
4297
- ] })
4298
- ]
4299
- }
4300
- ),
4301
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
4302
- NotificationsPanel,
4303
- {
4304
- notifications: notificationsData,
4305
- open: notificationsPanelOpen,
4306
- onClose: () => setNotificationsPanelOpen(false),
4307
- onNotificationRemove: handleNotificationRemove,
4308
- onRemoveAll: handleRemoveAll
4309
- }
4310
- )
4311
- ] });
4312
- }
4313
-
4314
- // src/components/DigitalColleagues/DigitalColleageusLayout.tsx
4315
- var import_lucide_react9 = require("lucide-react");
4316
- var import_jsx_runtime17 = require("react/jsx-runtime");
4317
- var businessUnits2 = [
4318
- {
4319
- id: "copilot",
4320
- name: "Peronal Copilot",
4321
- description: "Your personal AI assistant for all tasks",
4322
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react9.User, { className: "h-4 w-4" }),
4323
- color: "bg-orange-600",
4324
- accentColor: "text-orange-600"
4325
- }
4326
- ];
4327
- function DigitalColleageusLayout({
4328
- sidebarItems,
4329
- children,
4330
- title = "Digital Colleagues",
4331
- notifications = [],
4332
- currentBusinessUnit = businessUnits2[0],
4333
- // Default to Design unit
4334
- onBusinessUnitChange,
4335
- onSearch,
4336
- businessUnits: businessUnitsProp = businessUnits2,
4337
- activeTab,
4338
- onTabChange,
4339
- showTabs = false,
4340
- onActionClick,
4341
- actionIcon,
4342
- actionText = "Action",
4343
- onNotificationRemove,
4344
- onRemoveAll,
4345
- logo = "/headerlogo.png",
4346
- appName = "Nuvia",
4347
- tagline = "Collaboration Platform",
4348
- sidebarInitiallyClosed = false
4349
- }) {
4350
- const [sidebarOpen, setSidebarOpen] = (0, import_react6.useState)(!sidebarInitiallyClosed);
4351
- const [mobileMenuOpen, setMobileMenuOpen] = (0, import_react6.useState)(false);
4352
- const [localBusinessUnit, setLocalBusinessUnit] = (0, import_react6.useState)(currentBusinessUnit);
4353
- const handleBusinessUnitChange = (unit) => {
4354
- setLocalBusinessUnit(unit);
4355
- onBusinessUnitChange?.(unit);
4356
- };
4357
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex h-full flex-col overflow-hidden rounded-xl bg-background w-[]", children: [
4358
- mobileMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "fixed inset-0 z-40 bg-black/50 md:hidden", onClick: () => setMobileMenuOpen(false) }),
4359
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
4360
- AppSidebar,
4361
- {
4362
- items: sidebarItems,
4363
- isOpen: mobileMenuOpen,
4364
- isMobile: true,
4365
- onClose: () => setMobileMenuOpen(false),
4366
- currentBusinessUnit: localBusinessUnit,
4367
- onBusinessUnitChange: handleBusinessUnitChange,
4368
- onSearch,
4369
- logo,
4370
- appName,
4371
- tagline
4372
- }
4373
- ) }),
4374
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
4375
- AppSidebar,
4376
- {
4377
- items: sidebarItems,
4378
- isOpen: sidebarOpen,
4379
- isMobile: false,
4380
- currentBusinessUnit: localBusinessUnit,
4381
- onBusinessUnitChange: handleBusinessUnitChange,
4382
- onSearch,
4383
- logo,
4384
- appName,
4385
- tagline
4386
- }
4387
- ) }),
4388
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("min-h-screen fixed w-full transition-all duration-300 ease-in-out", sidebarOpen ? "md:pl-64" : "md:pl-0"), children: [
4389
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
4390
- AppHeader,
4391
- {
4392
- title,
4393
- notifications,
4394
- onToggleSidebar: () => setSidebarOpen(!sidebarOpen),
4395
- onToggleMobileMenu: () => setMobileMenuOpen(true),
4396
- sidebarOpen,
4397
- activeTab,
4398
- onTabChange,
4399
- showTabs,
4400
- onActionClick,
4401
- actionIcon,
4402
- actionText,
4403
- onNotificationRemove,
4404
- onRemoveAll,
4405
- logo,
4406
- appName,
4407
- tagline
4408
- }
4409
- ),
4410
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("main", { className: "flex-1 p-0 flex flex-col h-[calc(100vh-4rem)] overflow-hidden", children })
4411
- ] })
4412
- ] });
4413
- }
4414
- // Annotate the CommonJS export names for ESM import in node:
4415
- 0 && (module.exports = {
4416
- DigitalColleageusLayout
4417
- });