@kismet-ux/constellation 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/dist/brand/Logo/index.d.ts +2 -0
  4. package/dist/brand/Logo/index.d.ts.map +1 -0
  5. package/dist/brand/Logo/logo.d.ts +23 -0
  6. package/dist/brand/Logo/logo.d.ts.map +1 -0
  7. package/dist/brand/Logo/logo.js +28 -0
  8. package/dist/brand/Logo/logo.js.map +1 -0
  9. package/dist/brand/Logo/logo.module.scss.js +4 -0
  10. package/dist/brand/Logo/logo.module.scss.js.map +1 -0
  11. package/dist/brand/index.d.ts +2 -0
  12. package/dist/brand/index.d.ts.map +1 -0
  13. package/dist/brand.d.ts +25 -0
  14. package/dist/brand.js +2 -0
  15. package/dist/brand.js.map +1 -0
  16. package/dist/form/Checkbox/checkbox.d.ts +20 -0
  17. package/dist/form/Checkbox/checkbox.d.ts.map +1 -0
  18. package/dist/form/Checkbox/checkbox.js +57 -0
  19. package/dist/form/Checkbox/checkbox.js.map +1 -0
  20. package/dist/form/Checkbox/checkbox.module.scss.js +4 -0
  21. package/dist/form/Checkbox/checkbox.module.scss.js.map +1 -0
  22. package/dist/form/Checkbox/index.d.ts +2 -0
  23. package/dist/form/Checkbox/index.d.ts.map +1 -0
  24. package/dist/form/DatePicker/date-picker.d.ts +5 -0
  25. package/dist/form/DatePicker/date-picker.d.ts.map +1 -0
  26. package/dist/form/DatePicker/date-picker.js +251 -0
  27. package/dist/form/DatePicker/date-picker.js.map +1 -0
  28. package/dist/form/DatePicker/date-picker.module.scss.js +4 -0
  29. package/dist/form/DatePicker/date-picker.module.scss.js.map +1 -0
  30. package/dist/form/DatePicker/index.d.ts +2 -0
  31. package/dist/form/DatePicker/index.d.ts.map +1 -0
  32. package/dist/form/DatePicker/use-calendar.d.ts +40 -0
  33. package/dist/form/DatePicker/use-calendar.d.ts.map +1 -0
  34. package/dist/form/DatePicker/use-calendar.js +202 -0
  35. package/dist/form/DatePicker/use-calendar.js.map +1 -0
  36. package/dist/form/Input/index.d.ts +2 -0
  37. package/dist/form/Input/index.d.ts.map +1 -0
  38. package/dist/form/Input/input.d.ts +23 -0
  39. package/dist/form/Input/input.d.ts.map +1 -0
  40. package/dist/form/Input/input.js +24 -0
  41. package/dist/form/Input/input.js.map +1 -0
  42. package/dist/form/Input/input.module.scss.js +4 -0
  43. package/dist/form/Input/input.module.scss.js.map +1 -0
  44. package/dist/form/Label/index.d.ts +2 -0
  45. package/dist/form/Label/index.d.ts.map +1 -0
  46. package/dist/form/Label/label-variants.d.ts +5 -0
  47. package/dist/form/Label/label-variants.d.ts.map +1 -0
  48. package/dist/form/Label/label-variants.js +29 -0
  49. package/dist/form/Label/label-variants.js.map +1 -0
  50. package/dist/form/Label/label.d.ts +10 -0
  51. package/dist/form/Label/label.d.ts.map +1 -0
  52. package/dist/form/Label/label.js +13 -0
  53. package/dist/form/Label/label.js.map +1 -0
  54. package/dist/form/Label/label.module.scss.js +4 -0
  55. package/dist/form/Label/label.module.scss.js.map +1 -0
  56. package/dist/form/Select/index.d.ts +2 -0
  57. package/dist/form/Select/index.d.ts.map +1 -0
  58. package/dist/form/Select/select.d.ts +16 -0
  59. package/dist/form/Select/select.d.ts.map +1 -0
  60. package/dist/form/Select/select.js +857 -0
  61. package/dist/form/Select/select.js.map +1 -0
  62. package/dist/form/Select/select.module.scss.js +4 -0
  63. package/dist/form/Select/select.module.scss.js.map +1 -0
  64. package/dist/form/index.d.ts +6 -0
  65. package/dist/form/index.d.ts.map +1 -0
  66. package/dist/form.d.ts +5 -0
  67. package/dist/form.js +6 -0
  68. package/dist/form.js.map +1 -0
  69. package/dist/hooks/index.d.ts +6 -0
  70. package/dist/hooks/index.d.ts.map +1 -0
  71. package/dist/hooks/layout/index.d.ts +2 -0
  72. package/dist/hooks/layout/index.d.ts.map +1 -0
  73. package/dist/hooks/layout/use-sidebar.d.ts +3 -0
  74. package/dist/hooks/layout/use-sidebar.d.ts.map +1 -0
  75. package/dist/hooks/layout/use-sidebar.js +13 -0
  76. package/dist/hooks/layout/use-sidebar.js.map +1 -0
  77. package/dist/hooks/ui/index.d.ts +3 -0
  78. package/dist/hooks/ui/index.d.ts.map +1 -0
  79. package/dist/hooks/ui/use-alerts.d.ts +3 -0
  80. package/dist/hooks/ui/use-alerts.d.ts.map +1 -0
  81. package/dist/hooks/ui/use-alerts.js +13 -0
  82. package/dist/hooks/ui/use-alerts.js.map +1 -0
  83. package/dist/hooks/ui/use-table-sorting.d.ts +6 -0
  84. package/dist/hooks/ui/use-table-sorting.d.ts.map +1 -0
  85. package/dist/hooks/ui/use-table-sorting.js +37 -0
  86. package/dist/hooks/ui/use-table-sorting.js.map +1 -0
  87. package/dist/hooks/use-appearance.d.ts +10 -0
  88. package/dist/hooks/use-appearance.d.ts.map +1 -0
  89. package/dist/hooks/use-appearance.js +123 -0
  90. package/dist/hooks/use-appearance.js.map +1 -0
  91. package/dist/hooks/use-initials.d.ts +2 -0
  92. package/dist/hooks/use-initials.d.ts.map +1 -0
  93. package/dist/hooks/use-initials.js +17 -0
  94. package/dist/hooks/use-initials.js.map +1 -0
  95. package/dist/hooks/use-mobile-navigation.d.ts +2 -0
  96. package/dist/hooks/use-mobile-navigation.d.ts.map +1 -0
  97. package/dist/hooks/use-mobile-navigation.js +11 -0
  98. package/dist/hooks/use-mobile-navigation.js.map +1 -0
  99. package/dist/hooks/use-mobile.d.ts +6 -0
  100. package/dist/hooks/use-mobile.d.ts.map +1 -0
  101. package/dist/hooks/use-mobile.js +73 -0
  102. package/dist/hooks/use-mobile.js.map +1 -0
  103. package/dist/index-Bzf20Rpc.d.ts +120 -0
  104. package/dist/index-DECPicJT.d.ts +450 -0
  105. package/dist/index-qbk6vH0X.d.ts +186 -0
  106. package/dist/index.css +7611 -0
  107. package/dist/index.css.map +1 -0
  108. package/dist/index.d.ts +55 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +63 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/input-CWHXOpeH.d.ts +25 -0
  113. package/dist/internal/create-ripple.d.ts +8 -0
  114. package/dist/internal/create-ripple.d.ts.map +1 -0
  115. package/dist/internal/create-ripple.js +24 -0
  116. package/dist/internal/create-ripple.js.map +1 -0
  117. package/dist/internal/merge-refs.d.ts +3 -0
  118. package/dist/internal/merge-refs.d.ts.map +1 -0
  119. package/dist/internal/merge-refs.js +15 -0
  120. package/dist/internal/merge-refs.js.map +1 -0
  121. package/dist/internal/slot.d.ts +7 -0
  122. package/dist/internal/slot.d.ts.map +1 -0
  123. package/dist/internal/slot.js +42 -0
  124. package/dist/internal/slot.js.map +1 -0
  125. package/dist/internal/use-animation-state.d.ts +12 -0
  126. package/dist/internal/use-animation-state.d.ts.map +1 -0
  127. package/dist/internal/use-animation-state.js +36 -0
  128. package/dist/internal/use-animation-state.js.map +1 -0
  129. package/dist/internal/use-focus-trap.d.ts +3 -0
  130. package/dist/internal/use-focus-trap.d.ts.map +1 -0
  131. package/dist/internal/use-focus-trap.js +55 -0
  132. package/dist/internal/use-focus-trap.js.map +1 -0
  133. package/dist/internal/use-scroll-lock.d.ts +2 -0
  134. package/dist/internal/use-scroll-lock.d.ts.map +1 -0
  135. package/dist/internal/use-scroll-lock.js +22 -0
  136. package/dist/internal/use-scroll-lock.js.map +1 -0
  137. package/dist/internal/with-aria-hidden-children.d.ts +16 -0
  138. package/dist/internal/with-aria-hidden-children.d.ts.map +1 -0
  139. package/dist/internal/with-aria-hidden-children.js +29 -0
  140. package/dist/internal/with-aria-hidden-children.js.map +1 -0
  141. package/dist/layout/AppContent/app-content.d.ts +3 -0
  142. package/dist/layout/AppContent/app-content.d.ts.map +1 -0
  143. package/dist/layout/AppContent/app-content.js +11 -0
  144. package/dist/layout/AppContent/app-content.js.map +1 -0
  145. package/dist/layout/AppContent/app-content.module.scss.js +4 -0
  146. package/dist/layout/AppContent/app-content.module.scss.js.map +1 -0
  147. package/dist/layout/AppContent/index.d.ts +2 -0
  148. package/dist/layout/AppContent/index.d.ts.map +1 -0
  149. package/dist/layout/AppFooter/app-footer.d.ts +10 -0
  150. package/dist/layout/AppFooter/app-footer.d.ts.map +1 -0
  151. package/dist/layout/AppFooter/app-footer.js +19 -0
  152. package/dist/layout/AppFooter/app-footer.js.map +1 -0
  153. package/dist/layout/AppFooter/app-footer.module.scss.js +4 -0
  154. package/dist/layout/AppFooter/app-footer.module.scss.js.map +1 -0
  155. package/dist/layout/AppFooter/index.d.ts +2 -0
  156. package/dist/layout/AppFooter/index.d.ts.map +1 -0
  157. package/dist/layout/AppShell/app-shell.d.ts +11 -0
  158. package/dist/layout/AppShell/app-shell.d.ts.map +1 -0
  159. package/dist/layout/AppShell/app-shell.js +9 -0
  160. package/dist/layout/AppShell/app-shell.js.map +1 -0
  161. package/dist/layout/AppShell/index.d.ts +2 -0
  162. package/dist/layout/AppShell/index.d.ts.map +1 -0
  163. package/dist/layout/AppSidebar/app-sidebar.d.ts +14 -0
  164. package/dist/layout/AppSidebar/app-sidebar.d.ts.map +1 -0
  165. package/dist/layout/AppSidebar/app-sidebar.js +71 -0
  166. package/dist/layout/AppSidebar/app-sidebar.js.map +1 -0
  167. package/dist/layout/AppSidebar/index.d.ts +2 -0
  168. package/dist/layout/AppSidebar/index.d.ts.map +1 -0
  169. package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts +13 -0
  170. package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts.map +1 -0
  171. package/dist/layout/AppSidebarHeader/app-sidebar-header.js +20 -0
  172. package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -0
  173. package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js +4 -0
  174. package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js.map +1 -0
  175. package/dist/layout/AppSidebarHeader/index.d.ts +2 -0
  176. package/dist/layout/AppSidebarHeader/index.d.ts.map +1 -0
  177. package/dist/layout/Collapse/collapse.d.ts +8 -0
  178. package/dist/layout/Collapse/collapse.d.ts.map +1 -0
  179. package/dist/layout/Collapse/collapse.js +14 -0
  180. package/dist/layout/Collapse/collapse.js.map +1 -0
  181. package/dist/layout/Collapse/collapse.module.scss.js +4 -0
  182. package/dist/layout/Collapse/collapse.module.scss.js.map +1 -0
  183. package/dist/layout/Collapse/index.d.ts +2 -0
  184. package/dist/layout/Collapse/index.d.ts.map +1 -0
  185. package/dist/layout/Column/column.d.ts +4 -0
  186. package/dist/layout/Column/column.d.ts.map +1 -0
  187. package/dist/layout/Column/column.js +14 -0
  188. package/dist/layout/Column/column.js.map +1 -0
  189. package/dist/layout/Column/column.module.scss.js +4 -0
  190. package/dist/layout/Column/column.module.scss.js.map +1 -0
  191. package/dist/layout/Column/index.d.ts +3 -0
  192. package/dist/layout/Column/index.d.ts.map +1 -0
  193. package/dist/layout/Container/container.d.ts +4 -0
  194. package/dist/layout/Container/container.d.ts.map +1 -0
  195. package/dist/layout/Container/container.js +35 -0
  196. package/dist/layout/Container/container.js.map +1 -0
  197. package/dist/layout/Container/container.module.scss.js +4 -0
  198. package/dist/layout/Container/container.module.scss.js.map +1 -0
  199. package/dist/layout/Container/index.d.ts +2 -0
  200. package/dist/layout/Container/index.d.ts.map +1 -0
  201. package/dist/layout/Grid/grid.d.ts +5 -0
  202. package/dist/layout/Grid/grid.d.ts.map +1 -0
  203. package/dist/layout/Grid/grid.js +15 -0
  204. package/dist/layout/Grid/grid.js.map +1 -0
  205. package/dist/layout/Grid/grid.module.scss.js +4 -0
  206. package/dist/layout/Grid/grid.module.scss.js.map +1 -0
  207. package/dist/layout/Grid/index.d.ts +2 -0
  208. package/dist/layout/Grid/index.d.ts.map +1 -0
  209. package/dist/layout/Row/index.d.ts +3 -0
  210. package/dist/layout/Row/index.d.ts.map +1 -0
  211. package/dist/layout/Row/row.d.ts +4 -0
  212. package/dist/layout/Row/row.d.ts.map +1 -0
  213. package/dist/layout/Row/row.js +19 -0
  214. package/dist/layout/Row/row.js.map +1 -0
  215. package/dist/layout/Row/row.module.scss.js +4 -0
  216. package/dist/layout/Row/row.module.scss.js.map +1 -0
  217. package/dist/layout/Sidebar/index.d.ts +2 -0
  218. package/dist/layout/Sidebar/index.d.ts.map +1 -0
  219. package/dist/layout/Sidebar/sidebar-context.d.ts +4 -0
  220. package/dist/layout/Sidebar/sidebar-context.d.ts.map +1 -0
  221. package/dist/layout/Sidebar/sidebar-context.js +6 -0
  222. package/dist/layout/Sidebar/sidebar-context.js.map +1 -0
  223. package/dist/layout/Sidebar/sidebar-variants.d.ts +5 -0
  224. package/dist/layout/Sidebar/sidebar-variants.d.ts.map +1 -0
  225. package/dist/layout/Sidebar/sidebar-variants.js +23 -0
  226. package/dist/layout/Sidebar/sidebar-variants.js.map +1 -0
  227. package/dist/layout/Sidebar/sidebar.d.ts +57 -0
  228. package/dist/layout/Sidebar/sidebar.d.ts.map +1 -0
  229. package/dist/layout/Sidebar/sidebar.js +200 -0
  230. package/dist/layout/Sidebar/sidebar.js.map +1 -0
  231. package/dist/layout/Sidebar/sidebar.module.scss.js +4 -0
  232. package/dist/layout/Sidebar/sidebar.module.scss.js.map +1 -0
  233. package/dist/layout/Skeleton/index.d.ts +2 -0
  234. package/dist/layout/Skeleton/index.d.ts.map +1 -0
  235. package/dist/layout/Skeleton/skeleton.d.ts +3 -0
  236. package/dist/layout/Skeleton/skeleton.d.ts.map +1 -0
  237. package/dist/layout/Skeleton/skeleton.js +10 -0
  238. package/dist/layout/Skeleton/skeleton.js.map +1 -0
  239. package/dist/layout/Skeleton/skeleton.module.scss.js +4 -0
  240. package/dist/layout/Skeleton/skeleton.module.scss.js.map +1 -0
  241. package/dist/layout/index.d.ts +13 -0
  242. package/dist/layout/index.d.ts.map +1 -0
  243. package/dist/layout.d.ts +10 -0
  244. package/dist/layout.js +13 -0
  245. package/dist/layout.js.map +1 -0
  246. package/dist/nav-user-CJIcWKyY.d.ts +41 -0
  247. package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts +7 -0
  248. package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts.map +1 -0
  249. package/dist/navigation/Breadcrumbs/breadcrumbs.js +19 -0
  250. package/dist/navigation/Breadcrumbs/breadcrumbs.js.map +1 -0
  251. package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js +4 -0
  252. package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js.map +1 -0
  253. package/dist/navigation/Breadcrumbs/index.d.ts +2 -0
  254. package/dist/navigation/Breadcrumbs/index.d.ts.map +1 -0
  255. package/dist/navigation/DropdownMenu/dropdown-menu.d.ts +50 -0
  256. package/dist/navigation/DropdownMenu/dropdown-menu.d.ts.map +1 -0
  257. package/dist/navigation/DropdownMenu/dropdown-menu.js +193 -0
  258. package/dist/navigation/DropdownMenu/dropdown-menu.js.map +1 -0
  259. package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js +4 -0
  260. package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js.map +1 -0
  261. package/dist/navigation/DropdownMenu/index.d.ts +2 -0
  262. package/dist/navigation/DropdownMenu/index.d.ts.map +1 -0
  263. package/dist/navigation/Link/index.d.ts +2 -0
  264. package/dist/navigation/Link/index.d.ts.map +1 -0
  265. package/dist/navigation/Link/link-variants.d.ts +6 -0
  266. package/dist/navigation/Link/link-variants.d.ts.map +1 -0
  267. package/dist/navigation/Link/link-variants.js +33 -0
  268. package/dist/navigation/Link/link-variants.js.map +1 -0
  269. package/dist/navigation/Link/link.d.ts +24 -0
  270. package/dist/navigation/Link/link.d.ts.map +1 -0
  271. package/dist/navigation/Link/link.js +49 -0
  272. package/dist/navigation/Link/link.js.map +1 -0
  273. package/dist/navigation/Link/link.module.scss.js +4 -0
  274. package/dist/navigation/Link/link.module.scss.js.map +1 -0
  275. package/dist/navigation/NavUser/index.d.ts +2 -0
  276. package/dist/navigation/NavUser/index.d.ts.map +1 -0
  277. package/dist/navigation/NavUser/nav-user.d.ts +8 -0
  278. package/dist/navigation/NavUser/nav-user.d.ts.map +1 -0
  279. package/dist/navigation/NavUser/nav-user.js +15 -0
  280. package/dist/navigation/NavUser/nav-user.js.map +1 -0
  281. package/dist/navigation/NavUser/nav-user.module.scss.js +4 -0
  282. package/dist/navigation/NavUser/nav-user.module.scss.js.map +1 -0
  283. package/dist/navigation/Router/index.d.ts +2 -0
  284. package/dist/navigation/Router/index.d.ts.map +1 -0
  285. package/dist/navigation/Router/router-context.d.ts +38 -0
  286. package/dist/navigation/Router/router-context.d.ts.map +1 -0
  287. package/dist/navigation/Router/router-context.js +49 -0
  288. package/dist/navigation/Router/router-context.js.map +1 -0
  289. package/dist/navigation/Sheet/index.d.ts +2 -0
  290. package/dist/navigation/Sheet/index.d.ts.map +1 -0
  291. package/dist/navigation/Sheet/sheet.d.ts +36 -0
  292. package/dist/navigation/Sheet/sheet.d.ts.map +1 -0
  293. package/dist/navigation/Sheet/sheet.js +104 -0
  294. package/dist/navigation/Sheet/sheet.js.map +1 -0
  295. package/dist/navigation/Sheet/sheet.module.scss.js +4 -0
  296. package/dist/navigation/Sheet/sheet.module.scss.js.map +1 -0
  297. package/dist/navigation/index.d.ts +7 -0
  298. package/dist/navigation/index.d.ts.map +1 -0
  299. package/dist/navigation.d.ts +160 -0
  300. package/dist/navigation.js +7 -0
  301. package/dist/navigation.js.map +1 -0
  302. package/dist/row-CS9-talZ.d.ts +14 -0
  303. package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts +3 -0
  304. package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts.map +1 -0
  305. package/dist/settings/AppearanceDropdown/appearance-dropdown.js +27 -0
  306. package/dist/settings/AppearanceDropdown/appearance-dropdown.js.map +1 -0
  307. package/dist/settings/AppearanceDropdown/index.d.ts +2 -0
  308. package/dist/settings/AppearanceDropdown/index.d.ts.map +1 -0
  309. package/dist/settings/AppearanceTabs/appearance-tabs.d.ts +7 -0
  310. package/dist/settings/AppearanceTabs/appearance-tabs.d.ts.map +1 -0
  311. package/dist/settings/AppearanceTabs/appearance-tabs.js +23 -0
  312. package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -0
  313. package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js +4 -0
  314. package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js.map +1 -0
  315. package/dist/settings/AppearanceTabs/index.d.ts +2 -0
  316. package/dist/settings/AppearanceTabs/index.d.ts.map +1 -0
  317. package/dist/settings/index.d.ts +3 -0
  318. package/dist/settings/index.d.ts.map +1 -0
  319. package/dist/settings.d.ts +10 -0
  320. package/dist/settings.js +3 -0
  321. package/dist/settings.js.map +1 -0
  322. package/dist/styles/index.d.ts +2 -0
  323. package/dist/styles/index.d.ts.map +1 -0
  324. package/dist/tooltip-XagXjWLB.d.ts +41 -0
  325. package/dist/types/app.d.ts +7 -0
  326. package/dist/types/app.d.ts.map +1 -0
  327. package/dist/types/form/date-picker.d.ts +19 -0
  328. package/dist/types/form/date-picker.d.ts.map +1 -0
  329. package/dist/types/form/select.d.ts +52 -0
  330. package/dist/types/form/select.d.ts.map +1 -0
  331. package/dist/types/form/theme.d.ts +2 -0
  332. package/dist/types/form/theme.d.ts.map +1 -0
  333. package/dist/types/form/upload.d.ts +4 -0
  334. package/dist/types/form/upload.d.ts.map +1 -0
  335. package/dist/types/index.d.ts +15 -0
  336. package/dist/types/index.d.ts.map +1 -0
  337. package/dist/types/layout/column.d.ts +11 -0
  338. package/dist/types/layout/column.d.ts.map +1 -0
  339. package/dist/types/layout/container.d.ts +18 -0
  340. package/dist/types/layout/container.d.ts.map +1 -0
  341. package/dist/types/layout/grid.d.ts +23 -0
  342. package/dist/types/layout/grid.d.ts.map +1 -0
  343. package/dist/types/layout/row.d.ts +12 -0
  344. package/dist/types/layout/row.d.ts.map +1 -0
  345. package/dist/types/layout/sidebar.d.ts +14 -0
  346. package/dist/types/layout/sidebar.d.ts.map +1 -0
  347. package/dist/types/navigation.d.ts +30 -0
  348. package/dist/types/navigation.d.ts.map +1 -0
  349. package/dist/types/ui/alerts.d.ts +20 -0
  350. package/dist/types/ui/alerts.d.ts.map +1 -0
  351. package/dist/types/ui/pagination.d.ts +10 -0
  352. package/dist/types/ui/pagination.d.ts.map +1 -0
  353. package/dist/types/ui/table.d.ts +11 -0
  354. package/dist/types/ui/table.d.ts.map +1 -0
  355. package/dist/typography/Heading/heading.d.ts +21 -0
  356. package/dist/typography/Heading/heading.d.ts.map +1 -0
  357. package/dist/typography/Heading/heading.js +21 -0
  358. package/dist/typography/Heading/heading.js.map +1 -0
  359. package/dist/typography/Heading/heading.module.scss.js +4 -0
  360. package/dist/typography/Heading/heading.module.scss.js.map +1 -0
  361. package/dist/typography/Heading/index.d.ts +2 -0
  362. package/dist/typography/Heading/index.d.ts.map +1 -0
  363. package/dist/typography/TruncatedText/index.d.ts +2 -0
  364. package/dist/typography/TruncatedText/index.d.ts.map +1 -0
  365. package/dist/typography/TruncatedText/truncated-text.d.ts +15 -0
  366. package/dist/typography/TruncatedText/truncated-text.d.ts.map +1 -0
  367. package/dist/typography/TruncatedText/truncated-text.js +61 -0
  368. package/dist/typography/TruncatedText/truncated-text.js.map +1 -0
  369. package/dist/typography/TruncatedText/truncated-text.module.scss.js +4 -0
  370. package/dist/typography/TruncatedText/truncated-text.module.scss.js.map +1 -0
  371. package/dist/typography/Typography/index.d.ts +2 -0
  372. package/dist/typography/Typography/index.d.ts.map +1 -0
  373. package/dist/typography/Typography/typography-variants.d.ts +9 -0
  374. package/dist/typography/Typography/typography-variants.d.ts.map +1 -0
  375. package/dist/typography/Typography/typography-variants.js +75 -0
  376. package/dist/typography/Typography/typography-variants.js.map +1 -0
  377. package/dist/typography/Typography/typography.d.ts +19 -0
  378. package/dist/typography/Typography/typography.d.ts.map +1 -0
  379. package/dist/typography/Typography/typography.js +43 -0
  380. package/dist/typography/Typography/typography.js.map +1 -0
  381. package/dist/typography/Typography/typography.module.scss.js +4 -0
  382. package/dist/typography/Typography/typography.module.scss.js.map +1 -0
  383. package/dist/typography/index.d.ts +4 -0
  384. package/dist/typography/index.d.ts.map +1 -0
  385. package/dist/typography-DOZHFR5A.d.ts +21 -0
  386. package/dist/typography.d.ts +37 -0
  387. package/dist/typography.js +4 -0
  388. package/dist/typography.js.map +1 -0
  389. package/dist/ui/Alert/alert-context.d.ts +3 -0
  390. package/dist/ui/Alert/alert-context.d.ts.map +1 -0
  391. package/dist/ui/Alert/alert-context.js +6 -0
  392. package/dist/ui/Alert/alert-context.js.map +1 -0
  393. package/dist/ui/Alert/alert-persist.d.ts +4 -0
  394. package/dist/ui/Alert/alert-persist.d.ts.map +1 -0
  395. package/dist/ui/Alert/alert-persist.js +27 -0
  396. package/dist/ui/Alert/alert-persist.js.map +1 -0
  397. package/dist/ui/Alert/alert-provider.d.ts +6 -0
  398. package/dist/ui/Alert/alert-provider.d.ts.map +1 -0
  399. package/dist/ui/Alert/alert-provider.js +57 -0
  400. package/dist/ui/Alert/alert-provider.js.map +1 -0
  401. package/dist/ui/Alert/alert-variants.d.ts +4 -0
  402. package/dist/ui/Alert/alert-variants.d.ts.map +1 -0
  403. package/dist/ui/Alert/alert-variants.js +23 -0
  404. package/dist/ui/Alert/alert-variants.js.map +1 -0
  405. package/dist/ui/Alert/alert.d.ts +24 -0
  406. package/dist/ui/Alert/alert.d.ts.map +1 -0
  407. package/dist/ui/Alert/alert.js +37 -0
  408. package/dist/ui/Alert/alert.js.map +1 -0
  409. package/dist/ui/Alert/alert.module.scss.js +4 -0
  410. package/dist/ui/Alert/alert.module.scss.js.map +1 -0
  411. package/dist/ui/Alert/index.d.ts +4 -0
  412. package/dist/ui/Alert/index.d.ts.map +1 -0
  413. package/dist/ui/Avatar/avatar.d.ts +9 -0
  414. package/dist/ui/Avatar/avatar.d.ts.map +1 -0
  415. package/dist/ui/Avatar/avatar.js +29 -0
  416. package/dist/ui/Avatar/avatar.js.map +1 -0
  417. package/dist/ui/Avatar/avatar.module.scss.js +4 -0
  418. package/dist/ui/Avatar/avatar.module.scss.js.map +1 -0
  419. package/dist/ui/Avatar/index.d.ts +2 -0
  420. package/dist/ui/Avatar/index.d.ts.map +1 -0
  421. package/dist/ui/Button/button-variants.d.ts +8 -0
  422. package/dist/ui/Button/button-variants.d.ts.map +1 -0
  423. package/dist/ui/Button/button-variants.js +45 -0
  424. package/dist/ui/Button/button-variants.js.map +1 -0
  425. package/dist/ui/Button/button.d.ts +9 -0
  426. package/dist/ui/Button/button.d.ts.map +1 -0
  427. package/dist/ui/Button/button.js +65 -0
  428. package/dist/ui/Button/button.js.map +1 -0
  429. package/dist/ui/Button/button.module.scss.js +4 -0
  430. package/dist/ui/Button/button.module.scss.js.map +1 -0
  431. package/dist/ui/Button/index.d.ts +2 -0
  432. package/dist/ui/Button/index.d.ts.map +1 -0
  433. package/dist/ui/Chip/chip-variants.d.ts +6 -0
  434. package/dist/ui/Chip/chip-variants.d.ts.map +1 -0
  435. package/dist/ui/Chip/chip-variants.js +32 -0
  436. package/dist/ui/Chip/chip-variants.js.map +1 -0
  437. package/dist/ui/Chip/chip.d.ts +8 -0
  438. package/dist/ui/Chip/chip.d.ts.map +1 -0
  439. package/dist/ui/Chip/chip.js +13 -0
  440. package/dist/ui/Chip/chip.js.map +1 -0
  441. package/dist/ui/Chip/chip.module.scss.js +4 -0
  442. package/dist/ui/Chip/chip.module.scss.js.map +1 -0
  443. package/dist/ui/Chip/index.d.ts +2 -0
  444. package/dist/ui/Chip/index.d.ts.map +1 -0
  445. package/dist/ui/CodeBlock/code-block-variants.d.ts +5 -0
  446. package/dist/ui/CodeBlock/code-block-variants.d.ts.map +1 -0
  447. package/dist/ui/CodeBlock/code-block-variants.js +29 -0
  448. package/dist/ui/CodeBlock/code-block-variants.js.map +1 -0
  449. package/dist/ui/CodeBlock/code-block.d.ts +20 -0
  450. package/dist/ui/CodeBlock/code-block.d.ts.map +1 -0
  451. package/dist/ui/CodeBlock/code-block.js +70 -0
  452. package/dist/ui/CodeBlock/code-block.js.map +1 -0
  453. package/dist/ui/CodeBlock/code-block.module.scss.js +4 -0
  454. package/dist/ui/CodeBlock/code-block.module.scss.js.map +1 -0
  455. package/dist/ui/CodeBlock/index.d.ts +2 -0
  456. package/dist/ui/CodeBlock/index.d.ts.map +1 -0
  457. package/dist/ui/DevIndicator/dev-indicator.d.ts +5 -0
  458. package/dist/ui/DevIndicator/dev-indicator.d.ts.map +1 -0
  459. package/dist/ui/DevIndicator/dev-indicator.js +20 -0
  460. package/dist/ui/DevIndicator/dev-indicator.js.map +1 -0
  461. package/dist/ui/DevIndicator/dev-indicator.module.scss.js +4 -0
  462. package/dist/ui/DevIndicator/dev-indicator.module.scss.js.map +1 -0
  463. package/dist/ui/DevIndicator/index.d.ts +2 -0
  464. package/dist/ui/DevIndicator/index.d.ts.map +1 -0
  465. package/dist/ui/Dialog/dialog.d.ts +50 -0
  466. package/dist/ui/Dialog/dialog.d.ts.map +1 -0
  467. package/dist/ui/Dialog/dialog.js +133 -0
  468. package/dist/ui/Dialog/dialog.js.map +1 -0
  469. package/dist/ui/Dialog/dialog.module.scss.js +4 -0
  470. package/dist/ui/Dialog/dialog.module.scss.js.map +1 -0
  471. package/dist/ui/Dialog/index.d.ts +2 -0
  472. package/dist/ui/Dialog/index.d.ts.map +1 -0
  473. package/dist/ui/EmptyState/empty-state-variants.d.ts +5 -0
  474. package/dist/ui/EmptyState/empty-state-variants.d.ts.map +1 -0
  475. package/dist/ui/EmptyState/empty-state-variants.js +29 -0
  476. package/dist/ui/EmptyState/empty-state-variants.js.map +1 -0
  477. package/dist/ui/EmptyState/empty-state.d.ts +16 -0
  478. package/dist/ui/EmptyState/empty-state.d.ts.map +1 -0
  479. package/dist/ui/EmptyState/empty-state.js +13 -0
  480. package/dist/ui/EmptyState/empty-state.js.map +1 -0
  481. package/dist/ui/EmptyState/empty-state.module.scss.js +4 -0
  482. package/dist/ui/EmptyState/empty-state.module.scss.js.map +1 -0
  483. package/dist/ui/EmptyState/index.d.ts +2 -0
  484. package/dist/ui/EmptyState/index.d.ts.map +1 -0
  485. package/dist/ui/Icon/icon-variants.d.ts +7 -0
  486. package/dist/ui/Icon/icon-variants.d.ts.map +1 -0
  487. package/dist/ui/Icon/icon-variants.js +43 -0
  488. package/dist/ui/Icon/icon-variants.js.map +1 -0
  489. package/dist/ui/Icon/icon.d.ts +44 -0
  490. package/dist/ui/Icon/icon.d.ts.map +1 -0
  491. package/dist/ui/Icon/icon.js +41 -0
  492. package/dist/ui/Icon/icon.js.map +1 -0
  493. package/dist/ui/Icon/icon.module.scss.js +4 -0
  494. package/dist/ui/Icon/icon.module.scss.js.map +1 -0
  495. package/dist/ui/Icon/index.d.ts +2 -0
  496. package/dist/ui/Icon/index.d.ts.map +1 -0
  497. package/dist/ui/List/index.d.ts +2 -0
  498. package/dist/ui/List/index.d.ts.map +1 -0
  499. package/dist/ui/List/list.d.ts +14 -0
  500. package/dist/ui/List/list.d.ts.map +1 -0
  501. package/dist/ui/List/list.js +20 -0
  502. package/dist/ui/List/list.js.map +1 -0
  503. package/dist/ui/List/list.module.scss.js +4 -0
  504. package/dist/ui/List/list.module.scss.js.map +1 -0
  505. package/dist/ui/Pagination/index.d.ts +2 -0
  506. package/dist/ui/Pagination/index.d.ts.map +1 -0
  507. package/dist/ui/Pagination/pagination.d.ts +5 -0
  508. package/dist/ui/Pagination/pagination.d.ts.map +1 -0
  509. package/dist/ui/Pagination/pagination.js +37 -0
  510. package/dist/ui/Pagination/pagination.js.map +1 -0
  511. package/dist/ui/Pagination/pagination.module.scss.js +4 -0
  512. package/dist/ui/Pagination/pagination.module.scss.js.map +1 -0
  513. package/dist/ui/ProgressBar/index.d.ts +2 -0
  514. package/dist/ui/ProgressBar/index.d.ts.map +1 -0
  515. package/dist/ui/ProgressBar/progress-bar-variants.d.ts +9 -0
  516. package/dist/ui/ProgressBar/progress-bar-variants.d.ts.map +1 -0
  517. package/dist/ui/ProgressBar/progress-bar-variants.js +46 -0
  518. package/dist/ui/ProgressBar/progress-bar-variants.js.map +1 -0
  519. package/dist/ui/ProgressBar/progress-bar.d.ts +12 -0
  520. package/dist/ui/ProgressBar/progress-bar.d.ts.map +1 -0
  521. package/dist/ui/ProgressBar/progress-bar.js +14 -0
  522. package/dist/ui/ProgressBar/progress-bar.js.map +1 -0
  523. package/dist/ui/ProgressBar/progress-bar.module.scss.js +4 -0
  524. package/dist/ui/ProgressBar/progress-bar.module.scss.js.map +1 -0
  525. package/dist/ui/Separator/index.d.ts +2 -0
  526. package/dist/ui/Separator/index.d.ts.map +1 -0
  527. package/dist/ui/Separator/separator.d.ts +8 -0
  528. package/dist/ui/Separator/separator.d.ts.map +1 -0
  529. package/dist/ui/Separator/separator.js +10 -0
  530. package/dist/ui/Separator/separator.js.map +1 -0
  531. package/dist/ui/Separator/separator.module.scss.js +4 -0
  532. package/dist/ui/Separator/separator.module.scss.js.map +1 -0
  533. package/dist/ui/StatCard/index.d.ts +2 -0
  534. package/dist/ui/StatCard/index.d.ts.map +1 -0
  535. package/dist/ui/StatCard/stat-card-variants.d.ts +6 -0
  536. package/dist/ui/StatCard/stat-card-variants.d.ts.map +1 -0
  537. package/dist/ui/StatCard/stat-card-variants.js +35 -0
  538. package/dist/ui/StatCard/stat-card-variants.js.map +1 -0
  539. package/dist/ui/StatCard/stat-card.d.ts +31 -0
  540. package/dist/ui/StatCard/stat-card.d.ts.map +1 -0
  541. package/dist/ui/StatCard/stat-card.js +56 -0
  542. package/dist/ui/StatCard/stat-card.js.map +1 -0
  543. package/dist/ui/StatCard/stat-card.module.scss.js +4 -0
  544. package/dist/ui/StatCard/stat-card.module.scss.js.map +1 -0
  545. package/dist/ui/StepProgress/index.d.ts +2 -0
  546. package/dist/ui/StepProgress/index.d.ts.map +1 -0
  547. package/dist/ui/StepProgress/step-progress-variants.d.ts +7 -0
  548. package/dist/ui/StepProgress/step-progress-variants.d.ts.map +1 -0
  549. package/dist/ui/StepProgress/step-progress-variants.js +39 -0
  550. package/dist/ui/StepProgress/step-progress-variants.js.map +1 -0
  551. package/dist/ui/StepProgress/step-progress.d.ts +20 -0
  552. package/dist/ui/StepProgress/step-progress.d.ts.map +1 -0
  553. package/dist/ui/StepProgress/step-progress.js +40 -0
  554. package/dist/ui/StepProgress/step-progress.js.map +1 -0
  555. package/dist/ui/StepProgress/step-progress.module.scss.js +4 -0
  556. package/dist/ui/StepProgress/step-progress.module.scss.js.map +1 -0
  557. package/dist/ui/Switch/index.d.ts +2 -0
  558. package/dist/ui/Switch/index.d.ts.map +1 -0
  559. package/dist/ui/Switch/switch-variants.d.ts +5 -0
  560. package/dist/ui/Switch/switch-variants.d.ts.map +1 -0
  561. package/dist/ui/Switch/switch-variants.js +29 -0
  562. package/dist/ui/Switch/switch-variants.js.map +1 -0
  563. package/dist/ui/Switch/switch.d.ts +10 -0
  564. package/dist/ui/Switch/switch.d.ts.map +1 -0
  565. package/dist/ui/Switch/switch.js +18 -0
  566. package/dist/ui/Switch/switch.js.map +1 -0
  567. package/dist/ui/Switch/switch.module.scss.js +4 -0
  568. package/dist/ui/Switch/switch.module.scss.js.map +1 -0
  569. package/dist/ui/Table/index.d.ts +2 -0
  570. package/dist/ui/Table/index.d.ts.map +1 -0
  571. package/dist/ui/Table/table-sort-context.d.ts +4 -0
  572. package/dist/ui/Table/table-sort-context.d.ts.map +1 -0
  573. package/dist/ui/Table/table-sort-context.js +6 -0
  574. package/dist/ui/Table/table-sort-context.js.map +1 -0
  575. package/dist/ui/Table/table.d.ts +32 -0
  576. package/dist/ui/Table/table.d.ts.map +1 -0
  577. package/dist/ui/Table/table.js +59 -0
  578. package/dist/ui/Table/table.js.map +1 -0
  579. package/dist/ui/Table/table.module.scss.js +4 -0
  580. package/dist/ui/Table/table.module.scss.js.map +1 -0
  581. package/dist/ui/TableActionCell/index.d.ts +2 -0
  582. package/dist/ui/TableActionCell/index.d.ts.map +1 -0
  583. package/dist/ui/TableActionCell/table-action-cell.d.ts +28 -0
  584. package/dist/ui/TableActionCell/table-action-cell.d.ts.map +1 -0
  585. package/dist/ui/TableActionCell/table-action-cell.js +27 -0
  586. package/dist/ui/TableActionCell/table-action-cell.js.map +1 -0
  587. package/dist/ui/TableActionCell/table-action-cell.module.scss.js +4 -0
  588. package/dist/ui/TableActionCell/table-action-cell.module.scss.js.map +1 -0
  589. package/dist/ui/TableToolbar/index.d.ts +2 -0
  590. package/dist/ui/TableToolbar/index.d.ts.map +1 -0
  591. package/dist/ui/TableToolbar/table-toolbar.d.ts +29 -0
  592. package/dist/ui/TableToolbar/table-toolbar.d.ts.map +1 -0
  593. package/dist/ui/TableToolbar/table-toolbar.js +18 -0
  594. package/dist/ui/TableToolbar/table-toolbar.js.map +1 -0
  595. package/dist/ui/TableToolbar/table-toolbar.module.scss.js +4 -0
  596. package/dist/ui/TableToolbar/table-toolbar.module.scss.js.map +1 -0
  597. package/dist/ui/Toggle/index.d.ts +2 -0
  598. package/dist/ui/Toggle/index.d.ts.map +1 -0
  599. package/dist/ui/Toggle/toggle-group-context.d.ts +9 -0
  600. package/dist/ui/Toggle/toggle-group-context.d.ts.map +1 -0
  601. package/dist/ui/Toggle/toggle-group-context.js +6 -0
  602. package/dist/ui/Toggle/toggle-group-context.js.map +1 -0
  603. package/dist/ui/Toggle/toggle-variants.d.ts +8 -0
  604. package/dist/ui/Toggle/toggle-variants.d.ts.map +1 -0
  605. package/dist/ui/Toggle/toggle-variants.js +45 -0
  606. package/dist/ui/Toggle/toggle-variants.js.map +1 -0
  607. package/dist/ui/Toggle/toggle.d.ts +12 -0
  608. package/dist/ui/Toggle/toggle.d.ts.map +1 -0
  609. package/dist/ui/Toggle/toggle.js +49 -0
  610. package/dist/ui/Toggle/toggle.js.map +1 -0
  611. package/dist/ui/Toggle/toggle.module.scss.js +4 -0
  612. package/dist/ui/Toggle/toggle.module.scss.js.map +1 -0
  613. package/dist/ui/ToggleGroup/index.d.ts +2 -0
  614. package/dist/ui/ToggleGroup/index.d.ts.map +1 -0
  615. package/dist/ui/ToggleGroup/toggle-group.d.ts +24 -0
  616. package/dist/ui/ToggleGroup/toggle-group.d.ts.map +1 -0
  617. package/dist/ui/ToggleGroup/toggle-group.js +80 -0
  618. package/dist/ui/ToggleGroup/toggle-group.js.map +1 -0
  619. package/dist/ui/ToggleGroup/toggle-group.module.scss.js +4 -0
  620. package/dist/ui/ToggleGroup/toggle-group.module.scss.js.map +1 -0
  621. package/dist/ui/Tooltip/index.d.ts +2 -0
  622. package/dist/ui/Tooltip/index.d.ts.map +1 -0
  623. package/dist/ui/Tooltip/tooltip.d.ts +24 -0
  624. package/dist/ui/Tooltip/tooltip.d.ts.map +1 -0
  625. package/dist/ui/Tooltip/tooltip.js +192 -0
  626. package/dist/ui/Tooltip/tooltip.js.map +1 -0
  627. package/dist/ui/Tooltip/tooltip.module.scss.js +4 -0
  628. package/dist/ui/Tooltip/tooltip.module.scss.js.map +1 -0
  629. package/dist/ui/index.d.ts +23 -0
  630. package/dist/ui/index.d.ts.map +1 -0
  631. package/dist/ui.d.ts +6 -0
  632. package/dist/ui.js +25 -0
  633. package/dist/ui.js.map +1 -0
  634. package/dist/user/UserInfo/index.d.ts +2 -0
  635. package/dist/user/UserInfo/index.d.ts.map +1 -0
  636. package/dist/user/UserInfo/user-info.d.ts +6 -0
  637. package/dist/user/UserInfo/user-info.d.ts.map +1 -0
  638. package/dist/user/UserInfo/user-info.js +17 -0
  639. package/dist/user/UserInfo/user-info.js.map +1 -0
  640. package/dist/user/UserInfo/user-info.module.scss.js +4 -0
  641. package/dist/user/UserInfo/user-info.module.scss.js.map +1 -0
  642. package/dist/user/UserMenuContent/index.d.ts +2 -0
  643. package/dist/user/UserMenuContent/index.d.ts.map +1 -0
  644. package/dist/user/UserMenuContent/user-menu-content.d.ts +25 -0
  645. package/dist/user/UserMenuContent/user-menu-content.d.ts.map +1 -0
  646. package/dist/user/UserMenuContent/user-menu-content.js +23 -0
  647. package/dist/user/UserMenuContent/user-menu-content.js.map +1 -0
  648. package/dist/user/index.d.ts +3 -0
  649. package/dist/user/index.d.ts.map +1 -0
  650. package/dist/user-menu-content-D0Ldzigm.d.ts +34 -0
  651. package/dist/user.d.ts +10 -0
  652. package/dist/user.js +3 -0
  653. package/dist/user.js.map +1 -0
  654. package/dist/utils/csrf.d.ts +2 -0
  655. package/dist/utils/csrf.d.ts.map +1 -0
  656. package/dist/utils/csrf.js +13 -0
  657. package/dist/utils/csrf.js.map +1 -0
  658. package/dist/utils/index.d.ts +2 -0
  659. package/dist/utils/index.d.ts.map +1 -0
  660. package/dist/utils.d.ts +3 -0
  661. package/dist/utils.js +2 -0
  662. package/dist/utils.js.map +1 -0
  663. package/package.json +208 -0
  664. package/src/styles/_mixins.scss +105 -0
  665. package/src/styles/_theme-context.scss +12 -0
  666. package/src/styles/mixins.scss +1 -0
  667. package/vite-plugin.d.ts +26 -0
  668. package/vite-plugin.mjs +95 -0
