@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.
- package/LICENSE +21 -0
- package/README.md +170 -0
- package/dist/brand/Logo/index.d.ts +2 -0
- package/dist/brand/Logo/index.d.ts.map +1 -0
- package/dist/brand/Logo/logo.d.ts +23 -0
- package/dist/brand/Logo/logo.d.ts.map +1 -0
- package/dist/brand/Logo/logo.js +28 -0
- package/dist/brand/Logo/logo.js.map +1 -0
- package/dist/brand/Logo/logo.module.scss.js +4 -0
- package/dist/brand/Logo/logo.module.scss.js.map +1 -0
- package/dist/brand/index.d.ts +2 -0
- package/dist/brand/index.d.ts.map +1 -0
- package/dist/brand.d.ts +25 -0
- package/dist/brand.js +2 -0
- package/dist/brand.js.map +1 -0
- package/dist/form/Checkbox/checkbox.d.ts +20 -0
- package/dist/form/Checkbox/checkbox.d.ts.map +1 -0
- package/dist/form/Checkbox/checkbox.js +57 -0
- package/dist/form/Checkbox/checkbox.js.map +1 -0
- package/dist/form/Checkbox/checkbox.module.scss.js +4 -0
- package/dist/form/Checkbox/checkbox.module.scss.js.map +1 -0
- package/dist/form/Checkbox/index.d.ts +2 -0
- package/dist/form/Checkbox/index.d.ts.map +1 -0
- package/dist/form/DatePicker/date-picker.d.ts +5 -0
- package/dist/form/DatePicker/date-picker.d.ts.map +1 -0
- package/dist/form/DatePicker/date-picker.js +251 -0
- package/dist/form/DatePicker/date-picker.js.map +1 -0
- package/dist/form/DatePicker/date-picker.module.scss.js +4 -0
- package/dist/form/DatePicker/date-picker.module.scss.js.map +1 -0
- package/dist/form/DatePicker/index.d.ts +2 -0
- package/dist/form/DatePicker/index.d.ts.map +1 -0
- package/dist/form/DatePicker/use-calendar.d.ts +40 -0
- package/dist/form/DatePicker/use-calendar.d.ts.map +1 -0
- package/dist/form/DatePicker/use-calendar.js +202 -0
- package/dist/form/DatePicker/use-calendar.js.map +1 -0
- package/dist/form/Input/index.d.ts +2 -0
- package/dist/form/Input/index.d.ts.map +1 -0
- package/dist/form/Input/input.d.ts +23 -0
- package/dist/form/Input/input.d.ts.map +1 -0
- package/dist/form/Input/input.js +24 -0
- package/dist/form/Input/input.js.map +1 -0
- package/dist/form/Input/input.module.scss.js +4 -0
- package/dist/form/Input/input.module.scss.js.map +1 -0
- package/dist/form/Label/index.d.ts +2 -0
- package/dist/form/Label/index.d.ts.map +1 -0
- package/dist/form/Label/label-variants.d.ts +5 -0
- package/dist/form/Label/label-variants.d.ts.map +1 -0
- package/dist/form/Label/label-variants.js +29 -0
- package/dist/form/Label/label-variants.js.map +1 -0
- package/dist/form/Label/label.d.ts +10 -0
- package/dist/form/Label/label.d.ts.map +1 -0
- package/dist/form/Label/label.js +13 -0
- package/dist/form/Label/label.js.map +1 -0
- package/dist/form/Label/label.module.scss.js +4 -0
- package/dist/form/Label/label.module.scss.js.map +1 -0
- package/dist/form/Select/index.d.ts +2 -0
- package/dist/form/Select/index.d.ts.map +1 -0
- package/dist/form/Select/select.d.ts +16 -0
- package/dist/form/Select/select.d.ts.map +1 -0
- package/dist/form/Select/select.js +857 -0
- package/dist/form/Select/select.js.map +1 -0
- package/dist/form/Select/select.module.scss.js +4 -0
- package/dist/form/Select/select.module.scss.js.map +1 -0
- package/dist/form/index.d.ts +6 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form.d.ts +5 -0
- package/dist/form.js +6 -0
- package/dist/form.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/layout/index.d.ts +2 -0
- package/dist/hooks/layout/index.d.ts.map +1 -0
- package/dist/hooks/layout/use-sidebar.d.ts +3 -0
- package/dist/hooks/layout/use-sidebar.d.ts.map +1 -0
- package/dist/hooks/layout/use-sidebar.js +13 -0
- package/dist/hooks/layout/use-sidebar.js.map +1 -0
- package/dist/hooks/ui/index.d.ts +3 -0
- package/dist/hooks/ui/index.d.ts.map +1 -0
- package/dist/hooks/ui/use-alerts.d.ts +3 -0
- package/dist/hooks/ui/use-alerts.d.ts.map +1 -0
- package/dist/hooks/ui/use-alerts.js +13 -0
- package/dist/hooks/ui/use-alerts.js.map +1 -0
- package/dist/hooks/ui/use-table-sorting.d.ts +6 -0
- package/dist/hooks/ui/use-table-sorting.d.ts.map +1 -0
- package/dist/hooks/ui/use-table-sorting.js +37 -0
- package/dist/hooks/ui/use-table-sorting.js.map +1 -0
- package/dist/hooks/use-appearance.d.ts +10 -0
- package/dist/hooks/use-appearance.d.ts.map +1 -0
- package/dist/hooks/use-appearance.js +123 -0
- package/dist/hooks/use-appearance.js.map +1 -0
- package/dist/hooks/use-initials.d.ts +2 -0
- package/dist/hooks/use-initials.d.ts.map +1 -0
- package/dist/hooks/use-initials.js +17 -0
- package/dist/hooks/use-initials.js.map +1 -0
- package/dist/hooks/use-mobile-navigation.d.ts +2 -0
- package/dist/hooks/use-mobile-navigation.d.ts.map +1 -0
- package/dist/hooks/use-mobile-navigation.js +11 -0
- package/dist/hooks/use-mobile-navigation.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +6 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +73 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/index-Bzf20Rpc.d.ts +120 -0
- package/dist/index-DECPicJT.d.ts +450 -0
- package/dist/index-qbk6vH0X.d.ts +186 -0
- package/dist/index.css +7611 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/input-CWHXOpeH.d.ts +25 -0
- package/dist/internal/create-ripple.d.ts +8 -0
- package/dist/internal/create-ripple.d.ts.map +1 -0
- package/dist/internal/create-ripple.js +24 -0
- package/dist/internal/create-ripple.js.map +1 -0
- package/dist/internal/merge-refs.d.ts +3 -0
- package/dist/internal/merge-refs.d.ts.map +1 -0
- package/dist/internal/merge-refs.js +15 -0
- package/dist/internal/merge-refs.js.map +1 -0
- package/dist/internal/slot.d.ts +7 -0
- package/dist/internal/slot.d.ts.map +1 -0
- package/dist/internal/slot.js +42 -0
- package/dist/internal/slot.js.map +1 -0
- package/dist/internal/use-animation-state.d.ts +12 -0
- package/dist/internal/use-animation-state.d.ts.map +1 -0
- package/dist/internal/use-animation-state.js +36 -0
- package/dist/internal/use-animation-state.js.map +1 -0
- package/dist/internal/use-focus-trap.d.ts +3 -0
- package/dist/internal/use-focus-trap.d.ts.map +1 -0
- package/dist/internal/use-focus-trap.js +55 -0
- package/dist/internal/use-focus-trap.js.map +1 -0
- package/dist/internal/use-scroll-lock.d.ts +2 -0
- package/dist/internal/use-scroll-lock.d.ts.map +1 -0
- package/dist/internal/use-scroll-lock.js +22 -0
- package/dist/internal/use-scroll-lock.js.map +1 -0
- package/dist/internal/with-aria-hidden-children.d.ts +16 -0
- package/dist/internal/with-aria-hidden-children.d.ts.map +1 -0
- package/dist/internal/with-aria-hidden-children.js +29 -0
- package/dist/internal/with-aria-hidden-children.js.map +1 -0
- package/dist/layout/AppContent/app-content.d.ts +3 -0
- package/dist/layout/AppContent/app-content.d.ts.map +1 -0
- package/dist/layout/AppContent/app-content.js +11 -0
- package/dist/layout/AppContent/app-content.js.map +1 -0
- package/dist/layout/AppContent/app-content.module.scss.js +4 -0
- package/dist/layout/AppContent/app-content.module.scss.js.map +1 -0
- package/dist/layout/AppContent/index.d.ts +2 -0
- package/dist/layout/AppContent/index.d.ts.map +1 -0
- package/dist/layout/AppFooter/app-footer.d.ts +10 -0
- package/dist/layout/AppFooter/app-footer.d.ts.map +1 -0
- package/dist/layout/AppFooter/app-footer.js +19 -0
- package/dist/layout/AppFooter/app-footer.js.map +1 -0
- package/dist/layout/AppFooter/app-footer.module.scss.js +4 -0
- package/dist/layout/AppFooter/app-footer.module.scss.js.map +1 -0
- package/dist/layout/AppFooter/index.d.ts +2 -0
- package/dist/layout/AppFooter/index.d.ts.map +1 -0
- package/dist/layout/AppShell/app-shell.d.ts +11 -0
- package/dist/layout/AppShell/app-shell.d.ts.map +1 -0
- package/dist/layout/AppShell/app-shell.js +9 -0
- package/dist/layout/AppShell/app-shell.js.map +1 -0
- package/dist/layout/AppShell/index.d.ts +2 -0
- package/dist/layout/AppShell/index.d.ts.map +1 -0
- package/dist/layout/AppSidebar/app-sidebar.d.ts +14 -0
- package/dist/layout/AppSidebar/app-sidebar.d.ts.map +1 -0
- package/dist/layout/AppSidebar/app-sidebar.js +71 -0
- package/dist/layout/AppSidebar/app-sidebar.js.map +1 -0
- package/dist/layout/AppSidebar/index.d.ts +2 -0
- package/dist/layout/AppSidebar/index.d.ts.map +1 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts +13 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.d.ts.map +1 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js +20 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js +4 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js.map +1 -0
- package/dist/layout/AppSidebarHeader/index.d.ts +2 -0
- package/dist/layout/AppSidebarHeader/index.d.ts.map +1 -0
- package/dist/layout/Collapse/collapse.d.ts +8 -0
- package/dist/layout/Collapse/collapse.d.ts.map +1 -0
- package/dist/layout/Collapse/collapse.js +14 -0
- package/dist/layout/Collapse/collapse.js.map +1 -0
- package/dist/layout/Collapse/collapse.module.scss.js +4 -0
- package/dist/layout/Collapse/collapse.module.scss.js.map +1 -0
- package/dist/layout/Collapse/index.d.ts +2 -0
- package/dist/layout/Collapse/index.d.ts.map +1 -0
- package/dist/layout/Column/column.d.ts +4 -0
- package/dist/layout/Column/column.d.ts.map +1 -0
- package/dist/layout/Column/column.js +14 -0
- package/dist/layout/Column/column.js.map +1 -0
- package/dist/layout/Column/column.module.scss.js +4 -0
- package/dist/layout/Column/column.module.scss.js.map +1 -0
- package/dist/layout/Column/index.d.ts +3 -0
- package/dist/layout/Column/index.d.ts.map +1 -0
- package/dist/layout/Container/container.d.ts +4 -0
- package/dist/layout/Container/container.d.ts.map +1 -0
- package/dist/layout/Container/container.js +35 -0
- package/dist/layout/Container/container.js.map +1 -0
- package/dist/layout/Container/container.module.scss.js +4 -0
- package/dist/layout/Container/container.module.scss.js.map +1 -0
- package/dist/layout/Container/index.d.ts +2 -0
- package/dist/layout/Container/index.d.ts.map +1 -0
- package/dist/layout/Grid/grid.d.ts +5 -0
- package/dist/layout/Grid/grid.d.ts.map +1 -0
- package/dist/layout/Grid/grid.js +15 -0
- package/dist/layout/Grid/grid.js.map +1 -0
- package/dist/layout/Grid/grid.module.scss.js +4 -0
- package/dist/layout/Grid/grid.module.scss.js.map +1 -0
- package/dist/layout/Grid/index.d.ts +2 -0
- package/dist/layout/Grid/index.d.ts.map +1 -0
- package/dist/layout/Row/index.d.ts +3 -0
- package/dist/layout/Row/index.d.ts.map +1 -0
- package/dist/layout/Row/row.d.ts +4 -0
- package/dist/layout/Row/row.d.ts.map +1 -0
- package/dist/layout/Row/row.js +19 -0
- package/dist/layout/Row/row.js.map +1 -0
- package/dist/layout/Row/row.module.scss.js +4 -0
- package/dist/layout/Row/row.module.scss.js.map +1 -0
- package/dist/layout/Sidebar/index.d.ts +2 -0
- package/dist/layout/Sidebar/index.d.ts.map +1 -0
- package/dist/layout/Sidebar/sidebar-context.d.ts +4 -0
- package/dist/layout/Sidebar/sidebar-context.d.ts.map +1 -0
- package/dist/layout/Sidebar/sidebar-context.js +6 -0
- package/dist/layout/Sidebar/sidebar-context.js.map +1 -0
- package/dist/layout/Sidebar/sidebar-variants.d.ts +5 -0
- package/dist/layout/Sidebar/sidebar-variants.d.ts.map +1 -0
- package/dist/layout/Sidebar/sidebar-variants.js +23 -0
- package/dist/layout/Sidebar/sidebar-variants.js.map +1 -0
- package/dist/layout/Sidebar/sidebar.d.ts +57 -0
- package/dist/layout/Sidebar/sidebar.d.ts.map +1 -0
- package/dist/layout/Sidebar/sidebar.js +200 -0
- package/dist/layout/Sidebar/sidebar.js.map +1 -0
- package/dist/layout/Sidebar/sidebar.module.scss.js +4 -0
- package/dist/layout/Sidebar/sidebar.module.scss.js.map +1 -0
- package/dist/layout/Skeleton/index.d.ts +2 -0
- package/dist/layout/Skeleton/index.d.ts.map +1 -0
- package/dist/layout/Skeleton/skeleton.d.ts +3 -0
- package/dist/layout/Skeleton/skeleton.d.ts.map +1 -0
- package/dist/layout/Skeleton/skeleton.js +10 -0
- package/dist/layout/Skeleton/skeleton.js.map +1 -0
- package/dist/layout/Skeleton/skeleton.module.scss.js +4 -0
- package/dist/layout/Skeleton/skeleton.module.scss.js.map +1 -0
- package/dist/layout/index.d.ts +13 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout.d.ts +10 -0
- package/dist/layout.js +13 -0
- package/dist/layout.js.map +1 -0
- package/dist/nav-user-CJIcWKyY.d.ts +41 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts +7 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.js +19 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.js.map +1 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js +4 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js.map +1 -0
- package/dist/navigation/Breadcrumbs/index.d.ts +2 -0
- package/dist/navigation/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.d.ts +50 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.d.ts.map +1 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.js +193 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.js.map +1 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js +4 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js.map +1 -0
- package/dist/navigation/DropdownMenu/index.d.ts +2 -0
- package/dist/navigation/DropdownMenu/index.d.ts.map +1 -0
- package/dist/navigation/Link/index.d.ts +2 -0
- package/dist/navigation/Link/index.d.ts.map +1 -0
- package/dist/navigation/Link/link-variants.d.ts +6 -0
- package/dist/navigation/Link/link-variants.d.ts.map +1 -0
- package/dist/navigation/Link/link-variants.js +33 -0
- package/dist/navigation/Link/link-variants.js.map +1 -0
- package/dist/navigation/Link/link.d.ts +24 -0
- package/dist/navigation/Link/link.d.ts.map +1 -0
- package/dist/navigation/Link/link.js +49 -0
- package/dist/navigation/Link/link.js.map +1 -0
- package/dist/navigation/Link/link.module.scss.js +4 -0
- package/dist/navigation/Link/link.module.scss.js.map +1 -0
- package/dist/navigation/NavUser/index.d.ts +2 -0
- package/dist/navigation/NavUser/index.d.ts.map +1 -0
- package/dist/navigation/NavUser/nav-user.d.ts +8 -0
- package/dist/navigation/NavUser/nav-user.d.ts.map +1 -0
- package/dist/navigation/NavUser/nav-user.js +15 -0
- package/dist/navigation/NavUser/nav-user.js.map +1 -0
- package/dist/navigation/NavUser/nav-user.module.scss.js +4 -0
- package/dist/navigation/NavUser/nav-user.module.scss.js.map +1 -0
- package/dist/navigation/Router/index.d.ts +2 -0
- package/dist/navigation/Router/index.d.ts.map +1 -0
- package/dist/navigation/Router/router-context.d.ts +38 -0
- package/dist/navigation/Router/router-context.d.ts.map +1 -0
- package/dist/navigation/Router/router-context.js +49 -0
- package/dist/navigation/Router/router-context.js.map +1 -0
- package/dist/navigation/Sheet/index.d.ts +2 -0
- package/dist/navigation/Sheet/index.d.ts.map +1 -0
- package/dist/navigation/Sheet/sheet.d.ts +36 -0
- package/dist/navigation/Sheet/sheet.d.ts.map +1 -0
- package/dist/navigation/Sheet/sheet.js +104 -0
- package/dist/navigation/Sheet/sheet.js.map +1 -0
- package/dist/navigation/Sheet/sheet.module.scss.js +4 -0
- package/dist/navigation/Sheet/sheet.module.scss.js.map +1 -0
- package/dist/navigation/index.d.ts +7 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation.d.ts +160 -0
- package/dist/navigation.js +7 -0
- package/dist/navigation.js.map +1 -0
- package/dist/row-CS9-talZ.d.ts +14 -0
- package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts +3 -0
- package/dist/settings/AppearanceDropdown/appearance-dropdown.d.ts.map +1 -0
- package/dist/settings/AppearanceDropdown/appearance-dropdown.js +27 -0
- package/dist/settings/AppearanceDropdown/appearance-dropdown.js.map +1 -0
- package/dist/settings/AppearanceDropdown/index.d.ts +2 -0
- package/dist/settings/AppearanceDropdown/index.d.ts.map +1 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.d.ts +7 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.d.ts.map +1 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.js +23 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js +4 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js.map +1 -0
- package/dist/settings/AppearanceTabs/index.d.ts +2 -0
- package/dist/settings/AppearanceTabs/index.d.ts.map +1 -0
- package/dist/settings/index.d.ts +3 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings.d.ts +10 -0
- package/dist/settings.js +3 -0
- package/dist/settings.js.map +1 -0
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/tooltip-XagXjWLB.d.ts +41 -0
- package/dist/types/app.d.ts +7 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/form/date-picker.d.ts +19 -0
- package/dist/types/form/date-picker.d.ts.map +1 -0
- package/dist/types/form/select.d.ts +52 -0
- package/dist/types/form/select.d.ts.map +1 -0
- package/dist/types/form/theme.d.ts +2 -0
- package/dist/types/form/theme.d.ts.map +1 -0
- package/dist/types/form/upload.d.ts +4 -0
- package/dist/types/form/upload.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/layout/column.d.ts +11 -0
- package/dist/types/layout/column.d.ts.map +1 -0
- package/dist/types/layout/container.d.ts +18 -0
- package/dist/types/layout/container.d.ts.map +1 -0
- package/dist/types/layout/grid.d.ts +23 -0
- package/dist/types/layout/grid.d.ts.map +1 -0
- package/dist/types/layout/row.d.ts +12 -0
- package/dist/types/layout/row.d.ts.map +1 -0
- package/dist/types/layout/sidebar.d.ts +14 -0
- package/dist/types/layout/sidebar.d.ts.map +1 -0
- package/dist/types/navigation.d.ts +30 -0
- package/dist/types/navigation.d.ts.map +1 -0
- package/dist/types/ui/alerts.d.ts +20 -0
- package/dist/types/ui/alerts.d.ts.map +1 -0
- package/dist/types/ui/pagination.d.ts +10 -0
- package/dist/types/ui/pagination.d.ts.map +1 -0
- package/dist/types/ui/table.d.ts +11 -0
- package/dist/types/ui/table.d.ts.map +1 -0
- package/dist/typography/Heading/heading.d.ts +21 -0
- package/dist/typography/Heading/heading.d.ts.map +1 -0
- package/dist/typography/Heading/heading.js +21 -0
- package/dist/typography/Heading/heading.js.map +1 -0
- package/dist/typography/Heading/heading.module.scss.js +4 -0
- package/dist/typography/Heading/heading.module.scss.js.map +1 -0
- package/dist/typography/Heading/index.d.ts +2 -0
- package/dist/typography/Heading/index.d.ts.map +1 -0
- package/dist/typography/TruncatedText/index.d.ts +2 -0
- package/dist/typography/TruncatedText/index.d.ts.map +1 -0
- package/dist/typography/TruncatedText/truncated-text.d.ts +15 -0
- package/dist/typography/TruncatedText/truncated-text.d.ts.map +1 -0
- package/dist/typography/TruncatedText/truncated-text.js +61 -0
- package/dist/typography/TruncatedText/truncated-text.js.map +1 -0
- package/dist/typography/TruncatedText/truncated-text.module.scss.js +4 -0
- package/dist/typography/TruncatedText/truncated-text.module.scss.js.map +1 -0
- package/dist/typography/Typography/index.d.ts +2 -0
- package/dist/typography/Typography/index.d.ts.map +1 -0
- package/dist/typography/Typography/typography-variants.d.ts +9 -0
- package/dist/typography/Typography/typography-variants.d.ts.map +1 -0
- package/dist/typography/Typography/typography-variants.js +75 -0
- package/dist/typography/Typography/typography-variants.js.map +1 -0
- package/dist/typography/Typography/typography.d.ts +19 -0
- package/dist/typography/Typography/typography.d.ts.map +1 -0
- package/dist/typography/Typography/typography.js +43 -0
- package/dist/typography/Typography/typography.js.map +1 -0
- package/dist/typography/Typography/typography.module.scss.js +4 -0
- package/dist/typography/Typography/typography.module.scss.js.map +1 -0
- package/dist/typography/index.d.ts +4 -0
- package/dist/typography/index.d.ts.map +1 -0
- package/dist/typography-DOZHFR5A.d.ts +21 -0
- package/dist/typography.d.ts +37 -0
- package/dist/typography.js +4 -0
- package/dist/typography.js.map +1 -0
- package/dist/ui/Alert/alert-context.d.ts +3 -0
- package/dist/ui/Alert/alert-context.d.ts.map +1 -0
- package/dist/ui/Alert/alert-context.js +6 -0
- package/dist/ui/Alert/alert-context.js.map +1 -0
- package/dist/ui/Alert/alert-persist.d.ts +4 -0
- package/dist/ui/Alert/alert-persist.d.ts.map +1 -0
- package/dist/ui/Alert/alert-persist.js +27 -0
- package/dist/ui/Alert/alert-persist.js.map +1 -0
- package/dist/ui/Alert/alert-provider.d.ts +6 -0
- package/dist/ui/Alert/alert-provider.d.ts.map +1 -0
- package/dist/ui/Alert/alert-provider.js +57 -0
- package/dist/ui/Alert/alert-provider.js.map +1 -0
- package/dist/ui/Alert/alert-variants.d.ts +4 -0
- package/dist/ui/Alert/alert-variants.d.ts.map +1 -0
- package/dist/ui/Alert/alert-variants.js +23 -0
- package/dist/ui/Alert/alert-variants.js.map +1 -0
- package/dist/ui/Alert/alert.d.ts +24 -0
- package/dist/ui/Alert/alert.d.ts.map +1 -0
- package/dist/ui/Alert/alert.js +37 -0
- package/dist/ui/Alert/alert.js.map +1 -0
- package/dist/ui/Alert/alert.module.scss.js +4 -0
- package/dist/ui/Alert/alert.module.scss.js.map +1 -0
- package/dist/ui/Alert/index.d.ts +4 -0
- package/dist/ui/Alert/index.d.ts.map +1 -0
- package/dist/ui/Avatar/avatar.d.ts +9 -0
- package/dist/ui/Avatar/avatar.d.ts.map +1 -0
- package/dist/ui/Avatar/avatar.js +29 -0
- package/dist/ui/Avatar/avatar.js.map +1 -0
- package/dist/ui/Avatar/avatar.module.scss.js +4 -0
- package/dist/ui/Avatar/avatar.module.scss.js.map +1 -0
- package/dist/ui/Avatar/index.d.ts +2 -0
- package/dist/ui/Avatar/index.d.ts.map +1 -0
- package/dist/ui/Button/button-variants.d.ts +8 -0
- package/dist/ui/Button/button-variants.d.ts.map +1 -0
- package/dist/ui/Button/button-variants.js +45 -0
- package/dist/ui/Button/button-variants.js.map +1 -0
- package/dist/ui/Button/button.d.ts +9 -0
- package/dist/ui/Button/button.d.ts.map +1 -0
- package/dist/ui/Button/button.js +65 -0
- package/dist/ui/Button/button.js.map +1 -0
- package/dist/ui/Button/button.module.scss.js +4 -0
- package/dist/ui/Button/button.module.scss.js.map +1 -0
- package/dist/ui/Button/index.d.ts +2 -0
- package/dist/ui/Button/index.d.ts.map +1 -0
- package/dist/ui/Chip/chip-variants.d.ts +6 -0
- package/dist/ui/Chip/chip-variants.d.ts.map +1 -0
- package/dist/ui/Chip/chip-variants.js +32 -0
- package/dist/ui/Chip/chip-variants.js.map +1 -0
- package/dist/ui/Chip/chip.d.ts +8 -0
- package/dist/ui/Chip/chip.d.ts.map +1 -0
- package/dist/ui/Chip/chip.js +13 -0
- package/dist/ui/Chip/chip.js.map +1 -0
- package/dist/ui/Chip/chip.module.scss.js +4 -0
- package/dist/ui/Chip/chip.module.scss.js.map +1 -0
- package/dist/ui/Chip/index.d.ts +2 -0
- package/dist/ui/Chip/index.d.ts.map +1 -0
- package/dist/ui/CodeBlock/code-block-variants.d.ts +5 -0
- package/dist/ui/CodeBlock/code-block-variants.d.ts.map +1 -0
- package/dist/ui/CodeBlock/code-block-variants.js +29 -0
- package/dist/ui/CodeBlock/code-block-variants.js.map +1 -0
- package/dist/ui/CodeBlock/code-block.d.ts +20 -0
- package/dist/ui/CodeBlock/code-block.d.ts.map +1 -0
- package/dist/ui/CodeBlock/code-block.js +70 -0
- package/dist/ui/CodeBlock/code-block.js.map +1 -0
- package/dist/ui/CodeBlock/code-block.module.scss.js +4 -0
- package/dist/ui/CodeBlock/code-block.module.scss.js.map +1 -0
- package/dist/ui/CodeBlock/index.d.ts +2 -0
- package/dist/ui/CodeBlock/index.d.ts.map +1 -0
- package/dist/ui/DevIndicator/dev-indicator.d.ts +5 -0
- package/dist/ui/DevIndicator/dev-indicator.d.ts.map +1 -0
- package/dist/ui/DevIndicator/dev-indicator.js +20 -0
- package/dist/ui/DevIndicator/dev-indicator.js.map +1 -0
- package/dist/ui/DevIndicator/dev-indicator.module.scss.js +4 -0
- package/dist/ui/DevIndicator/dev-indicator.module.scss.js.map +1 -0
- package/dist/ui/DevIndicator/index.d.ts +2 -0
- package/dist/ui/DevIndicator/index.d.ts.map +1 -0
- package/dist/ui/Dialog/dialog.d.ts +50 -0
- package/dist/ui/Dialog/dialog.d.ts.map +1 -0
- package/dist/ui/Dialog/dialog.js +133 -0
- package/dist/ui/Dialog/dialog.js.map +1 -0
- package/dist/ui/Dialog/dialog.module.scss.js +4 -0
- package/dist/ui/Dialog/dialog.module.scss.js.map +1 -0
- package/dist/ui/Dialog/index.d.ts +2 -0
- package/dist/ui/Dialog/index.d.ts.map +1 -0
- package/dist/ui/EmptyState/empty-state-variants.d.ts +5 -0
- package/dist/ui/EmptyState/empty-state-variants.d.ts.map +1 -0
- package/dist/ui/EmptyState/empty-state-variants.js +29 -0
- package/dist/ui/EmptyState/empty-state-variants.js.map +1 -0
- package/dist/ui/EmptyState/empty-state.d.ts +16 -0
- package/dist/ui/EmptyState/empty-state.d.ts.map +1 -0
- package/dist/ui/EmptyState/empty-state.js +13 -0
- package/dist/ui/EmptyState/empty-state.js.map +1 -0
- package/dist/ui/EmptyState/empty-state.module.scss.js +4 -0
- package/dist/ui/EmptyState/empty-state.module.scss.js.map +1 -0
- package/dist/ui/EmptyState/index.d.ts +2 -0
- package/dist/ui/EmptyState/index.d.ts.map +1 -0
- package/dist/ui/Icon/icon-variants.d.ts +7 -0
- package/dist/ui/Icon/icon-variants.d.ts.map +1 -0
- package/dist/ui/Icon/icon-variants.js +43 -0
- package/dist/ui/Icon/icon-variants.js.map +1 -0
- package/dist/ui/Icon/icon.d.ts +44 -0
- package/dist/ui/Icon/icon.d.ts.map +1 -0
- package/dist/ui/Icon/icon.js +41 -0
- package/dist/ui/Icon/icon.js.map +1 -0
- package/dist/ui/Icon/icon.module.scss.js +4 -0
- package/dist/ui/Icon/icon.module.scss.js.map +1 -0
- package/dist/ui/Icon/index.d.ts +2 -0
- package/dist/ui/Icon/index.d.ts.map +1 -0
- package/dist/ui/List/index.d.ts +2 -0
- package/dist/ui/List/index.d.ts.map +1 -0
- package/dist/ui/List/list.d.ts +14 -0
- package/dist/ui/List/list.d.ts.map +1 -0
- package/dist/ui/List/list.js +20 -0
- package/dist/ui/List/list.js.map +1 -0
- package/dist/ui/List/list.module.scss.js +4 -0
- package/dist/ui/List/list.module.scss.js.map +1 -0
- package/dist/ui/Pagination/index.d.ts +2 -0
- package/dist/ui/Pagination/index.d.ts.map +1 -0
- package/dist/ui/Pagination/pagination.d.ts +5 -0
- package/dist/ui/Pagination/pagination.d.ts.map +1 -0
- package/dist/ui/Pagination/pagination.js +37 -0
- package/dist/ui/Pagination/pagination.js.map +1 -0
- package/dist/ui/Pagination/pagination.module.scss.js +4 -0
- package/dist/ui/Pagination/pagination.module.scss.js.map +1 -0
- package/dist/ui/ProgressBar/index.d.ts +2 -0
- package/dist/ui/ProgressBar/index.d.ts.map +1 -0
- package/dist/ui/ProgressBar/progress-bar-variants.d.ts +9 -0
- package/dist/ui/ProgressBar/progress-bar-variants.d.ts.map +1 -0
- package/dist/ui/ProgressBar/progress-bar-variants.js +46 -0
- package/dist/ui/ProgressBar/progress-bar-variants.js.map +1 -0
- package/dist/ui/ProgressBar/progress-bar.d.ts +12 -0
- package/dist/ui/ProgressBar/progress-bar.d.ts.map +1 -0
- package/dist/ui/ProgressBar/progress-bar.js +14 -0
- package/dist/ui/ProgressBar/progress-bar.js.map +1 -0
- package/dist/ui/ProgressBar/progress-bar.module.scss.js +4 -0
- package/dist/ui/ProgressBar/progress-bar.module.scss.js.map +1 -0
- package/dist/ui/Separator/index.d.ts +2 -0
- package/dist/ui/Separator/index.d.ts.map +1 -0
- package/dist/ui/Separator/separator.d.ts +8 -0
- package/dist/ui/Separator/separator.d.ts.map +1 -0
- package/dist/ui/Separator/separator.js +10 -0
- package/dist/ui/Separator/separator.js.map +1 -0
- package/dist/ui/Separator/separator.module.scss.js +4 -0
- package/dist/ui/Separator/separator.module.scss.js.map +1 -0
- package/dist/ui/StatCard/index.d.ts +2 -0
- package/dist/ui/StatCard/index.d.ts.map +1 -0
- package/dist/ui/StatCard/stat-card-variants.d.ts +6 -0
- package/dist/ui/StatCard/stat-card-variants.d.ts.map +1 -0
- package/dist/ui/StatCard/stat-card-variants.js +35 -0
- package/dist/ui/StatCard/stat-card-variants.js.map +1 -0
- package/dist/ui/StatCard/stat-card.d.ts +31 -0
- package/dist/ui/StatCard/stat-card.d.ts.map +1 -0
- package/dist/ui/StatCard/stat-card.js +56 -0
- package/dist/ui/StatCard/stat-card.js.map +1 -0
- package/dist/ui/StatCard/stat-card.module.scss.js +4 -0
- package/dist/ui/StatCard/stat-card.module.scss.js.map +1 -0
- package/dist/ui/StepProgress/index.d.ts +2 -0
- package/dist/ui/StepProgress/index.d.ts.map +1 -0
- package/dist/ui/StepProgress/step-progress-variants.d.ts +7 -0
- package/dist/ui/StepProgress/step-progress-variants.d.ts.map +1 -0
- package/dist/ui/StepProgress/step-progress-variants.js +39 -0
- package/dist/ui/StepProgress/step-progress-variants.js.map +1 -0
- package/dist/ui/StepProgress/step-progress.d.ts +20 -0
- package/dist/ui/StepProgress/step-progress.d.ts.map +1 -0
- package/dist/ui/StepProgress/step-progress.js +40 -0
- package/dist/ui/StepProgress/step-progress.js.map +1 -0
- package/dist/ui/StepProgress/step-progress.module.scss.js +4 -0
- package/dist/ui/StepProgress/step-progress.module.scss.js.map +1 -0
- package/dist/ui/Switch/index.d.ts +2 -0
- package/dist/ui/Switch/index.d.ts.map +1 -0
- package/dist/ui/Switch/switch-variants.d.ts +5 -0
- package/dist/ui/Switch/switch-variants.d.ts.map +1 -0
- package/dist/ui/Switch/switch-variants.js +29 -0
- package/dist/ui/Switch/switch-variants.js.map +1 -0
- package/dist/ui/Switch/switch.d.ts +10 -0
- package/dist/ui/Switch/switch.d.ts.map +1 -0
- package/dist/ui/Switch/switch.js +18 -0
- package/dist/ui/Switch/switch.js.map +1 -0
- package/dist/ui/Switch/switch.module.scss.js +4 -0
- package/dist/ui/Switch/switch.module.scss.js.map +1 -0
- package/dist/ui/Table/index.d.ts +2 -0
- package/dist/ui/Table/index.d.ts.map +1 -0
- package/dist/ui/Table/table-sort-context.d.ts +4 -0
- package/dist/ui/Table/table-sort-context.d.ts.map +1 -0
- package/dist/ui/Table/table-sort-context.js +6 -0
- package/dist/ui/Table/table-sort-context.js.map +1 -0
- package/dist/ui/Table/table.d.ts +32 -0
- package/dist/ui/Table/table.d.ts.map +1 -0
- package/dist/ui/Table/table.js +59 -0
- package/dist/ui/Table/table.js.map +1 -0
- package/dist/ui/Table/table.module.scss.js +4 -0
- package/dist/ui/Table/table.module.scss.js.map +1 -0
- package/dist/ui/TableActionCell/index.d.ts +2 -0
- package/dist/ui/TableActionCell/index.d.ts.map +1 -0
- package/dist/ui/TableActionCell/table-action-cell.d.ts +28 -0
- package/dist/ui/TableActionCell/table-action-cell.d.ts.map +1 -0
- package/dist/ui/TableActionCell/table-action-cell.js +27 -0
- package/dist/ui/TableActionCell/table-action-cell.js.map +1 -0
- package/dist/ui/TableActionCell/table-action-cell.module.scss.js +4 -0
- package/dist/ui/TableActionCell/table-action-cell.module.scss.js.map +1 -0
- package/dist/ui/TableToolbar/index.d.ts +2 -0
- package/dist/ui/TableToolbar/index.d.ts.map +1 -0
- package/dist/ui/TableToolbar/table-toolbar.d.ts +29 -0
- package/dist/ui/TableToolbar/table-toolbar.d.ts.map +1 -0
- package/dist/ui/TableToolbar/table-toolbar.js +18 -0
- package/dist/ui/TableToolbar/table-toolbar.js.map +1 -0
- package/dist/ui/TableToolbar/table-toolbar.module.scss.js +4 -0
- package/dist/ui/TableToolbar/table-toolbar.module.scss.js.map +1 -0
- package/dist/ui/Toggle/index.d.ts +2 -0
- package/dist/ui/Toggle/index.d.ts.map +1 -0
- package/dist/ui/Toggle/toggle-group-context.d.ts +9 -0
- package/dist/ui/Toggle/toggle-group-context.d.ts.map +1 -0
- package/dist/ui/Toggle/toggle-group-context.js +6 -0
- package/dist/ui/Toggle/toggle-group-context.js.map +1 -0
- package/dist/ui/Toggle/toggle-variants.d.ts +8 -0
- package/dist/ui/Toggle/toggle-variants.d.ts.map +1 -0
- package/dist/ui/Toggle/toggle-variants.js +45 -0
- package/dist/ui/Toggle/toggle-variants.js.map +1 -0
- package/dist/ui/Toggle/toggle.d.ts +12 -0
- package/dist/ui/Toggle/toggle.d.ts.map +1 -0
- package/dist/ui/Toggle/toggle.js +49 -0
- package/dist/ui/Toggle/toggle.js.map +1 -0
- package/dist/ui/Toggle/toggle.module.scss.js +4 -0
- package/dist/ui/Toggle/toggle.module.scss.js.map +1 -0
- package/dist/ui/ToggleGroup/index.d.ts +2 -0
- package/dist/ui/ToggleGroup/index.d.ts.map +1 -0
- package/dist/ui/ToggleGroup/toggle-group.d.ts +24 -0
- package/dist/ui/ToggleGroup/toggle-group.d.ts.map +1 -0
- package/dist/ui/ToggleGroup/toggle-group.js +80 -0
- package/dist/ui/ToggleGroup/toggle-group.js.map +1 -0
- package/dist/ui/ToggleGroup/toggle-group.module.scss.js +4 -0
- package/dist/ui/ToggleGroup/toggle-group.module.scss.js.map +1 -0
- package/dist/ui/Tooltip/index.d.ts +2 -0
- package/dist/ui/Tooltip/index.d.ts.map +1 -0
- package/dist/ui/Tooltip/tooltip.d.ts +24 -0
- package/dist/ui/Tooltip/tooltip.d.ts.map +1 -0
- package/dist/ui/Tooltip/tooltip.js +192 -0
- package/dist/ui/Tooltip/tooltip.js.map +1 -0
- package/dist/ui/Tooltip/tooltip.module.scss.js +4 -0
- package/dist/ui/Tooltip/tooltip.module.scss.js.map +1 -0
- package/dist/ui/index.d.ts +23 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui.d.ts +6 -0
- package/dist/ui.js +25 -0
- package/dist/ui.js.map +1 -0
- package/dist/user/UserInfo/index.d.ts +2 -0
- package/dist/user/UserInfo/index.d.ts.map +1 -0
- package/dist/user/UserInfo/user-info.d.ts +6 -0
- package/dist/user/UserInfo/user-info.d.ts.map +1 -0
- package/dist/user/UserInfo/user-info.js +17 -0
- package/dist/user/UserInfo/user-info.js.map +1 -0
- package/dist/user/UserInfo/user-info.module.scss.js +4 -0
- package/dist/user/UserInfo/user-info.module.scss.js.map +1 -0
- package/dist/user/UserMenuContent/index.d.ts +2 -0
- package/dist/user/UserMenuContent/index.d.ts.map +1 -0
- package/dist/user/UserMenuContent/user-menu-content.d.ts +25 -0
- package/dist/user/UserMenuContent/user-menu-content.d.ts.map +1 -0
- package/dist/user/UserMenuContent/user-menu-content.js +23 -0
- package/dist/user/UserMenuContent/user-menu-content.js.map +1 -0
- package/dist/user/index.d.ts +3 -0
- package/dist/user/index.d.ts.map +1 -0
- package/dist/user-menu-content-D0Ldzigm.d.ts +34 -0
- package/dist/user.d.ts +10 -0
- package/dist/user.js +3 -0
- package/dist/user.js.map +1 -0
- package/dist/utils/csrf.d.ts +2 -0
- package/dist/utils/csrf.d.ts.map +1 -0
- package/dist/utils/csrf.js +13 -0
- package/dist/utils/csrf.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +2 -0
- package/dist/utils.js.map +1 -0
- package/package.json +208 -0
- package/src/styles/_mixins.scss +105 -0
- package/src/styles/_theme-context.scss +12 -0
- package/src/styles/mixins.scss +1 -0
- package/vite-plugin.d.ts +26 -0
- package/vite-plugin.mjs +95 -0
|
@@ -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":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/DropdownMenu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"nav-user.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -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"}
|