@@ -0,0 +1,2 @@
1
+ export * from './breadcrumbs';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/Breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+ export interface DropdownMenuProps {
3
+ open?: boolean;
4
+ defaultOpen?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ children?: React.ReactNode;
7
+ }
8
+ declare function DropdownMenu({ open: controlledOpen, defaultOpen, onOpenChange, children, }: DropdownMenuProps): React.JSX.Element;
9
+ export interface DropdownMenuTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
10
+ asChild?: boolean;
11
+ }
12
+ declare function DropdownMenuTrigger({ asChild, children, onClick, ...props }: DropdownMenuTriggerProps): React.JSX.Element;
13
+ export interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {
14
+ align?: 'start' | 'center' | 'end';
15
+ sideOffset?: number;
16
+ }
17
+ declare function DropdownMenuContent({ className, children, align, sideOffset, ...props }: DropdownMenuContentProps): React.ReactPortal | null;
18
+ export interface DropdownMenuItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
19
+ inset?: boolean;
20
+ variant?: 'default' | 'destructive';
21
+ disabled?: boolean;
22
+ onSelect?: (event: Event) => void;
23
+ }
24
+ declare function DropdownMenuItem({ className, inset, variant, disabled, onSelect, onClick, children, ...props }: DropdownMenuItemProps): React.JSX.Element;
25
+ declare function DropdownMenuGroup({ ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
26
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.HTMLAttributes<HTMLDivElement> & {
27
+ inset?: boolean;
28
+ }): React.JSX.Element;
29
+ declare function DropdownMenuSeparator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
30
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
31
+ declare function DropdownMenuPortal({ children }: {
32
+ children?: React.ReactNode;
33
+ }): React.JSX.Element;
34
+ declare function DropdownMenuCheckboxItem({ className, children, checked, onCheckedChange, ...props }: React.HTMLAttributes<HTMLDivElement> & {
35
+ checked?: boolean;
36
+ onCheckedChange?: (checked: boolean) => void;
37
+ }): React.JSX.Element;
38
+ declare function DropdownMenuRadioGroup({ ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
39
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & {
40
+ value?: string;
41
+ }): React.JSX.Element;
42
+ declare function DropdownMenuSub({ children }: {
43
+ children?: React.ReactNode;
44
+ }): React.JSX.Element;
45
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.HTMLAttributes<HTMLDivElement> & {
46
+ inset?: boolean;
47
+ }): React.JSX.Element;
48
+ declare function DropdownMenuSubContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
49
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, };
50
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/navigation/DropdownMenu/dropdown-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,iBAAS,YAAY,CAAC,EACpB,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,EACZ,QAAQ,GACT,EAAE,iBAAiB,qBAmBnB;AAID,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iBAAS,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,qBA2B9F;AAID,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,KAAe,EACf,UAAc,EACd,GAAG,KAAK,EACT,EAAE,wBAAwB,4BAoH1B;AAID,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,UAAU,CACX;IACC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACnC;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAK,EACL,OAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAgCvB;AAID,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAE5E;AAID,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,qBAS5D;AAID,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAS3F;AAID,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQlF;AAID,iBAAS,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAEvE;AAID,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,qBAqBA;AAED,iBAAS,sBAAsB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAEjF;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,qBAc3D;AAED,iBAAS,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAEpE;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,qBAY5D;AAED,iBAAS,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAQ5F;AAED,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,193 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import cn from 'clsx';
3
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
4
+ import * as React from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import { useAnimationState } from '../../internal/use-animation-state.js';
7
+ import s from './dropdown-menu.module.scss.js';
8
+
9
+ const DropdownMenuContext = React.createContext(null);
10
+ function useDropdownMenu() {
11
+ const ctx = React.useContext(DropdownMenuContext);
12
+ if (!ctx)
13
+ throw new Error('DropdownMenu components must be used within <DropdownMenu>');
14
+ return ctx;
15
+ }
16
+ function DropdownMenu({ open: controlledOpen, defaultOpen = false, onOpenChange, children, }) {
17
+ const [internalOpen, setInternalOpen] = React.useState(defaultOpen);
18
+ const isControlled = controlledOpen !== undefined;
19
+ const open = isControlled ? controlledOpen : internalOpen;
20
+ const triggerRef = React.useRef(null);
21
+ const handleOpenChange = React.useCallback((next) => {
22
+ if (!isControlled)
23
+ setInternalOpen(next);
24
+ onOpenChange?.(next);
25
+ }, [isControlled, onOpenChange]);
26
+ return (jsx(DropdownMenuContext.Provider, { value: { open, onOpenChange: handleOpenChange, triggerRef }, children: children }));
27
+ }
28
+ function DropdownMenuTrigger({ asChild, children, onClick, ...props }) {
29
+ const { open, onOpenChange, triggerRef } = useDropdownMenu();
30
+ const handleClick = (e) => {
31
+ onClick?.(e);
32
+ onOpenChange(!open);
33
+ };
34
+ if (asChild && React.isValidElement(children)) {
35
+ return React.cloneElement(children, {
36
+ ref: triggerRef,
37
+ 'data-slot': 'dropdown-menu-trigger',
38
+ onClick: handleClick,
39
+ ...props,
40
+ });
41
+ }
42
+ return (jsx("button", { ref: triggerRef, "data-slot": 'dropdown-menu-trigger', onClick: handleClick, ...props, children: children }));
43
+ }
44
+ function DropdownMenuContent({ className, children, align = 'start', sideOffset = 4, ...props }) {
45
+ const { open, onOpenChange, triggerRef } = useDropdownMenu();
46
+ const { mounted, state } = useAnimationState(open, 150);
47
+ const wrapperRef = React.useRef(null);
48
+ const [positioned, setPositioned] = React.useState(false);
49
+ const [position, setPosition] = React.useState({});
50
+ const [resolvedSide, setResolvedSide] = React.useState('bottom');
51
+ // Reset on close so next open re-measures
52
+ React.useEffect(() => {
53
+ if (!mounted)
54
+ setPositioned(false);
55
+ }, [mounted]);
56
+ const calcPosition = React.useCallback(() => {
57
+ const triggerRect = triggerRef.current?.getBoundingClientRect();
58
+ const contentEl = wrapperRef.current?.firstElementChild;
59
+ if (!triggerRect || !contentEl)
60
+ return;
61
+ const contentHeight = contentEl.offsetHeight;
62
+ const bottomSpace = window.innerHeight - triggerRect.bottom - sideOffset;
63
+ const fitsBelow = bottomSpace >= contentHeight;
64
+ const top = fitsBelow
65
+ ? triggerRect.bottom + sideOffset
66
+ : triggerRect.top - contentHeight - sideOffset;
67
+ let left;
68
+ if (align === 'end') {
69
+ left = triggerRect.right - contentEl.offsetWidth;
70
+ }
71
+ else if (align === 'center') {
72
+ left = triggerRect.left + (triggerRect.width - contentEl.offsetWidth) / 2;
73
+ }
74
+ else {
75
+ left = triggerRect.left;
76
+ }
77
+ setPosition({ position: 'fixed', top, left, zIndex: 50 });
78
+ setResolvedSide(fitsBelow ? 'bottom' : 'top');
79
+ setPositioned(true);
80
+ }, [align, sideOffset, triggerRef]);
81
+ // Measure via ref callback on mount
82
+ const measureRef = React.useCallback((node) => {
83
+ wrapperRef.current = node;
84
+ if (node && mounted && triggerRef.current) {
85
+ calcPosition();
86
+ }
87
+ }, [mounted, triggerRef, calcPosition]);
88
+ // Reposition on scroll/resize
89
+ React.useEffect(() => {
90
+ if (!mounted)
91
+ return;
92
+ window.addEventListener('scroll', calcPosition, true);
93
+ window.addEventListener('resize', calcPosition);
94
+ return () => {
95
+ window.removeEventListener('scroll', calcPosition, true);
96
+ window.removeEventListener('resize', calcPosition);
97
+ };
98
+ }, [mounted, calcPosition]);
99
+ // Click outside + Escape
100
+ React.useEffect(() => {
101
+ if (!open)
102
+ return;
103
+ const handleClickOutside = (e) => {
104
+ const target = e.target;
105
+ if (triggerRef.current?.contains(target))
106
+ return;
107
+ if (wrapperRef.current?.contains(target))
108
+ return;
109
+ onOpenChange(false);
110
+ };
111
+ // This effect only runs while open, so claiming Escape here is safe — and
112
+ // required, so the key closes this menu rather than a Dialog behind it.
113
+ const handleEscape = (e) => {
114
+ if (e.key === 'Escape') {
115
+ e.preventDefault();
116
+ onOpenChange(false);
117
+ }
118
+ };
119
+ document.addEventListener('mousedown', handleClickOutside);
120
+ document.addEventListener('keydown', handleEscape);
121
+ return () => {
122
+ document.removeEventListener('mousedown', handleClickOutside);
123
+ document.removeEventListener('keydown', handleEscape);
124
+ };
125
+ }, [open, onOpenChange, triggerRef]);
126
+ if (!mounted)
127
+ return null;
128
+ return createPortal(jsx("div", { ref: measureRef, style: positioned && state !== 'idle'
129
+ ? position
130
+ : { position: 'fixed', visibility: 'hidden', zIndex: 50 }, children: jsx("div", { "data-slot": 'dropdown-menu-content', "data-state": state === 'idle' ? undefined : state, "data-side": resolvedSide, role: 'menu', className: cn(s['dropdown-menu-content'], className), ...props, children: children }) }), document.body);
131
+ }
132
+ function DropdownMenuItem({ className, inset, variant = 'default', disabled, onSelect, onClick, children, ...props }) {
133
+ const { onOpenChange } = useDropdownMenu();
134
+ const handleClick = (e) => {
135
+ if (disabled)
136
+ return;
137
+ onClick?.(e);
138
+ onSelect?.(e.nativeEvent);
139
+ onOpenChange(false);
140
+ };
141
+ return (jsx("div", { "data-slot": 'dropdown-menu-item', "data-inset": inset, "data-variant": variant, "data-disabled": disabled || undefined, role: 'menuitem', tabIndex: disabled ? -1 : 0, "aria-disabled": disabled, className: cn(s['dropdown-menu-item'], className), onClick: handleClick, onKeyDown: e => {
142
+ if (e.key === 'Enter' || e.key === ' ') {
143
+ e.preventDefault();
144
+ handleClick(e);
145
+ }
146
+ }, ...props, children: children }));
147
+ }
148
+ // ── Group ────────────────────────────────────────────────
149
+ function DropdownMenuGroup({ ...props }) {
150
+ return jsx("div", { "data-slot": 'dropdown-menu-group', role: 'group', ...props });
151
+ }
152
+ // ── Label ────────────────────────────────────────────────
153
+ function DropdownMenuLabel({ className, inset, ...props }) {
154
+ return (jsx("div", { "data-slot": 'dropdown-menu-label', "data-inset": inset, className: cn(s['menu-label'], className), ...props }));
155
+ }
156
+ // ── Separator ────────────────────────────────────────────
157
+ function DropdownMenuSeparator({ className, ...props }) {
158
+ return (jsx("div", { "data-slot": 'dropdown-menu-separator', role: 'separator', className: cn(s['menu-separator'], className), ...props }));
159
+ }
160
+ // ── Shortcut ─────────────────────────────────────────────
161
+ function DropdownMenuShortcut({ className, ...props }) {
162
+ return (jsx("span", { "data-slot": 'dropdown-menu-shortcut', className: cn(s['menu-shortcut'], className), ...props }));
163
+ }
164
+ // ── Portal (kept for API compat) ─────────────────────────
165
+ function DropdownMenuPortal({ children }) {
166
+ return jsx(Fragment, { children: children });
167
+ }
168
+ // ── Advanced features (kept for API compat, rarely used) ─
169
+ function DropdownMenuCheckboxItem({ className, children, checked, onCheckedChange, ...props }) {
170
+ const { onOpenChange } = useDropdownMenu();
171
+ return (jsxs("div", { "data-slot": 'dropdown-menu-checkbox-item', role: 'menuitemcheckbox', "aria-checked": checked, className: cn(s['checkbox-item'], className), onClick: () => {
172
+ onCheckedChange?.(!checked);
173
+ onOpenChange(false);
174
+ }, ...props, children: [jsx("span", { className: s.indicator, children: checked ? jsx(CheckIcon, { className: s['checkbox-icon'] }) : null }), children] }));
175
+ }
176
+ function DropdownMenuRadioGroup({ ...props }) {
177
+ return jsx("div", { "data-slot": 'dropdown-menu-radio-group', role: 'group', ...props });
178
+ }
179
+ function DropdownMenuRadioItem({ className, children, ...props }) {
180
+ return (jsxs("div", { "data-slot": 'dropdown-menu-radio-item', role: 'menuitemradio', className: cn(s['radio-item'], className), ...props, children: [jsx("span", { className: s.indicator, children: jsx(CircleIcon, { className: s['radio-icon'] }) }), children] }));
181
+ }
182
+ function DropdownMenuSub({ children }) {
183
+ return jsx(Fragment, { children: children });
184
+ }
185
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
186
+ return (jsxs("div", { "data-slot": 'dropdown-menu-sub-trigger', "data-inset": inset, className: cn(s['sub-trigger'], className), ...props, children: [children, jsx(ChevronRightIcon, { className: s['sub-trigger-icon'], "aria-hidden": 'true' })] }));
187
+ }
188
+ function DropdownMenuSubContent({ className, ...props }) {
189
+ return (jsx("div", { "data-slot": 'dropdown-menu-sub-content', className: cn(s['dropdown-menu-sub-content'], className), ...props }));
190
+ }
191
+
192
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
193
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../../src/navigation/DropdownMenu/dropdown-menu.tsx"],"sourcesContent":["import cn from 'clsx';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useAnimationState } from '../../internal/use-animation-state';\nimport s from './dropdown-menu.module.scss';\n\n// ── Context ──────────────────────────────────────────────\n\ntype DropdownMenuContextValue = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n triggerRef: React.RefObject<HTMLElement | null>;\n};\n\nconst DropdownMenuContext = React.createContext<DropdownMenuContextValue | null>(null);\n\nfunction useDropdownMenu() {\n const ctx = React.useContext(DropdownMenuContext);\n if (!ctx) throw new Error('DropdownMenu components must be used within <DropdownMenu>');\n return ctx;\n}\n\n// ── Root ─────────────────────────────────────────────────\n\nexport interface DropdownMenuProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction DropdownMenu({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n}: DropdownMenuProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const triggerRef = React.useRef<HTMLElement | null>(null);\n\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <DropdownMenuContext.Provider value={{ open, onOpenChange: handleOpenChange, triggerRef }}>\n {children}\n </DropdownMenuContext.Provider>\n );\n}\n\n// ── Trigger ──────────────────────────────────────────────\n\nexport interface DropdownMenuTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nfunction DropdownMenuTrigger({ asChild, children, onClick, ...props }: DropdownMenuTriggerProps) {\n const { open, onOpenChange, triggerRef } = useDropdownMenu();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n onOpenChange(!open);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<Record<string, unknown>>, {\n ref: triggerRef,\n 'data-slot': 'dropdown-menu-trigger',\n onClick: handleClick,\n ...props,\n });\n }\n\n return (\n <button\n ref={triggerRef as React.Ref<HTMLButtonElement>}\n data-slot={'dropdown-menu-trigger'}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n );\n}\n\n// ── Content ──────────────────────────────────────────────\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: 'start' | 'center' | 'end';\n sideOffset?: number;\n}\n\nfunction DropdownMenuContent({\n className,\n children,\n align = 'start',\n sideOffset = 4,\n ...props\n}: DropdownMenuContentProps) {\n const { open, onOpenChange, triggerRef } = useDropdownMenu();\n const { mounted, state } = useAnimationState(open, 150);\n const wrapperRef = React.useRef<HTMLDivElement | null>(null);\n const [positioned, setPositioned] = React.useState(false);\n const [position, setPosition] = React.useState<React.CSSProperties>({});\n const [resolvedSide, setResolvedSide] = React.useState<'top' | 'bottom'>('bottom');\n\n // Reset on close so next open re-measures\n React.useEffect(() => {\n if (!mounted) setPositioned(false);\n }, [mounted]);\n\n const calcPosition = React.useCallback(() => {\n const triggerRect = triggerRef.current?.getBoundingClientRect();\n const contentEl = wrapperRef.current?.firstElementChild as HTMLElement | null;\n if (!triggerRect || !contentEl) return;\n\n const contentHeight = contentEl.offsetHeight;\n const bottomSpace = window.innerHeight - triggerRect.bottom - sideOffset;\n const fitsBelow = bottomSpace >= contentHeight;\n\n const top = fitsBelow\n ? triggerRect.bottom + sideOffset\n : triggerRect.top - contentHeight - sideOffset;\n\n let left: number;\n\n if (align === 'end') {\n left = triggerRect.right - contentEl.offsetWidth;\n } else if (align === 'center') {\n left = triggerRect.left + (triggerRect.width - contentEl.offsetWidth) / 2;\n } else {\n left = triggerRect.left;\n }\n\n setPosition({ position: 'fixed', top, left, zIndex: 50 });\n setResolvedSide(fitsBelow ? 'bottom' : 'top');\n setPositioned(true);\n }, [align, sideOffset, triggerRef]);\n\n // Measure via ref callback on mount\n const measureRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n (wrapperRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (node && mounted && triggerRef.current) {\n calcPosition();\n }\n },\n [mounted, triggerRef, calcPosition],\n );\n\n // Reposition on scroll/resize\n React.useEffect(() => {\n if (!mounted) return;\n\n window.addEventListener('scroll', calcPosition, true);\n window.addEventListener('resize', calcPosition);\n return () => {\n window.removeEventListener('scroll', calcPosition, true);\n window.removeEventListener('resize', calcPosition);\n };\n }, [mounted, calcPosition]);\n\n // Click outside + Escape\n React.useEffect(() => {\n if (!open) return;\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node;\n if (triggerRef.current?.contains(target)) return;\n if (wrapperRef.current?.contains(target)) return;\n onOpenChange(false);\n };\n\n // This effect only runs while open, so claiming Escape here is safe — and\n // required, so the key closes this menu rather than a Dialog behind it.\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n onOpenChange(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onOpenChange, triggerRef]);\n\n if (!mounted) return null;\n\n return createPortal(\n <div\n ref={measureRef}\n style={\n positioned && state !== 'idle'\n ? position\n : { position: 'fixed', visibility: 'hidden', zIndex: 50 }\n }\n >\n <div\n data-slot={'dropdown-menu-content'}\n data-state={state === 'idle' ? undefined : state}\n data-side={resolvedSide}\n role={'menu'}\n className={cn(s['dropdown-menu-content'], className)}\n {...props}\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n\n// ── Item ─────────────────────────────────────────────────\n\nexport interface DropdownMenuItemProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onSelect'\n> {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n disabled?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n disabled,\n onSelect,\n onClick,\n children,\n ...props\n}: DropdownMenuItemProps) {\n const { onOpenChange } = useDropdownMenu();\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n onClick?.(e);\n onSelect?.(e.nativeEvent);\n onOpenChange(false);\n };\n\n return (\n <div\n data-slot={'dropdown-menu-item'}\n data-inset={inset}\n data-variant={variant}\n data-disabled={disabled || undefined}\n role={'menuitem'}\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled}\n className={cn(s['dropdown-menu-item'], className)}\n onClick={handleClick}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleClick(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// ── Group ────────────────────────────────────────────────\n\nfunction DropdownMenuGroup({ ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div data-slot={'dropdown-menu-group'} role={'group'} {...props} />;\n}\n\n// ── Label ────────────────────────────────────────────────\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { inset?: boolean }) {\n return (\n <div\n data-slot={'dropdown-menu-label'}\n data-inset={inset}\n className={cn(s['menu-label'], className)}\n {...props}\n />\n );\n}\n\n// ── Separator ────────────────────────────────────────────\n\nfunction DropdownMenuSeparator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot={'dropdown-menu-separator'}\n role={'separator'}\n className={cn(s['menu-separator'], className)}\n {...props}\n />\n );\n}\n\n// ── Shortcut ─────────────────────────────────────────────\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot={'dropdown-menu-shortcut'}\n className={cn(s['menu-shortcut'], className)}\n {...props}\n />\n );\n}\n\n// ── Portal (kept for API compat) ─────────────────────────\n\nfunction DropdownMenuPortal({ children }: { children?: React.ReactNode }) {\n return <>{children}</>;\n}\n\n// ── Advanced features (kept for API compat, rarely used) ─\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n onCheckedChange,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}) {\n const { onOpenChange } = useDropdownMenu();\n\n return (\n <div\n data-slot={'dropdown-menu-checkbox-item'}\n role={'menuitemcheckbox'}\n aria-checked={checked}\n className={cn(s['checkbox-item'], className)}\n onClick={() => {\n onCheckedChange?.(!checked);\n onOpenChange(false);\n }}\n {...props}\n >\n <span className={s.indicator}>\n {checked ? <CheckIcon className={s['checkbox-icon']} /> : null}\n </span>\n {children}\n </div>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div data-slot={'dropdown-menu-radio-group'} role={'group'} {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { value?: string }) {\n return (\n <div\n data-slot={'dropdown-menu-radio-item'}\n role={'menuitemradio'}\n className={cn(s['radio-item'], className)}\n {...props}\n >\n <span className={s.indicator}>\n <CircleIcon className={s['radio-icon']} />\n </span>\n {children}\n </div>\n );\n}\n\nfunction DropdownMenuSub({ children }: { children?: React.ReactNode }) {\n return <>{children}</>;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { inset?: boolean }) {\n return (\n <div\n data-slot={'dropdown-menu-sub-trigger'}\n data-inset={inset}\n className={cn(s['sub-trigger'], className)}\n {...props}\n >\n {children}\n <ChevronRightIcon className={s['sub-trigger-icon']} aria-hidden={'true'} />\n </div>\n );\n}\n\nfunction DropdownMenuSubContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot={'dropdown-menu-sub-content'}\n className={cn(s['dropdown-menu-sub-content'], className)}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":";;;;;;;;AAeA,MAAM,mBAAmB,GAAG,KAAK,CAAC,aAAa,CAAkC,IAAI,CAAC;AAEtF,SAAS,eAAe,GAAA;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACjD,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AACvF,IAAA,OAAO,GAAG;AACZ;AAWA,SAAS,YAAY,CAAC,EACpB,IAAI,EAAE,cAAc,EACpB,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,GACU,EAAA;AAClB,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnE,IAAA,MAAM,YAAY,GAAG,cAAc,KAAK,SAAS;IACjD,MAAM,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAqB,IAAI,CAAC;IAEzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CACxC,CAAC,IAAa,KAAI;AAChB,QAAA,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,IAAI,CAAC;AACxC,QAAA,YAAY,GAAG,IAAI,CAAC;AACtB,IAAA,CAAC,EACD,CAAC,YAAY,EAAE,YAAY,CAAC,CAC7B;IAED,QACEA,IAAC,mBAAmB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAA,QAAA,EACtF,QAAQ,EAAA,CACoB;AAEnC;AAQA,SAAS,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAA4B,EAAA;IAC7F,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE;AAE5D,IAAA,MAAM,WAAW,GAAG,CAAC,CAAsC,KAAI;AAC7D,QAAA,OAAO,GAAG,CAAC,CAAC;AACZ,QAAA,YAAY,CAAC,CAAC,IAAI,CAAC;AACrB,IAAA,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC7C,QAAA,OAAO,KAAK,CAAC,YAAY,CAAC,QAAuD,EAAE;AACjF,YAAA,GAAG,EAAE,UAAU;AACf,YAAA,WAAW,EAAE,uBAAuB;AACpC,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,GAAG,KAAK;AACT,SAAA,CAAC;IACJ;AAEA,IAAA,QACEA,GAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,UAA0C,eACpC,uBAAuB,EAClC,OAAO,EAAE,WAAW,EAAA,GAChB,KAAK,YAER,QAAQ,EAAA,CACF;AAEb;AASA,SAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EACiB,EAAA;IACzB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE;AAC5D,IAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;AAC5D,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzD,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,EAAE,CAAC;AACvE,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAmB,QAAQ,CAAC;;AAGlF,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,OAAO;YAAE,aAAa,CAAC,KAAK,CAAC;AACpC,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;QAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAE;AAC/D,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,iBAAuC;AAC7E,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;YAAE;AAEhC,QAAA,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,UAAU;AACxE,QAAA,MAAM,SAAS,GAAG,WAAW,IAAI,aAAa;QAE9C,MAAM,GAAG,GAAG;AACV,cAAE,WAAW,CAAC,MAAM,GAAG;cACrB,WAAW,CAAC,GAAG,GAAG,aAAa,GAAG,UAAU;AAEhD,QAAA,IAAI,IAAY;AAEhB,QAAA,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW;QAClD;AAAO,aAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,IAAI,CAAC;QAC3E;aAAO;AACL,YAAA,IAAI,GAAG,WAAW,CAAC,IAAI;QACzB;AAEA,QAAA,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACzD,eAAe,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC7C,aAAa,CAAC,IAAI,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;;IAGnC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAClC,CAAC,IAA2B,KAAI;AAC7B,QAAA,UAA4D,CAAC,OAAO,GAAG,IAAI;QAC5E,IAAI,IAAI,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE;AACzC,YAAA,YAAY,EAAE;QAChB;IACF,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CACpC;;AAGD,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACrD,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC/C,QAAA,OAAO,MAAK;YACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACxD,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACpD,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;;AAG3B,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,kBAAkB,GAAG,CAAC,CAAa,KAAI;AAC3C,YAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAc;AAC/B,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE;AAC1C,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE;YAC1C,YAAY,CAAC,KAAK,CAAC;AACrB,QAAA,CAAC;;;AAID,QAAA,MAAM,YAAY,GAAG,CAAC,CAAgB,KAAI;AACxC,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACtB,CAAC,CAAC,cAAc,EAAE;gBAClB,YAAY,CAAC,KAAK,CAAC;YACrB;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC1D,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;AAClD,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC7D,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACvD,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAEpC,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAEzB,IAAA,OAAO,YAAY,CACjBA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,UAAU,EACf,KAAK,EACH,UAAU,IAAI,KAAK,KAAK;AACtB,cAAE;cACA,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAA,QAAA,EAG7DA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACa,uBAAuB,EAAA,YAAA,EACtB,KAAK,KAAK,MAAM,GAAG,SAAS,GAAG,KAAK,eACrC,YAAY,EACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,SAAS,CAAC,EAAA,GAChD,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,EAAA,CACF,EACN,QAAQ,CAAC,IAAI,CACd;AACH;AAcA,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAK,EACL,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACc,EAAA;AACtB,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE;AAE1C,IAAA,MAAM,WAAW,GAAG,CAAC,CAAmC,KAAI;AAC1D,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,OAAO,GAAG,CAAC,CAAC;AACZ,QAAA,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;QACzB,YAAY,CAAC,KAAK,CAAC;AACrB,IAAA,CAAC;IAED,QACEA,0BACa,oBAAoB,EAAA,YAAA,EACnB,KAAK,EAAA,cAAA,EACH,OAAO,EAAA,eAAA,EACN,QAAQ,IAAI,SAAS,EACpC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,eAAA,EACZ,QAAQ,EACvB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,EACjD,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtC,CAAC,CAAC,cAAc,EAAE;gBAClB,WAAW,CAAC,CAAgD,CAAC;YAC/D;AACF,QAAA,CAAC,KACG,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL;AAEV;AAEA;AAEA,SAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAwC,EAAA;IAC3E,OAAOA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EAAgB,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAA,GAAM,KAAK,EAAA,CAAI;AAC5E;AAEA;AAEA,SAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACmD,EAAA;IAC3D,QACEA,0BACa,qBAAqB,EAAA,YAAA,EACpB,KAAK,EACjB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,EAAA,GACrC,KAAK,EAAA,CACT;AAEN;AAEA;AAEA,SAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,EAAA;IAC1F,QACEA,0BACa,yBAAyB,EACpC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,EAAA,GACzC,KAAK,EAAA,CACT;AAEN;AAEA;AAEA,SAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC,EAAA;AACjF,IAAA,QACEA,GAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EACa,wBAAwB,EACnC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,KACxC,KAAK,EAAA,CACT;AAEN;AAEA;AAEA,SAAS,kBAAkB,CAAC,EAAE,QAAQ,EAAkC,EAAA;IACtE,OAAOA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAI;AACxB;AAEA;AAEA,SAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,EACf,GAAG,KAAK,EAIT,EAAA;AACC,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE;IAE1C,QACEC,IAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACa,6BAA6B,EACxC,IAAI,EAAE,kBAAkB,EAAA,cAAA,EACV,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,EAC5C,OAAO,EAAE,MAAK;AACZ,YAAA,eAAe,GAAG,CAAC,OAAO,CAAC;YAC3B,YAAY,CAAC,KAAK,CAAC;AACrB,QAAA,CAAC,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAC,CAAC,SAAS,EAAA,QAAA,EACzB,OAAO,GAAGA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,EAAA,CAAI,GAAG,IAAI,EAAA,CACzD,EACN,QAAQ,CAAA,EAAA,CACL;AAEV;AAEA,SAAS,sBAAsB,CAAC,EAAE,GAAG,KAAK,EAAwC,EAAA;IAChF,OAAOA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EAAgB,2BAA2B,EAAE,IAAI,EAAE,OAAO,EAAA,GAAM,KAAK,EAAA,CAAI;AAClF;AAEA,SAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACkD,EAAA;IAC1D,QACEE,2BACa,0BAA0B,EACrC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,KACrC,KAAK,EAAA,QAAA,EAAA,CAETF,cAAM,SAAS,EAAE,CAAC,CAAC,SAAS,YAC1BA,GAAA,CAAC,UAAU,IAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAAA,CAAI,EAAA,CACrC,EACN,QAAQ,CAAA,EAAA,CACL;AAEV;AAEA,SAAS,eAAe,CAAC,EAAE,QAAQ,EAAkC,EAAA;IACnE,OAAOA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAI;AACxB;AAEA,SAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACmD,EAAA;AAC3D,IAAA,QACEC,IAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACa,2BAA2B,EAAA,YAAA,EAC1B,KAAK,EACjB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,EAAA,GACtC,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTF,GAAA,CAAC,gBAAgB,EAAA,EAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAA,aAAA,EAAe,MAAM,EAAA,CAAI,CAAA,EAAA,CACvE;AAEV;AAEA,SAAS,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,EAAA;AAC3F,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EACa,2BAA2B,EACtC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,SAAS,CAAC,KACpD,KAAK,EAAA,CACT;AAEN;;"}
@@ -0,0 +1,4 @@
1
+ var s = {"dropdown-menu-sub-content":"dropdown-menu-module_dropdown-menu-sub-content__5kUMN","dropdown-menu-content":"dropdown-menu-module_dropdown-menu-content__ohtil","sub-trigger":"dropdown-menu-module_sub-trigger__NzXLr","radio-item":"dropdown-menu-module_radio-item__OeGIw","checkbox-item":"dropdown-menu-module_checkbox-item__KBp7w","dropdown-menu-item":"dropdown-menu-module_dropdown-menu-item__kIm8T","sub-trigger-icon":"dropdown-menu-module_sub-trigger-icon__Uxu1O","indicator":"dropdown-menu-module_indicator__WZHJr","checkbox-icon":"dropdown-menu-module_checkbox-icon__ve5VF","radio-icon":"dropdown-menu-module_radio-icon__LrChc","menu-label":"dropdown-menu-module_menu-label__9vSql","menu-separator":"dropdown-menu-module_menu-separator__TTe-B","menu-shortcut":"dropdown-menu-module_menu-shortcut__mECIE"};
2
+
3
+ export { s as default };
4
+ //# sourceMappingURL=dropdown-menu.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,2 @@
1
+ export * from './dropdown-menu';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/DropdownMenu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './link';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/Link/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const linkVariants: (props?: ({
2
+ underline?: boolean | null | undefined;
3
+ hover?: "none" | "default" | null | undefined;
4
+ theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ //# sourceMappingURL=link-variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-variants.d.ts","sourceRoot":"","sources":["../../../src/navigation/Link/link-variants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;8EA0BvB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { cva } from 'class-variance-authority';
2
+ import s from './link.module.scss.js';
3
+
4
+ const linkVariants = cva(s.link, {
5
+ variants: {
6
+ underline: {
7
+ true: s['link--underline'],
8
+ false: s['link--no-underline'],
9
+ },
10
+ hover: {
11
+ default: undefined,
12
+ none: s['link--hover-none'],
13
+ },
14
+ theme: {
15
+ primary: s['link--primary'],
16
+ secondary: s['link--secondary'],
17
+ info: s['link--info'],
18
+ success: s['link--success'],
19
+ warning: s['link--warning'],
20
+ destructive: s['link--destructive'],
21
+ slate: s['link--slate'],
22
+ inherit: s['link--inherit'],
23
+ },
24
+ },
25
+ defaultVariants: {
26
+ underline: true,
27
+ hover: 'default',
28
+ theme: 'primary',
29
+ },
30
+ });
31
+
32
+ export { linkVariants };
33
+ //# sourceMappingURL=link-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-variants.js","sources":["../../../src/navigation/Link/link-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport s from './link.module.scss';\n\nexport const linkVariants = cva(s.link, {\n variants: {\n underline: {\n true: s['link--underline'],\n false: s['link--no-underline'],\n },\n hover: {\n default: undefined,\n none: s['link--hover-none'],\n },\n theme: {\n primary: s['link--primary'],\n secondary: s['link--secondary'],\n info: s['link--info'],\n success: s['link--success'],\n warning: s['link--warning'],\n destructive: s['link--destructive'],\n slate: s['link--slate'],\n inherit: s['link--inherit'],\n },\n },\n defaultVariants: {\n underline: true,\n hover: 'default',\n theme: 'primary',\n },\n});\n"],"names":[],"mappings":";;;MAGa,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AACtC,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC;AAC1B,YAAA,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC;AAC/B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC;AAC5B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;AACrB,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,WAAW,EAAE,CAAC,CAAC,mBAAmB,CAAC;AACnC,YAAA,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;AACvB,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC5B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA;;"}
@@ -0,0 +1,24 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ import { linkVariants } from './link-variants';
4
+ export interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'>, VariantProps<typeof linkVariants> {
5
+ href: string;
6
+ /**
7
+ * Force a plain `<a>` instead of the router's link component. Auto-detected
8
+ * for `mailto:`, `tel:`, `#` and cross-origin URLs.
9
+ */
10
+ external?: boolean;
11
+ /** Override the element for this link only; defaults to the router adapter's. */
12
+ as?: React.ElementType;
13
+ onClick?: (event: React.MouseEvent) => void;
14
+ }
15
+ /**
16
+ * Styled anchor. Renders the router adapter's link component for in-app hrefs
17
+ * and a plain `<a>` for external ones, so the same component works whether or
18
+ * not a router is configured. Unknown props pass straight through to the
19
+ * underlying element — that is how router-specific options (`prefetch`,
20
+ * `replace`, `preserveScroll`, …) reach the real link.
21
+ */
22
+ declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
23
+ export { Link };
24
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/navigation/Link/link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,SACf,SACE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,EAC9D,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC7C;AAID;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,qFA6CT,CAAC;AAIF,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useRouterAdapter } from '../Router/router-context.js';
3
+ import cn from 'clsx';
4
+ import * as React from 'react';
5
+ import { linkVariants } from './link-variants.js';
6
+
7
+ const externalPattern = /^(https?:\/\/|mailto:|tel:|#)/;
8
+ /**
9
+ * Styled anchor. Renders the router adapter's link component for in-app hrefs
10
+ * and a plain `<a>` for external ones, so the same component works whether or
11
+ * not a router is configured. Unknown props pass straight through to the
12
+ * underlying element — that is how router-specific options (`prefetch`,
13
+ * `replace`, `preserveScroll`, …) reach the real link.
14
+ */
15
+ const Link = React.forwardRef(({ className, theme, underline, hover, href, onClick, external, as: asEl, ...rest }, ref) => {
16
+ const { linkComponent } = useRouterAdapter();
17
+ const classes = cn(linkVariants({ theme, underline, hover }), className);
18
+ const hrefStr = typeof href === 'string' ? href : '';
19
+ const isSameOrigin = typeof window !== 'undefined' &&
20
+ /^https?:\/\//.test(hrefStr) &&
21
+ new URL(hrefStr, window.location.origin).origin === window.location.origin;
22
+ const isNative = external ?? (externalPattern.test(hrefStr) && !isSameOrigin);
23
+ const isHashLink = hrefStr.startsWith('#');
24
+ // In-page anchors scroll smoothly rather than jumping, and update the URL
25
+ // without pushing a history entry per click.
26
+ const handleHashClick = (event) => {
27
+ onClick?.(event);
28
+ if (event.defaultPrevented)
29
+ return;
30
+ event.preventDefault();
31
+ const targetId = hrefStr.slice(1);
32
+ if (!targetId)
33
+ return;
34
+ const target = document.getElementById(targetId);
35
+ if (target) {
36
+ target.scrollIntoView({ behavior: 'smooth', block: 'start' });
37
+ window.history.replaceState(null, '', hrefStr);
38
+ }
39
+ else {
40
+ window.location.hash = hrefStr;
41
+ }
42
+ };
43
+ const Component = asEl ?? (isNative ? 'a' : linkComponent);
44
+ return (jsx(Component, { "data-slot": 'link', ref: ref, className: classes, href: hrefStr, onClick: isHashLink ? handleHashClick : onClick, ...rest }));
45
+ });
46
+ Link.displayName = 'Link';
47
+
48
+ export { Link };
49
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sources":["../../../src/navigation/Link/link.tsx"],"sourcesContent":["import { useRouterAdapter } from '@constellation/navigation/Router';\nimport { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport { linkVariants } from './link-variants';\n\nexport interface LinkProps\n extends\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'>,\n VariantProps<typeof linkVariants> {\n href: string;\n /**\n * Force a plain `<a>` instead of the router's link component. Auto-detected\n * for `mailto:`, `tel:`, `#` and cross-origin URLs.\n */\n external?: boolean;\n /** Override the element for this link only; defaults to the router adapter's. */\n as?: React.ElementType;\n onClick?: (event: React.MouseEvent) => void;\n}\n\nconst externalPattern = /^(https?:\\/\\/|mailto:|tel:|#)/;\n\n/**\n * Styled anchor. Renders the router adapter's link component for in-app hrefs\n * and a plain `<a>` for external ones, so the same component works whether or\n * not a router is configured. Unknown props pass straight through to the\n * underlying element — that is how router-specific options (`prefetch`,\n * `replace`, `preserveScroll`, …) reach the real link.\n */\nconst Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ className, theme, underline, hover, href, onClick, external, as: asEl, ...rest }, ref) => {\n const { linkComponent } = useRouterAdapter();\n const classes = cn(linkVariants({ theme, underline, hover }), className);\n const hrefStr = typeof href === 'string' ? href : '';\n\n const isSameOrigin =\n typeof window !== 'undefined' &&\n /^https?:\\/\\//.test(hrefStr) &&\n new URL(hrefStr, window.location.origin).origin === window.location.origin;\n const isNative = external ?? (externalPattern.test(hrefStr) && !isSameOrigin);\n const isHashLink = hrefStr.startsWith('#');\n\n // In-page anchors scroll smoothly rather than jumping, and update the URL\n // without pushing a history entry per click.\n const handleHashClick = (event: React.MouseEvent) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n\n event.preventDefault();\n const targetId = hrefStr.slice(1);\n if (!targetId) return;\n\n const target = document.getElementById(targetId);\n if (target) {\n target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n window.history.replaceState(null, '', hrefStr);\n } else {\n window.location.hash = hrefStr;\n }\n };\n\n const Component = asEl ?? (isNative ? 'a' : linkComponent);\n\n return (\n <Component\n data-slot={'link'}\n ref={ref}\n className={classes}\n href={hrefStr}\n onClick={isHashLink ? handleHashClick : onClick}\n {...rest}\n />\n );\n },\n);\n\nLink.displayName = 'Link';\n\nexport { Link };\n"],"names":["_jsx"],"mappings":";;;;;;AAqBA,MAAM,eAAe,GAAG,+BAA+B;AAEvD;;;;;;AAMG;AACH,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,KAAI;AAC1F,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE;AAC5C,IAAA,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC;AACxE,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,EAAE;AAEpD,IAAA,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,WAAW;AAC7B,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;AAC5E,IAAA,MAAM,QAAQ,GAAG,QAAQ,KAAK,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;;;AAI1C,IAAA,MAAM,eAAe,GAAG,CAAC,KAAuB,KAAI;AAClD,QAAA,OAAO,GAAG,KAAK,CAAC;QAChB,IAAI,KAAK,CAAC,gBAAgB;YAAE;QAE5B,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ;YAAE;QAEf,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAChD,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;QAChD;aAAO;AACL,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO;QAChC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,GAAG,GAAG,GAAG,aAAa,CAAC;AAE1D,IAAA,QACEA,GAAA,CAAC,SAAS,EAAA,EAAA,WAAA,EACG,MAAM,EACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,GAAG,eAAe,GAAG,OAAO,EAAA,GAC3C,IAAI,EAAA,CACR;AAEN,CAAC;AAGH,IAAI,CAAC,WAAW,GAAG,MAAM;;"}
@@ -0,0 +1,4 @@
1
+ var s = {"link":"link-module_link__1pTSp","link--underline":"link-module_link--underline__nMLdV","link--no-underline":"link-module_link--no-underline__AInGK","link--hover-none":"link-module_link--hover-none__fSZ-4","link--primary":"link-module_link--primary__PYHBN","link--secondary":"link-module_link--secondary__cYoqq","link--info":"link-module_link--info__XHs2d","link--success":"link-module_link--success__47Yt-","link--warning":"link-module_link--warning__i-XUS","link--destructive":"link-module_link--destructive__HfPxz","link--inherit":"link-module_link--inherit__fNq6Z"};
2
+
3
+ export { s as default };
4
+ //# sourceMappingURL=link.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,2 @@
1
+ export * from './nav-user';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/NavUser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type User } from '@constellation/types';
2
+ import { type UserMenuContentProps } from '@constellation/user';
3
+ export interface NavUserProps extends Omit<UserMenuContentProps, 'user'> {
4
+ user: User;
5
+ }
6
+ /** Sidebar footer control: the signed-in user plus their account menu. */
7
+ export declare function NavUser({ user, ...menuProps }: NavUserProps): import("react").JSX.Element;
8
+ //# sourceMappingURL=nav-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-user.d.ts","sourceRoot":"","sources":["../../../src/navigation/NavUser/nav-user.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3F,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtE,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,YAAY,+BAc3D"}
@@ -0,0 +1,15 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { SidebarMenuButton } from '../../layout/Sidebar/sidebar.js';
3
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from '../DropdownMenu/dropdown-menu.js';
4
+ import { ChevronsUpDownIcon } from 'lucide-react';
5
+ import s from './nav-user.module.scss.js';
6
+ import { UserInfo } from '../../user/UserInfo/user-info.js';
7
+ import { UserMenuContent } from '../../user/UserMenuContent/user-menu-content.js';
8
+
9
+ /** Sidebar footer control: the signed-in user plus their account menu. */
10
+ function NavUser({ user, ...menuProps }) {
11
+ return (jsxs(DropdownMenu, { "data-slot": 'nav-user', children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsxs(SidebarMenuButton, { size: 'lg', className: s['nav-user-button'], children: [jsx(UserInfo, { user: user }), jsx(ChevronsUpDownIcon, { className: s['chevron-icon'] })] }) }), jsx(DropdownMenuContent, { className: s['dropdown-content'], align: 'end', children: jsx(UserMenuContent, { user: user, ...menuProps }) })] }));
12
+ }
13
+
14
+ export { NavUser };
15
+ //# sourceMappingURL=nav-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-user.js","sources":["../../../src/navigation/NavUser/nav-user.tsx"],"sourcesContent":["import { SidebarMenuButton } from '@constellation/layout/Sidebar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from '@constellation/navigation/DropdownMenu';\nimport { type User } from '@constellation/types';\nimport { UserInfo, UserMenuContent, type UserMenuContentProps } from '@constellation/user';\nimport { ChevronsUpDownIcon } from 'lucide-react';\nimport s from './nav-user.module.scss';\n\nexport interface NavUserProps extends Omit<UserMenuContentProps, 'user'> {\n user: User;\n}\n\n/** Sidebar footer control: the signed-in user plus their account menu. */\nexport function NavUser({ user, ...menuProps }: NavUserProps) {\n return (\n <DropdownMenu data-slot={'nav-user'}>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton size={'lg'} className={s['nav-user-button']}>\n <UserInfo user={user} />\n <ChevronsUpDownIcon className={s['chevron-icon']} />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent className={s['dropdown-content']} align={'end'}>\n <UserMenuContent user={user} {...menuProps} />\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAeA;AACM,SAAU,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,EAAgB,EAAA;AAC1D,IAAA,QACEA,IAAA,CAAC,YAAY,EAAA,EAAA,WAAA,EAAY,UAAU,EAAA,QAAA,EAAA,CACjCC,GAAA,CAAC,mBAAmB,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC1BD,IAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,CAC5DC,GAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,CAAI,EACxBA,IAAC,kBAAkB,EAAA,EAAC,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,GAAI,CAAA,EAAA,CAClC,EAAA,CACA,EACtBA,GAAA,CAAC,mBAAmB,EAAA,EAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAA,QAAA,EACjEA,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,IAAI,KAAM,SAAS,EAAA,CAAI,EAAA,CAC1B,CAAA,EAAA,CACT;AAEnB;;"}
@@ -0,0 +1,4 @@
1
+ var s = {"nav-user-button":"nav-user-module_nav-user-button__A4kl-","chevron-icon":"nav-user-module_chevron-icon__AukYn","dropdown-content":"nav-user-module_dropdown-content__Dn7GM"};
2
+
3
+ export { s as default };
4
+ //# sourceMappingURL=nav-user.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-user.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,2 @@
1
+ export * from './router-context';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/Router/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ export interface RouterAdapter {
3
+ /**
4
+ * Component used to render in-app links. Receives `href` plus any props
5
+ * passed through `Link`. Defaults to a plain `<a>`.
6
+ */
7
+ linkComponent: React.ElementType;
8
+ /** Programmatic navigation. Defaults to a full page load. */
9
+ navigate: (href: string, options?: {
10
+ replace?: boolean;
11
+ }) => void;
12
+ }
13
+ /**
14
+ * Teaches Constellation how *your* app navigates.
15
+ *
16
+ * The library ships router-agnostic: without a provider, links are plain
17
+ * anchors and navigation is a full page load, which is correct (if not
18
+ * SPA-fast) everywhere. Wrap your app once to upgrade every Constellation link,
19
+ * breadcrumb, sidebar item, and menu action to your router at the same time.
20
+ *
21
+ * @example React Router
22
+ * ```tsx
23
+ * import { Link, useNavigate } from 'react-router-dom';
24
+ *
25
+ * const navigate = useNavigate();
26
+ * <RouterProvider linkComponent={Link} navigate={navigate}>…</RouterProvider>
27
+ * ```
28
+ *
29
+ * @example Next.js
30
+ * ```tsx
31
+ * <RouterProvider linkComponent={NextLink} navigate={router.push}>…</RouterProvider>
32
+ * ```
33
+ */
34
+ export declare function RouterProvider({ linkComponent, navigate, children, }: Partial<RouterAdapter> & {
35
+ children: React.ReactNode;
36
+ }): React.JSX.Element;
37
+ export declare function useRouterAdapter(): RouterAdapter;
38
+ //# sourceMappingURL=router-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-context.d.ts","sourceRoot":"","sources":["../../../src/navigation/Router/router-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACnE;AAaD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAUxD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}