@fairmint/ui 0.3.32 → 0.3.34
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/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.d.ts +1 -1
- package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.d.ts.map +1 -1
- package/dist/components/ErrorFallback/ErrorFallback.d.ts +1 -1
- package/dist/components/ErrorFallback/ErrorFallback.d.ts.map +1 -1
- package/dist/components/FairmintLogo/FairmintBrandLogo.d.ts +1 -1
- package/dist/components/FairmintLogo/FairmintBrandLogo.d.ts.map +1 -1
- package/dist/components/FairmintLogo/FairmintLogo.d.ts +1 -1
- package/dist/components/FairmintLogo/FairmintLogo.d.ts.map +1 -1
- package/dist/components/FairmintLogo/FairmintLogoGraphic.d.ts +1 -1
- package/dist/components/FairmintLogo/FairmintLogoGraphic.d.ts.map +1 -1
- package/dist/components/FairmintLogo/FairmintLogoMark.d.ts +1 -1
- package/dist/components/FairmintLogo/FairmintLogoMark.d.ts.map +1 -1
- package/dist/components/FairmintLogo/FairmintLogoMarkRounded.d.ts +1 -1
- package/dist/components/FairmintLogo/FairmintLogoMarkRounded.d.ts.map +1 -1
- package/dist/components/FairmintProvider/FairmintNotifications.d.ts +1 -1
- package/dist/components/FairmintProvider/FairmintNotifications.d.ts.map +1 -1
- package/dist/components/FairmintProvider/FairmintProvider.d.ts +1 -1
- package/dist/components/FairmintProvider/FairmintProvider.d.ts.map +1 -1
- package/dist/components/LoadingOverlay/LoadingOverlay.d.ts +1 -1
- package/dist/components/LoadingOverlay/LoadingOverlay.d.ts.map +1 -1
- package/dist/components/LoadingSpinner/LoadingSpinner.d.ts +1 -1
- package/dist/components/LoadingSpinner/LoadingSpinner.d.ts.map +1 -1
- package/dist/components/form/BirthdayDatePicker/BirthdayDatePicker.d.ts +1 -1
- package/dist/components/form/BirthdayDatePicker/BirthdayDatePicker.d.ts.map +1 -1
- package/dist/components/form/EmailField.d.ts +1 -1
- package/dist/components/form/EmailField.d.ts.map +1 -1
- package/dist/components/form/EthereumAddressField/EthereumAddressField.d.ts +1 -1
- package/dist/components/form/EthereumAddressField/EthereumAddressField.d.ts.map +1 -1
- package/dist/components/form/Form.d.ts +1 -1
- package/dist/components/form/Form.d.ts.map +1 -1
- package/dist/components/form/FormField.d.ts +1 -1
- package/dist/components/form/FormField.d.ts.map +1 -1
- package/dist/components/form/PasswordField.d.ts +1 -1
- package/dist/components/form/PasswordField.d.ts.map +1 -1
- package/dist/components/form/PhoneField.d.ts +2 -1
- package/dist/components/form/PhoneField.d.ts.map +1 -1
- package/dist/components/form/SignatureNameField/SignatureNameField.d.ts +1 -1
- package/dist/components/form/SignatureNameField/SignatureNameField.d.ts.map +1 -1
- package/dist/components/form/USStateField/USStateField.d.ts +1 -1
- package/dist/components/form/USStateField/USStateField.d.ts.map +1 -1
- package/dist/components/form/ZipField/ZipField.d.ts +1 -1
- package/dist/components/form/ZipField/ZipField.d.ts.map +1 -1
- package/dist/components/generic/AgentSuggestion/AgentSuggestion.d.ts +2 -2
- package/dist/components/generic/AgentSuggestion/AgentSuggestion.d.ts.map +1 -1
- package/dist/components/generic/AnimateIn/AnimateIn.d.ts +1 -1
- package/dist/components/generic/AnimateIn/AnimateIn.d.ts.map +1 -1
- package/dist/components/generic/Banner/Banner.d.ts +1 -1
- package/dist/components/generic/Banner/Banner.d.ts.map +1 -1
- package/dist/components/generic/BottomSheet/BottomSheet.cjs +133 -0
- package/dist/components/generic/BottomSheet/BottomSheet.cjs.map +1 -0
- package/dist/components/generic/BottomSheet/BottomSheet.d.ts +31 -0
- package/dist/components/generic/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/dist/components/generic/BottomSheet/BottomSheet.js +133 -0
- package/dist/components/generic/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/components/generic/ClickableCard/ClickableCard.d.ts +1 -1
- package/dist/components/generic/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/components/generic/ColorDot/ColorDot.d.ts +1 -1
- package/dist/components/generic/ColorDot/ColorDot.d.ts.map +1 -1
- package/dist/components/generic/CompanyBanner/CompanyBanner.d.ts +1 -1
- package/dist/components/generic/CompanyBanner/CompanyBanner.d.ts.map +1 -1
- package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.d.ts +1 -1
- package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.d.ts.map +1 -1
- package/dist/components/generic/ConfirmDialog/ConfirmDialog.d.ts +1 -1
- package/dist/components/generic/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
- package/dist/components/generic/Currency/Currency.d.ts +2 -1
- package/dist/components/generic/Currency/Currency.d.ts.map +1 -1
- package/dist/components/generic/DataRow/DataRow.d.ts +3 -3
- package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
- package/dist/components/generic/DataTable/DataTable.d.ts +1 -1
- package/dist/components/generic/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/generic/DateDisplay/DateDisplay.d.ts +1 -1
- package/dist/components/generic/DateDisplay/DateDisplay.d.ts.map +1 -1
- package/dist/components/generic/DetailDrawer/DetailDrawer.d.ts +1 -1
- package/dist/components/generic/DetailDrawer/DetailDrawer.d.ts.map +1 -1
- package/dist/components/generic/DocumentRow/DocumentRow.d.ts +1 -1
- package/dist/components/generic/DocumentRow/DocumentRow.d.ts.map +1 -1
- package/dist/components/generic/EditableSection/EditableSection.d.ts +1 -1
- package/dist/components/generic/EditableSection/EditableSection.d.ts.map +1 -1
- package/dist/components/generic/EmptyState/EmptyState.d.ts +1 -1
- package/dist/components/generic/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/generic/ErrorPage/ErrorPage.d.ts +1 -1
- package/dist/components/generic/ErrorPage/ErrorPage.d.ts.map +1 -1
- package/dist/components/generic/Eyebrow/Eyebrow.d.ts +1 -1
- package/dist/components/generic/Eyebrow/Eyebrow.d.ts.map +1 -1
- package/dist/components/generic/FileDropzone/FileDropzone.d.ts +1 -1
- package/dist/components/generic/FileDropzone/FileDropzone.d.ts.map +1 -1
- package/dist/components/generic/ListRow/ListRow.d.ts +1 -1
- package/dist/components/generic/ListRow/ListRow.d.ts.map +1 -1
- package/dist/components/generic/NotificationRow/NotificationRow.d.ts +1 -1
- package/dist/components/generic/NotificationRow/NotificationRow.d.ts.map +1 -1
- package/dist/components/generic/Percent/Percent.d.ts +1 -1
- package/dist/components/generic/Percent/Percent.d.ts.map +1 -1
- package/dist/components/generic/PhotoCropModal/PhotoCropModal.d.ts +1 -1
- package/dist/components/generic/PhotoCropModal/PhotoCropModal.d.ts.map +1 -1
- package/dist/components/generic/ProcessingState/ProcessingState.d.ts +1 -1
- package/dist/components/generic/ProcessingState/ProcessingState.d.ts.map +1 -1
- package/dist/components/generic/RadioCard/RadioCard.d.ts +1 -1
- package/dist/components/generic/RadioCard/RadioCard.d.ts.map +1 -1
- package/dist/components/generic/SearchInput/SearchInput.d.ts +1 -1
- package/dist/components/generic/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/components/generic/StatCard/StatCard.d.ts +1 -1
- package/dist/components/generic/StatCard/StatCard.d.ts.map +1 -1
- package/dist/components/generic/StatusBadge/StatusBadge.d.ts +1 -1
- package/dist/components/generic/StatusBadge/StatusBadge.d.ts.map +1 -1
- package/dist/components/generic/StepCard/StepCard.d.ts +1 -1
- package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
- package/dist/components/generic/StepFlow/StepFlow.d.ts +1 -1
- package/dist/components/generic/StepFlow/StepFlow.d.ts.map +1 -1
- package/dist/components/generic/StepProgress/StepProgress.d.ts +1 -1
- package/dist/components/generic/StepProgress/StepProgress.d.ts.map +1 -1
- package/dist/components/generic/TablePagination/TablePagination.d.ts +1 -1
- package/dist/components/generic/TablePagination/TablePagination.d.ts.map +1 -1
- package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.d.ts +1 -1
- package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.d.ts.map +1 -1
- package/dist/components/generic/TaskRow/TaskRow.d.ts +1 -1
- package/dist/components/generic/TaskRow/TaskRow.d.ts.map +1 -1
- package/dist/components/generic/ValidationWarning/ValidationWarning.d.ts +1 -1
- package/dist/components/generic/ValidationWarning/ValidationWarning.d.ts.map +1 -1
- package/dist/components/layout/AccountSheet/AccountSheet.cjs +123 -0
- package/dist/components/layout/AccountSheet/AccountSheet.cjs.map +1 -0
- package/dist/components/layout/AccountSheet/AccountSheet.d.ts +46 -0
- package/dist/components/layout/AccountSheet/AccountSheet.d.ts.map +1 -0
- package/dist/components/layout/AccountSheet/AccountSheet.js +123 -0
- package/dist/components/layout/AccountSheet/AccountSheet.js.map +1 -0
- package/dist/components/layout/AppHeader/AppHeader.d.ts +1 -1
- package/dist/components/layout/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/layout/MobileNav/MobileNav.cjs +267 -0
- package/dist/components/layout/MobileNav/MobileNav.cjs.map +1 -0
- package/dist/components/layout/MobileNav/MobileNav.d.ts +49 -0
- package/dist/components/layout/MobileNav/MobileNav.d.ts.map +1 -0
- package/dist/components/layout/MobileNav/MobileNav.js +267 -0
- package/dist/components/layout/MobileNav/MobileNav.js.map +1 -0
- package/dist/components/layout/PageHeader/PageHeader.d.ts +1 -1
- package/dist/components/layout/PageHeader/PageHeader.d.ts.map +1 -1
- package/dist/components/layout/SideNav/SideNav.d.ts +1 -1
- package/dist/components/layout/SideNav/SideNav.d.ts.map +1 -1
- package/dist/components/layout/UserMenu/UserMenu.d.ts +1 -1
- package/dist/components/layout/UserMenu/UserMenu.d.ts.map +1 -1
- package/dist/components/primitives/Alert/Alert.d.ts +1 -1
- package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
- package/dist/components/primitives/Drawer/Drawer.d.ts +1 -1
- package/dist/components/primitives/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/primitives/Loader/Loader.d.ts +1 -1
- package/dist/components/primitives/Loader/Loader.d.ts.map +1 -1
- package/dist/components/primitives/Menu/Menu.d.ts +1 -1
- package/dist/components/primitives/Menu/Menu.d.ts.map +1 -1
- package/dist/components/primitives/Modal/Modal.d.ts +1 -1
- package/dist/components/primitives/Modal/Modal.d.ts.map +1 -1
- package/dist/components/primitives/Pdf/Pdf.d.ts +2 -2
- package/dist/components/primitives/Pdf/Pdf.d.ts.map +1 -1
- package/dist/components/primitives/Popover/Popover.d.ts +1 -1
- package/dist/components/primitives/Popover/Popover.d.ts.map +1 -1
- package/dist/components/primitives/Skeleton/Skeleton.d.ts +1 -1
- package/dist/components/primitives/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/primitives/Table/Table.d.ts +1 -1
- package/dist/components/primitives/Table/Table.d.ts.map +1 -1
- package/dist/components/primitives/Tabs/Tabs.d.ts +3 -3
- package/dist/components/primitives/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/primitives/layout.d.ts +8 -8
- package/dist/components/primitives/layout.d.ts.map +1 -1
- package/dist/components/primitives/muiCompat.cjs.map +1 -1
- package/dist/components/primitives/muiCompat.d.ts +41 -42
- package/dist/components/primitives/muiCompat.d.ts.map +1 -1
- package/dist/components/primitives/muiCompat.js.map +1 -1
- package/dist/components/specific/DocumentRow/DocumentRow.d.ts +1 -1
- package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
- package/dist/components/specific/EquityGrantCard/EquityGrantCard.d.ts +1 -1
- package/dist/components/specific/EquityGrantCard/EquityGrantCard.d.ts.map +1 -1
- package/dist/components/specific/EquityRibbonChart/EquityRibbonChart.d.ts +1 -1
- package/dist/components/specific/EquityRibbonChart/EquityRibbonChart.d.ts.map +1 -1
- package/dist/components/specific/EquityRibbonChart/FairmintRibbonMark.d.ts +1 -1
- package/dist/components/specific/EquityRibbonChart/FairmintRibbonMark.d.ts.map +1 -1
- package/dist/components/specific/InvestmentCard/InvestmentCard.d.ts +1 -1
- package/dist/components/specific/InvestmentCard/InvestmentCard.d.ts.map +1 -1
- package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.d.ts +1 -1
- package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.d.ts.map +1 -1
- package/dist/components/specific/WalletList/WalletList.d.ts +1 -1
- package/dist/components/specific/WalletList/WalletList.d.ts.map +1 -1
- package/dist/components/specific/WalletListItem/WalletListItem.d.ts +1 -1
- package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -1
- package/dist/fairmint-ui.cjs +9 -0
- package/dist/fairmint-ui.cjs.map +1 -1
- package/dist/fairmint-ui.js +9 -0
- package/dist/fairmint-ui.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconActivity.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconActivity.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsExchange.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsExchange.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMaximize.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMaximize.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsSort.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsSort.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAward.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAward.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBell.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBell.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandFacebook.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandFacebook.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandInstagram.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandInstagram.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandLinkedin.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandLinkedin.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandX.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandX.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandYoutube.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandYoutube.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBriefcase.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBriefcase.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuilding.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuilding.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuildingBank.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuildingBank.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarEvent.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarEvent.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCashBanknote.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCashBanknote.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCategory.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCategory.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCertificate.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCertificate.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartBar.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartBar.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartDots.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartDots.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartPie.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartPie.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronUp.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronUp.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleOff.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleOff.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClipboardCheck.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClipboardCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClock.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClock.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceFloppy.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceFloppy.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEye.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEye.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFile.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFile.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileDownload.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileDownload.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileTypePdf.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileTypePdf.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderPlus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderPlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHourglass.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHourglass.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLanguage.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLanguage.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftCollapse.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftCollapse.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftExpand.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftExpand.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMail.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMail.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMapPin.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMapPin.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconNews.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconNews.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPause.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPause.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlay.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlay.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStop.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStop.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRefresh.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRefresh.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconReload.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconReload.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRocket.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRocket.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearchOff.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearchOff.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSend.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSend.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldCheck.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldDollar.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldDollar.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldOff.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldOff.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSitemap.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSitemap.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSparkles.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSparkles.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStar.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStar.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbDown.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbDown.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbUp.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbUp.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTimeline.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTimeline.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingUp.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingUp.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrophy.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrophy.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUpload.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUpload.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCheck.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCheck.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCircle.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCircle.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserPlus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserPlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsers.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsers.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersGroup.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersGroup.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersPlus.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersPlus.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconX.cjs.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js.map +1 -1
- package/dist/node_modules/dayjs/dayjs.min.cjs +4 -4
- package/dist/node_modules/dayjs/dayjs.min.cjs.map +1 -1
- package/dist/node_modules/dayjs/dayjs.min.js +4 -4
- package/dist/node_modules/dayjs/dayjs.min.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/checks.cjs +0 -1
- package/dist/node_modules/zod/v4/classic/checks.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/checks.js +0 -1
- package/dist/node_modules/zod/v4/classic/checks.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/coerce.cjs +1 -2
- package/dist/node_modules/zod/v4/classic/coerce.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/coerce.js +1 -2
- package/dist/node_modules/zod/v4/classic/coerce.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/compat.cjs +0 -1
- package/dist/node_modules/zod/v4/classic/compat.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/compat.js +0 -1
- package/dist/node_modules/zod/v4/classic/compat.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/errors.cjs +4 -5
- package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/errors.js +4 -5
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/external.cjs +2 -0
- package/dist/node_modules/zod/v4/classic/external.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/external.js +3 -1
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +16 -10
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/from-json-schema.js +16 -10
- package/dist/node_modules/zod/v4/classic/from-json-schema.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/iso.cjs +2 -3
- package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/iso.js +2 -3
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/parse.cjs +1 -2
- package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/parse.js +1 -2
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/schemas.cjs +325 -112
- package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -1
- package/dist/node_modules/zod/v4/classic/schemas.js +327 -114
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -1
- package/dist/node_modules/zod/v4/core/api.cjs +2 -2
- package/dist/node_modules/zod/v4/core/api.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/api.js +2 -2
- package/dist/node_modules/zod/v4/core/api.js.map +1 -1
- package/dist/node_modules/zod/v4/core/core.cjs +6 -4
- package/dist/node_modules/zod/v4/core/core.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/core.js +6 -4
- package/dist/node_modules/zod/v4/core/core.js.map +1 -1
- package/dist/node_modules/zod/v4/core/errors.cjs +24 -21
- package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/errors.js +24 -21
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -1
- package/dist/node_modules/zod/v4/core/index.cjs +1 -0
- package/dist/node_modules/zod/v4/core/index.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/index.js +2 -1
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +15 -22
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +15 -22
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -1
- package/dist/node_modules/zod/v4/core/parse.cjs +7 -7
- package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/parse.js +7 -7
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -1
- package/dist/node_modules/zod/v4/core/regexes.cjs +3 -1
- package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/regexes.js +3 -1
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -1
- package/dist/node_modules/zod/v4/core/schemas.cjs +176 -53
- package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/schemas.js +178 -55
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -1
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +8 -1
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/to-json-schema.js +8 -1
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -1
- package/dist/node_modules/zod/v4/core/util.cjs +45 -27
- package/dist/node_modules/zod/v4/core/util.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/util.js +45 -27
- package/dist/node_modules/zod/v4/core/util.js.map +1 -1
- package/dist/node_modules/zod/v4/core/versions.cjs +2 -2
- package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -1
- package/dist/node_modules/zod/v4/core/versions.js +2 -2
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/el.cjs +112 -0
- package/dist/node_modules/zod/v4/locales/el.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/el.js +113 -0
- package/dist/node_modules/zod/v4/locales/el.js.map +1 -0
- package/dist/node_modules/zod/v4/locales/en.cjs +4 -0
- package/dist/node_modules/zod/v4/locales/en.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/en.js +4 -0
- package/dist/node_modules/zod/v4/locales/en.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/fr.cjs +25 -8
- package/dist/node_modules/zod/v4/locales/fr.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/fr.js +25 -8
- package/dist/node_modules/zod/v4/locales/fr.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/hr.cjs +125 -0
- package/dist/node_modules/zod/v4/locales/hr.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/hr.js +126 -0
- package/dist/node_modules/zod/v4/locales/hr.js.map +1 -0
- package/dist/node_modules/zod/v4/locales/index.cjs +6 -0
- package/dist/node_modules/zod/v4/locales/index.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/index.js +88 -82
- package/dist/node_modules/zod/v4/locales/index.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/it.cjs +1 -1
- package/dist/node_modules/zod/v4/locales/it.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/it.js +1 -1
- package/dist/node_modules/zod/v4/locales/it.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/ka.cjs +8 -8
- package/dist/node_modules/zod/v4/locales/ka.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/ka.js +8 -8
- package/dist/node_modules/zod/v4/locales/ka.js.map +1 -1
- package/dist/node_modules/zod/v4/locales/ro.cjs +122 -0
- package/dist/node_modules/zod/v4/locales/ro.cjs.map +1 -0
- package/dist/node_modules/zod/v4/locales/ro.js +123 -0
- package/dist/node_modules/zod/v4/locales/ro.js.map +1 -0
- package/dist/node_modules/zod/v4/locales/uz.cjs +2 -1
- package/dist/node_modules/zod/v4/locales/uz.cjs.map +1 -1
- package/dist/node_modules/zod/v4/locales/uz.js +2 -1
- package/dist/node_modules/zod/v4/locales/uz.js.map +1 -1
- package/package.json +22 -22
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const index = require("../../../theme/index.cjs");
|
|
6
|
+
const zIndex = require("../../../theme/zIndex.cjs");
|
|
7
|
+
const ActionIcon = require("../../primitives/ActionIcon/ActionIcon.cjs");
|
|
8
|
+
const Drawer = require("../../primitives/Drawer/Drawer.cjs");
|
|
9
|
+
const layout = require("../../primitives/layout.cjs");
|
|
10
|
+
const SideNav = require("../SideNav/SideNav.cjs");
|
|
11
|
+
const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
|
|
12
|
+
const IconX = require("../../../node_modules/@tabler/icons-react/dist/esm/icons/IconX.cjs");
|
|
13
|
+
const UnstyledButton = require("../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.cjs");
|
|
14
|
+
const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
|
|
15
|
+
const IconChevronDown = require("../../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.cjs");
|
|
16
|
+
const MOBILE_NAV_WIDTH = "100%";
|
|
17
|
+
const MOBILE_NAV_ROW_MIN_HEIGHT = 48;
|
|
18
|
+
function MobileNavRow({
|
|
19
|
+
item,
|
|
20
|
+
depth,
|
|
21
|
+
onItemClick
|
|
22
|
+
}) {
|
|
23
|
+
const hasChildren = Boolean(item.children?.length);
|
|
24
|
+
const labelText = SideNav.getSideNavItemLabelText(item);
|
|
25
|
+
const childActive = item.children?.some((child) => child.active) ?? false;
|
|
26
|
+
const [opened, setOpened] = React.useState(Boolean(item.open) || childActive);
|
|
27
|
+
const active = Boolean(item.active) && !hasChildren;
|
|
28
|
+
const paddingLeft = 12 + depth * 16;
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(layout.Box, { children: [
|
|
30
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
31
|
+
UnstyledButton.UnstyledButton,
|
|
32
|
+
{
|
|
33
|
+
type: "button",
|
|
34
|
+
disabled: item.disabled,
|
|
35
|
+
"aria-label": labelText,
|
|
36
|
+
"aria-current": active ? "page" : void 0,
|
|
37
|
+
"aria-expanded": hasChildren ? opened : void 0,
|
|
38
|
+
onClick: () => {
|
|
39
|
+
if (hasChildren) {
|
|
40
|
+
setOpened((value) => !value);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
onItemClick(item.id);
|
|
44
|
+
},
|
|
45
|
+
style: {
|
|
46
|
+
display: "flex",
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
gap: 12,
|
|
49
|
+
width: "100%",
|
|
50
|
+
minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,
|
|
51
|
+
paddingLeft,
|
|
52
|
+
paddingRight: 12,
|
|
53
|
+
borderRadius: index.radii.md,
|
|
54
|
+
textAlign: "left",
|
|
55
|
+
cursor: item.disabled ? "not-allowed" : "pointer",
|
|
56
|
+
opacity: item.disabled ? 0.5 : 1,
|
|
57
|
+
backgroundColor: active ? index.fairmintVars.colorSurfaceSelected : "transparent",
|
|
58
|
+
color: active ? index.fairmintVars.colorIconOnSurfaceSelected : index.fairmintVars.colorTextPrimary
|
|
59
|
+
},
|
|
60
|
+
styles: {
|
|
61
|
+
root: {
|
|
62
|
+
"&:hover:not(:disabled)": {
|
|
63
|
+
backgroundColor: active ? index.fairmintVars.colorSurfaceSelected : index.fairmintVars.colorBgHover
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
children: [
|
|
68
|
+
item.icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
69
|
+
layout.Box,
|
|
70
|
+
{
|
|
71
|
+
component: "span",
|
|
72
|
+
style: {
|
|
73
|
+
display: "inline-flex",
|
|
74
|
+
color: active ? index.fairmintVars.colorIconOnSurfaceSelected : index.fairmintVars.colorIconSecondary,
|
|
75
|
+
flexShrink: 0
|
|
76
|
+
},
|
|
77
|
+
children: item.icon
|
|
78
|
+
}
|
|
79
|
+
) : null,
|
|
80
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
81
|
+
Text.Text,
|
|
82
|
+
{
|
|
83
|
+
size: "md",
|
|
84
|
+
fw: active ? 600 : 500,
|
|
85
|
+
style: {
|
|
86
|
+
flex: 1,
|
|
87
|
+
minWidth: 0,
|
|
88
|
+
color: active ? index.fairmintVars.colorIconOnSurfaceSelected : void 0
|
|
89
|
+
},
|
|
90
|
+
truncate: true,
|
|
91
|
+
children: item.label
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
item.rightSection,
|
|
95
|
+
hasChildren ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
96
|
+
IconChevronDown.default,
|
|
97
|
+
{
|
|
98
|
+
size: 18,
|
|
99
|
+
stroke: 1.5,
|
|
100
|
+
"aria-hidden": true,
|
|
101
|
+
style: {
|
|
102
|
+
flexShrink: 0,
|
|
103
|
+
transform: opened ? "rotate(180deg)" : "rotate(0deg)",
|
|
104
|
+
transition: "transform 120ms ease",
|
|
105
|
+
color: index.fairmintVars.colorIconTertiary
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
) : null
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
),
|
|
112
|
+
hasChildren && opened ? /* @__PURE__ */ jsxRuntime.jsx(layout.Stack, { gap: 4, mt: 4, children: item.children?.map((child) => /* @__PURE__ */ jsxRuntime.jsx(MobileNavRow, { item: child, depth: depth + 1, onItemClick }, child.id)) }) : null
|
|
113
|
+
] });
|
|
114
|
+
}
|
|
115
|
+
function MobileNav({
|
|
116
|
+
opened,
|
|
117
|
+
onClose,
|
|
118
|
+
items = [],
|
|
119
|
+
sections,
|
|
120
|
+
onItemClick,
|
|
121
|
+
header,
|
|
122
|
+
cta,
|
|
123
|
+
profile,
|
|
124
|
+
onProfileClick,
|
|
125
|
+
ariaLabel = "Main navigation",
|
|
126
|
+
zIndex: zIndex$1 = zIndex.overlayZIndexAboveLegacyShell
|
|
127
|
+
}) {
|
|
128
|
+
const resolvedSections = sections ?? [{ id: "main", items }];
|
|
129
|
+
const handleItemClick = (id) => {
|
|
130
|
+
onItemClick(id);
|
|
131
|
+
onClose();
|
|
132
|
+
};
|
|
133
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
134
|
+
Drawer.Drawer,
|
|
135
|
+
{
|
|
136
|
+
opened,
|
|
137
|
+
onClose,
|
|
138
|
+
position: "left",
|
|
139
|
+
size: MOBILE_NAV_WIDTH,
|
|
140
|
+
padding: 0,
|
|
141
|
+
withCloseButton: false,
|
|
142
|
+
zIndex: zIndex$1,
|
|
143
|
+
styles: {
|
|
144
|
+
content: {
|
|
145
|
+
display: "flex",
|
|
146
|
+
flexDirection: "column",
|
|
147
|
+
height: "100%"
|
|
148
|
+
},
|
|
149
|
+
body: {
|
|
150
|
+
display: "flex",
|
|
151
|
+
flexDirection: "column",
|
|
152
|
+
flex: 1,
|
|
153
|
+
height: "100%",
|
|
154
|
+
minHeight: 0,
|
|
155
|
+
overflow: "hidden",
|
|
156
|
+
padding: 0
|
|
157
|
+
},
|
|
158
|
+
header: {
|
|
159
|
+
display: "none"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
163
|
+
layout.Stack,
|
|
164
|
+
{
|
|
165
|
+
component: "nav",
|
|
166
|
+
gap: "md",
|
|
167
|
+
"aria-label": ariaLabel,
|
|
168
|
+
style: {
|
|
169
|
+
height: "100%",
|
|
170
|
+
padding: 16,
|
|
171
|
+
paddingBottom: "max(16px, env(safe-area-inset-bottom))",
|
|
172
|
+
boxSizing: "border-box"
|
|
173
|
+
},
|
|
174
|
+
children: [
|
|
175
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
176
|
+
Group.Group,
|
|
177
|
+
{
|
|
178
|
+
justify: "space-between",
|
|
179
|
+
wrap: "nowrap",
|
|
180
|
+
align: "center",
|
|
181
|
+
gap: "sm",
|
|
182
|
+
style: { flexShrink: 0 },
|
|
183
|
+
children: [
|
|
184
|
+
/* @__PURE__ */ jsxRuntime.jsx(layout.Box, { style: { flex: 1, minWidth: 0, display: "flex", alignItems: "center" }, children: header }),
|
|
185
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
186
|
+
ActionIcon.ActionIcon,
|
|
187
|
+
{
|
|
188
|
+
type: "button",
|
|
189
|
+
"aria-label": "Close navigation",
|
|
190
|
+
color: "gray",
|
|
191
|
+
variant: "subtle",
|
|
192
|
+
size: "lg",
|
|
193
|
+
onClick: onClose,
|
|
194
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(IconX.default, { size: 20, stroke: 1.5 })
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
),
|
|
200
|
+
/* @__PURE__ */ jsxRuntime.jsx(layout.Stack, { gap: 4, style: { flex: 1, minHeight: 0, overflow: "auto" }, children: resolvedSections.flatMap(
|
|
201
|
+
(section) => section.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
202
|
+
MobileNavRow,
|
|
203
|
+
{
|
|
204
|
+
item,
|
|
205
|
+
depth: 0,
|
|
206
|
+
onItemClick: handleItemClick
|
|
207
|
+
},
|
|
208
|
+
`${section.id}:${item.id}`
|
|
209
|
+
))
|
|
210
|
+
) }),
|
|
211
|
+
(cta || profile) && /* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: "sm", style: { flexShrink: 0 }, children: [
|
|
212
|
+
cta ? /* @__PURE__ */ jsxRuntime.jsx(layout.Box, { style: { width: "100%" }, children: cta }) : null,
|
|
213
|
+
cta && profile ? /* @__PURE__ */ jsxRuntime.jsx(layout.Divider, { color: index.fairmintVars.colorBorderDefault }) : null,
|
|
214
|
+
profile ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
215
|
+
UnstyledButton.UnstyledButton,
|
|
216
|
+
{
|
|
217
|
+
type: "button",
|
|
218
|
+
"aria-label": "Account menu",
|
|
219
|
+
"aria-haspopup": "dialog",
|
|
220
|
+
onClick: onProfileClick,
|
|
221
|
+
style: {
|
|
222
|
+
display: "flex",
|
|
223
|
+
alignItems: "center",
|
|
224
|
+
gap: 12,
|
|
225
|
+
width: "100%",
|
|
226
|
+
minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,
|
|
227
|
+
padding: 8,
|
|
228
|
+
borderRadius: index.radii.md,
|
|
229
|
+
textAlign: "left",
|
|
230
|
+
cursor: onProfileClick ? "pointer" : "default"
|
|
231
|
+
},
|
|
232
|
+
styles: {
|
|
233
|
+
root: {
|
|
234
|
+
"&:hover": {
|
|
235
|
+
backgroundColor: index.fairmintVars.colorBgHover
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
children: [
|
|
240
|
+
profile.avatar,
|
|
241
|
+
/* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 0, style: { minWidth: 0, flex: 1 }, children: [
|
|
242
|
+
/* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "sm", fw: 600, truncate: true, children: profile.displayName }),
|
|
243
|
+
profile.subline && profile.subline !== profile.displayName ? /* @__PURE__ */ jsxRuntime.jsx(Text.Text, { size: "xs", c: "dimmed", truncate: true, children: profile.subline }) : null
|
|
244
|
+
] }),
|
|
245
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
246
|
+
IconChevronDown.default,
|
|
247
|
+
{
|
|
248
|
+
size: 18,
|
|
249
|
+
stroke: 1.5,
|
|
250
|
+
"aria-hidden": true,
|
|
251
|
+
style: { color: index.fairmintVars.colorIconTertiary, flexShrink: 0 }
|
|
252
|
+
}
|
|
253
|
+
)
|
|
254
|
+
]
|
|
255
|
+
}
|
|
256
|
+
) : null
|
|
257
|
+
] })
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
)
|
|
261
|
+
}
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
exports.MOBILE_NAV_ROW_MIN_HEIGHT = MOBILE_NAV_ROW_MIN_HEIGHT;
|
|
265
|
+
exports.MOBILE_NAV_WIDTH = MOBILE_NAV_WIDTH;
|
|
266
|
+
exports.MobileNav = MobileNav;
|
|
267
|
+
//# sourceMappingURL=MobileNav.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileNav.cjs","sources":["../../../../src/components/layout/MobileNav/MobileNav.tsx"],"sourcesContent":["import { IconChevronDown, IconX } from \"@tabler/icons-react\";\nimport { type ReactNode, useState } from \"react\";\nimport { fairmintVars, radii } from \"../../../theme\";\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Drawer } from \"../../primitives/Drawer/Drawer\";\nimport { Box, Divider, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { getSideNavItemLabelText, type SideNavItem, type SideNavSection } from \"../SideNav/SideNav\";\n\n/** Full-bleed mobile nav sheet width — not the 260px desktop rail. */\nexport const MOBILE_NAV_WIDTH = \"100%\";\n\n/** Minimum touch target for destination / profile rows. */\nexport const MOBILE_NAV_ROW_MIN_HEIGHT = 48;\n\nexport interface MobileNavProfile {\n /** Primary line (user name). */\n displayName: string;\n /** Secondary line (company / email). */\n subline?: string;\n /** Avatar name for initials. Defaults to `displayName`. */\n avatarName?: string;\n /** Leading avatar node. When omitted, a text fallback is shown. */\n avatar?: ReactNode;\n}\n\nexport interface MobileNavProps {\n /** Whether the navigation sheet is open. */\n opened: boolean;\n /** Close handler (backdrop / escape). */\n onClose: () => void;\n /** Flat destination list when sections are not needed. */\n items?: SideNavItem[];\n /** Grouped destinations (section labels are not rendered — same as SideNav). */\n sections?: SideNavSection[];\n /** Leaf destination selected. Parents with children only expand/collapse. */\n onItemClick: (id: string) => void;\n /** Logo / brand chrome above destinations. */\n header?: ReactNode;\n /** Primary CTA above the profile (e.g. Start / Add investment). */\n cta?: ReactNode;\n /** Profile trigger shown at the bottom. Tapping calls `onProfileClick`. */\n profile?: MobileNavProfile;\n /** Called when the profile row is pressed (typically opens AccountSheet). */\n onProfileClick?: () => void;\n /** Accessible label for the navigation landmark. @default \"Main navigation\" */\n ariaLabel?: string;\n /** Overlay z-index. @default overlayZIndexAboveLegacyShell */\n zIndex?: number;\n}\n\nfunction MobileNavRow({\n item,\n depth,\n onItemClick,\n}: {\n item: SideNavItem;\n depth: number;\n onItemClick: (id: string) => void;\n}) {\n const hasChildren = Boolean(item.children?.length);\n const labelText = getSideNavItemLabelText(item);\n const childActive = item.children?.some((child) => child.active) ?? false;\n const [opened, setOpened] = useState(Boolean(item.open) || childActive);\n const active = Boolean(item.active) && !hasChildren;\n\n const paddingLeft = 12 + depth * 16;\n\n return (\n <Box>\n <UnstyledButton\n type=\"button\"\n disabled={item.disabled}\n aria-label={labelText}\n aria-current={active ? \"page\" : undefined}\n aria-expanded={hasChildren ? opened : undefined}\n onClick={() => {\n if (hasChildren) {\n setOpened((value) => !value);\n return;\n }\n onItemClick(item.id);\n }}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"100%\",\n minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,\n paddingLeft,\n paddingRight: 12,\n borderRadius: radii.md,\n textAlign: \"left\",\n cursor: item.disabled ? \"not-allowed\" : \"pointer\",\n opacity: item.disabled ? 0.5 : 1,\n backgroundColor: active ? fairmintVars.colorSurfaceSelected : \"transparent\",\n color: active ? fairmintVars.colorIconOnSurfaceSelected : fairmintVars.colorTextPrimary,\n }}\n styles={{\n root: {\n \"&:hover:not(:disabled)\": {\n backgroundColor: active\n ? fairmintVars.colorSurfaceSelected\n : fairmintVars.colorBgHover,\n },\n },\n }}\n >\n {item.icon ? (\n <Box\n component=\"span\"\n style={{\n display: \"inline-flex\",\n color: active\n ? fairmintVars.colorIconOnSurfaceSelected\n : fairmintVars.colorIconSecondary,\n flexShrink: 0,\n }}\n >\n {item.icon}\n </Box>\n ) : null}\n <Text\n size=\"md\"\n fw={active ? 600 : 500}\n style={{\n flex: 1,\n minWidth: 0,\n color: active ? fairmintVars.colorIconOnSurfaceSelected : undefined,\n }}\n truncate\n >\n {item.label}\n </Text>\n {item.rightSection}\n {hasChildren ? (\n <IconChevronDown\n size={18}\n stroke={1.5}\n aria-hidden\n style={{\n flexShrink: 0,\n transform: opened ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 120ms ease\",\n color: fairmintVars.colorIconTertiary,\n }}\n />\n ) : null}\n </UnstyledButton>\n\n {hasChildren && opened ? (\n <Stack gap={4} mt={4}>\n {item.children?.map((child) => (\n <MobileNavRow key={child.id} item={child} depth={depth + 1} onItemClick={onItemClick} />\n ))}\n </Stack>\n ) : null}\n </Box>\n );\n}\n\n/**\n * Mobile-optimized navigation sheet for product shells.\n *\n * Full-bleed left drawer with 48px touch rows, pinned CTA + profile, and an\n * always-visible close control (full-bleed leaves no backdrop to dismiss).\n * Pair `onProfileClick` with {@link AccountSheet} for Sign out.\n */\nexport function MobileNav({\n opened,\n onClose,\n items = [],\n sections,\n onItemClick,\n header,\n cta,\n profile,\n onProfileClick,\n ariaLabel = \"Main navigation\",\n zIndex = overlayZIndexAboveLegacyShell,\n}: MobileNavProps) {\n const resolvedSections = sections ?? [{ id: \"main\", items }];\n\n const handleItemClick = (id: string) => {\n onItemClick(id);\n onClose();\n };\n\n return (\n <Drawer\n opened={opened}\n onClose={onClose}\n position=\"left\"\n size={MOBILE_NAV_WIDTH}\n padding={0}\n withCloseButton={false}\n zIndex={zIndex}\n styles={{\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n },\n body: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n height: \"100%\",\n minHeight: 0,\n overflow: \"hidden\",\n padding: 0,\n },\n header: {\n display: \"none\",\n },\n }}\n >\n <Stack\n component=\"nav\"\n gap=\"md\"\n aria-label={ariaLabel}\n style={{\n height: \"100%\",\n padding: 16,\n paddingBottom: \"max(16px, env(safe-area-inset-bottom))\",\n boxSizing: \"border-box\",\n }}\n >\n <Group\n justify=\"space-between\"\n wrap=\"nowrap\"\n align=\"center\"\n gap=\"sm\"\n style={{ flexShrink: 0 }}\n >\n <Box style={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\" }}>\n {header}\n </Box>\n <ActionIcon\n type=\"button\"\n aria-label=\"Close navigation\"\n color=\"gray\"\n variant=\"subtle\"\n size=\"lg\"\n onClick={onClose}\n >\n <IconX size={20} stroke={1.5} />\n </ActionIcon>\n </Group>\n\n <Stack gap={4} style={{ flex: 1, minHeight: 0, overflow: \"auto\" }}>\n {resolvedSections.flatMap((section) =>\n section.items.map((item) => (\n <MobileNavRow\n key={`${section.id}:${item.id}`}\n item={item}\n depth={0}\n onItemClick={handleItemClick}\n />\n )),\n )}\n </Stack>\n\n {(cta || profile) && (\n <Stack gap=\"sm\" style={{ flexShrink: 0 }}>\n {cta ? <Box style={{ width: \"100%\" }}>{cta}</Box> : null}\n {cta && profile ? <Divider color={fairmintVars.colorBorderDefault} /> : null}\n {profile ? (\n <UnstyledButton\n type=\"button\"\n aria-label=\"Account menu\"\n aria-haspopup=\"dialog\"\n onClick={onProfileClick}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"100%\",\n minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,\n padding: 8,\n borderRadius: radii.md,\n textAlign: \"left\",\n cursor: onProfileClick ? \"pointer\" : \"default\",\n }}\n styles={{\n root: {\n \"&:hover\": {\n backgroundColor: fairmintVars.colorBgHover,\n },\n },\n }}\n >\n {profile.avatar}\n <Stack gap={0} style={{ minWidth: 0, flex: 1 }}>\n <Text size=\"sm\" fw={600} truncate>\n {profile.displayName}\n </Text>\n {profile.subline && profile.subline !== profile.displayName ? (\n <Text size=\"xs\" c=\"dimmed\" truncate>\n {profile.subline}\n </Text>\n ) : null}\n </Stack>\n <IconChevronDown\n size={18}\n stroke={1.5}\n aria-hidden\n style={{ color: fairmintVars.colorIconTertiary, flexShrink: 0 }}\n />\n </UnstyledButton>\n ) : null}\n </Stack>\n )}\n </Stack>\n </Drawer>\n );\n}\n"],"names":["getSideNavItemLabelText","useState","Box","jsxs","UnstyledButton","radii","fairmintVars","jsx","Text","IconChevronDown","Stack","zIndex","overlayZIndexAboveLegacyShell","Drawer","Group","ActionIcon","IconX","Divider"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { SideNavItem, SideNavSection } from '../SideNav/SideNav';
|
|
3
|
+
/** Full-bleed mobile nav sheet width — not the 260px desktop rail. */
|
|
4
|
+
export declare const MOBILE_NAV_WIDTH = "100%";
|
|
5
|
+
/** Minimum touch target for destination / profile rows. */
|
|
6
|
+
export declare const MOBILE_NAV_ROW_MIN_HEIGHT = 48;
|
|
7
|
+
export interface MobileNavProfile {
|
|
8
|
+
/** Primary line (user name). */
|
|
9
|
+
displayName: string;
|
|
10
|
+
/** Secondary line (company / email). */
|
|
11
|
+
subline?: string;
|
|
12
|
+
/** Avatar name for initials. Defaults to `displayName`. */
|
|
13
|
+
avatarName?: string;
|
|
14
|
+
/** Leading avatar node. When omitted, a text fallback is shown. */
|
|
15
|
+
avatar?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export interface MobileNavProps {
|
|
18
|
+
/** Whether the navigation sheet is open. */
|
|
19
|
+
opened: boolean;
|
|
20
|
+
/** Close handler (backdrop / escape). */
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
/** Flat destination list when sections are not needed. */
|
|
23
|
+
items?: SideNavItem[];
|
|
24
|
+
/** Grouped destinations (section labels are not rendered — same as SideNav). */
|
|
25
|
+
sections?: SideNavSection[];
|
|
26
|
+
/** Leaf destination selected. Parents with children only expand/collapse. */
|
|
27
|
+
onItemClick: (id: string) => void;
|
|
28
|
+
/** Logo / brand chrome above destinations. */
|
|
29
|
+
header?: ReactNode;
|
|
30
|
+
/** Primary CTA above the profile (e.g. Start / Add investment). */
|
|
31
|
+
cta?: ReactNode;
|
|
32
|
+
/** Profile trigger shown at the bottom. Tapping calls `onProfileClick`. */
|
|
33
|
+
profile?: MobileNavProfile;
|
|
34
|
+
/** Called when the profile row is pressed (typically opens AccountSheet). */
|
|
35
|
+
onProfileClick?: () => void;
|
|
36
|
+
/** Accessible label for the navigation landmark. @default "Main navigation" */
|
|
37
|
+
ariaLabel?: string;
|
|
38
|
+
/** Overlay z-index. @default overlayZIndexAboveLegacyShell */
|
|
39
|
+
zIndex?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Mobile-optimized navigation sheet for product shells.
|
|
43
|
+
*
|
|
44
|
+
* Full-bleed left drawer with 48px touch rows, pinned CTA + profile, and an
|
|
45
|
+
* always-visible close control (full-bleed leaves no backdrop to dismiss).
|
|
46
|
+
* Pair `onProfileClick` with {@link AccountSheet} for Sign out.
|
|
47
|
+
*/
|
|
48
|
+
export declare function MobileNav({ opened, onClose, items, sections, onItemClick, header, cta, profile, onProfileClick, ariaLabel, zIndex, }: MobileNavProps): import("react").JSX.Element;
|
|
49
|
+
//# sourceMappingURL=MobileNav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileNav.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/MobileNav/MobileNav.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAMjD,OAAO,EAA2B,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpG,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,2DAA2D;AAC3D,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mEAAmE;IACnE,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgHD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,OAAO,EACP,KAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAA6B,EAC7B,MAAsC,GACvC,EAAE,cAAc,+BAwIhB"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { fairmintVars, radii } from "../../../theme/index.js";
|
|
4
|
+
import { overlayZIndexAboveLegacyShell } from "../../../theme/zIndex.js";
|
|
5
|
+
import { ActionIcon } from "../../primitives/ActionIcon/ActionIcon.js";
|
|
6
|
+
import { Drawer } from "../../primitives/Drawer/Drawer.js";
|
|
7
|
+
import { Stack, Box, Divider } from "../../primitives/layout.js";
|
|
8
|
+
import { getSideNavItemLabelText } from "../SideNav/SideNav.js";
|
|
9
|
+
import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
|
|
10
|
+
import IconX from "../../../node_modules/@tabler/icons-react/dist/esm/icons/IconX.js";
|
|
11
|
+
import { UnstyledButton } from "../../../node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
|
|
12
|
+
import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
|
|
13
|
+
import IconChevronDown from "../../../node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js";
|
|
14
|
+
const MOBILE_NAV_WIDTH = "100%";
|
|
15
|
+
const MOBILE_NAV_ROW_MIN_HEIGHT = 48;
|
|
16
|
+
function MobileNavRow({
|
|
17
|
+
item,
|
|
18
|
+
depth,
|
|
19
|
+
onItemClick
|
|
20
|
+
}) {
|
|
21
|
+
const hasChildren = Boolean(item.children?.length);
|
|
22
|
+
const labelText = getSideNavItemLabelText(item);
|
|
23
|
+
const childActive = item.children?.some((child) => child.active) ?? false;
|
|
24
|
+
const [opened, setOpened] = useState(Boolean(item.open) || childActive);
|
|
25
|
+
const active = Boolean(item.active) && !hasChildren;
|
|
26
|
+
const paddingLeft = 12 + depth * 16;
|
|
27
|
+
return /* @__PURE__ */ jsxs(Box, { children: [
|
|
28
|
+
/* @__PURE__ */ jsxs(
|
|
29
|
+
UnstyledButton,
|
|
30
|
+
{
|
|
31
|
+
type: "button",
|
|
32
|
+
disabled: item.disabled,
|
|
33
|
+
"aria-label": labelText,
|
|
34
|
+
"aria-current": active ? "page" : void 0,
|
|
35
|
+
"aria-expanded": hasChildren ? opened : void 0,
|
|
36
|
+
onClick: () => {
|
|
37
|
+
if (hasChildren) {
|
|
38
|
+
setOpened((value) => !value);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
onItemClick(item.id);
|
|
42
|
+
},
|
|
43
|
+
style: {
|
|
44
|
+
display: "flex",
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
gap: 12,
|
|
47
|
+
width: "100%",
|
|
48
|
+
minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,
|
|
49
|
+
paddingLeft,
|
|
50
|
+
paddingRight: 12,
|
|
51
|
+
borderRadius: radii.md,
|
|
52
|
+
textAlign: "left",
|
|
53
|
+
cursor: item.disabled ? "not-allowed" : "pointer",
|
|
54
|
+
opacity: item.disabled ? 0.5 : 1,
|
|
55
|
+
backgroundColor: active ? fairmintVars.colorSurfaceSelected : "transparent",
|
|
56
|
+
color: active ? fairmintVars.colorIconOnSurfaceSelected : fairmintVars.colorTextPrimary
|
|
57
|
+
},
|
|
58
|
+
styles: {
|
|
59
|
+
root: {
|
|
60
|
+
"&:hover:not(:disabled)": {
|
|
61
|
+
backgroundColor: active ? fairmintVars.colorSurfaceSelected : fairmintVars.colorBgHover
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
children: [
|
|
66
|
+
item.icon ? /* @__PURE__ */ jsx(
|
|
67
|
+
Box,
|
|
68
|
+
{
|
|
69
|
+
component: "span",
|
|
70
|
+
style: {
|
|
71
|
+
display: "inline-flex",
|
|
72
|
+
color: active ? fairmintVars.colorIconOnSurfaceSelected : fairmintVars.colorIconSecondary,
|
|
73
|
+
flexShrink: 0
|
|
74
|
+
},
|
|
75
|
+
children: item.icon
|
|
76
|
+
}
|
|
77
|
+
) : null,
|
|
78
|
+
/* @__PURE__ */ jsx(
|
|
79
|
+
Text,
|
|
80
|
+
{
|
|
81
|
+
size: "md",
|
|
82
|
+
fw: active ? 600 : 500,
|
|
83
|
+
style: {
|
|
84
|
+
flex: 1,
|
|
85
|
+
minWidth: 0,
|
|
86
|
+
color: active ? fairmintVars.colorIconOnSurfaceSelected : void 0
|
|
87
|
+
},
|
|
88
|
+
truncate: true,
|
|
89
|
+
children: item.label
|
|
90
|
+
}
|
|
91
|
+
),
|
|
92
|
+
item.rightSection,
|
|
93
|
+
hasChildren ? /* @__PURE__ */ jsx(
|
|
94
|
+
IconChevronDown,
|
|
95
|
+
{
|
|
96
|
+
size: 18,
|
|
97
|
+
stroke: 1.5,
|
|
98
|
+
"aria-hidden": true,
|
|
99
|
+
style: {
|
|
100
|
+
flexShrink: 0,
|
|
101
|
+
transform: opened ? "rotate(180deg)" : "rotate(0deg)",
|
|
102
|
+
transition: "transform 120ms ease",
|
|
103
|
+
color: fairmintVars.colorIconTertiary
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
) : null
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
hasChildren && opened ? /* @__PURE__ */ jsx(Stack, { gap: 4, mt: 4, children: item.children?.map((child) => /* @__PURE__ */ jsx(MobileNavRow, { item: child, depth: depth + 1, onItemClick }, child.id)) }) : null
|
|
111
|
+
] });
|
|
112
|
+
}
|
|
113
|
+
function MobileNav({
|
|
114
|
+
opened,
|
|
115
|
+
onClose,
|
|
116
|
+
items = [],
|
|
117
|
+
sections,
|
|
118
|
+
onItemClick,
|
|
119
|
+
header,
|
|
120
|
+
cta,
|
|
121
|
+
profile,
|
|
122
|
+
onProfileClick,
|
|
123
|
+
ariaLabel = "Main navigation",
|
|
124
|
+
zIndex = overlayZIndexAboveLegacyShell
|
|
125
|
+
}) {
|
|
126
|
+
const resolvedSections = sections ?? [{ id: "main", items }];
|
|
127
|
+
const handleItemClick = (id) => {
|
|
128
|
+
onItemClick(id);
|
|
129
|
+
onClose();
|
|
130
|
+
};
|
|
131
|
+
return /* @__PURE__ */ jsx(
|
|
132
|
+
Drawer,
|
|
133
|
+
{
|
|
134
|
+
opened,
|
|
135
|
+
onClose,
|
|
136
|
+
position: "left",
|
|
137
|
+
size: MOBILE_NAV_WIDTH,
|
|
138
|
+
padding: 0,
|
|
139
|
+
withCloseButton: false,
|
|
140
|
+
zIndex,
|
|
141
|
+
styles: {
|
|
142
|
+
content: {
|
|
143
|
+
display: "flex",
|
|
144
|
+
flexDirection: "column",
|
|
145
|
+
height: "100%"
|
|
146
|
+
},
|
|
147
|
+
body: {
|
|
148
|
+
display: "flex",
|
|
149
|
+
flexDirection: "column",
|
|
150
|
+
flex: 1,
|
|
151
|
+
height: "100%",
|
|
152
|
+
minHeight: 0,
|
|
153
|
+
overflow: "hidden",
|
|
154
|
+
padding: 0
|
|
155
|
+
},
|
|
156
|
+
header: {
|
|
157
|
+
display: "none"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
children: /* @__PURE__ */ jsxs(
|
|
161
|
+
Stack,
|
|
162
|
+
{
|
|
163
|
+
component: "nav",
|
|
164
|
+
gap: "md",
|
|
165
|
+
"aria-label": ariaLabel,
|
|
166
|
+
style: {
|
|
167
|
+
height: "100%",
|
|
168
|
+
padding: 16,
|
|
169
|
+
paddingBottom: "max(16px, env(safe-area-inset-bottom))",
|
|
170
|
+
boxSizing: "border-box"
|
|
171
|
+
},
|
|
172
|
+
children: [
|
|
173
|
+
/* @__PURE__ */ jsxs(
|
|
174
|
+
Group,
|
|
175
|
+
{
|
|
176
|
+
justify: "space-between",
|
|
177
|
+
wrap: "nowrap",
|
|
178
|
+
align: "center",
|
|
179
|
+
gap: "sm",
|
|
180
|
+
style: { flexShrink: 0 },
|
|
181
|
+
children: [
|
|
182
|
+
/* @__PURE__ */ jsx(Box, { style: { flex: 1, minWidth: 0, display: "flex", alignItems: "center" }, children: header }),
|
|
183
|
+
/* @__PURE__ */ jsx(
|
|
184
|
+
ActionIcon,
|
|
185
|
+
{
|
|
186
|
+
type: "button",
|
|
187
|
+
"aria-label": "Close navigation",
|
|
188
|
+
color: "gray",
|
|
189
|
+
variant: "subtle",
|
|
190
|
+
size: "lg",
|
|
191
|
+
onClick: onClose,
|
|
192
|
+
children: /* @__PURE__ */ jsx(IconX, { size: 20, stroke: 1.5 })
|
|
193
|
+
}
|
|
194
|
+
)
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
),
|
|
198
|
+
/* @__PURE__ */ jsx(Stack, { gap: 4, style: { flex: 1, minHeight: 0, overflow: "auto" }, children: resolvedSections.flatMap(
|
|
199
|
+
(section) => section.items.map((item) => /* @__PURE__ */ jsx(
|
|
200
|
+
MobileNavRow,
|
|
201
|
+
{
|
|
202
|
+
item,
|
|
203
|
+
depth: 0,
|
|
204
|
+
onItemClick: handleItemClick
|
|
205
|
+
},
|
|
206
|
+
`${section.id}:${item.id}`
|
|
207
|
+
))
|
|
208
|
+
) }),
|
|
209
|
+
(cta || profile) && /* @__PURE__ */ jsxs(Stack, { gap: "sm", style: { flexShrink: 0 }, children: [
|
|
210
|
+
cta ? /* @__PURE__ */ jsx(Box, { style: { width: "100%" }, children: cta }) : null,
|
|
211
|
+
cta && profile ? /* @__PURE__ */ jsx(Divider, { color: fairmintVars.colorBorderDefault }) : null,
|
|
212
|
+
profile ? /* @__PURE__ */ jsxs(
|
|
213
|
+
UnstyledButton,
|
|
214
|
+
{
|
|
215
|
+
type: "button",
|
|
216
|
+
"aria-label": "Account menu",
|
|
217
|
+
"aria-haspopup": "dialog",
|
|
218
|
+
onClick: onProfileClick,
|
|
219
|
+
style: {
|
|
220
|
+
display: "flex",
|
|
221
|
+
alignItems: "center",
|
|
222
|
+
gap: 12,
|
|
223
|
+
width: "100%",
|
|
224
|
+
minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,
|
|
225
|
+
padding: 8,
|
|
226
|
+
borderRadius: radii.md,
|
|
227
|
+
textAlign: "left",
|
|
228
|
+
cursor: onProfileClick ? "pointer" : "default"
|
|
229
|
+
},
|
|
230
|
+
styles: {
|
|
231
|
+
root: {
|
|
232
|
+
"&:hover": {
|
|
233
|
+
backgroundColor: fairmintVars.colorBgHover
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
children: [
|
|
238
|
+
profile.avatar,
|
|
239
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 0, style: { minWidth: 0, flex: 1 }, children: [
|
|
240
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, truncate: true, children: profile.displayName }),
|
|
241
|
+
profile.subline && profile.subline !== profile.displayName ? /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", truncate: true, children: profile.subline }) : null
|
|
242
|
+
] }),
|
|
243
|
+
/* @__PURE__ */ jsx(
|
|
244
|
+
IconChevronDown,
|
|
245
|
+
{
|
|
246
|
+
size: 18,
|
|
247
|
+
stroke: 1.5,
|
|
248
|
+
"aria-hidden": true,
|
|
249
|
+
style: { color: fairmintVars.colorIconTertiary, flexShrink: 0 }
|
|
250
|
+
}
|
|
251
|
+
)
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
) : null
|
|
255
|
+
] })
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
)
|
|
259
|
+
}
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
export {
|
|
263
|
+
MOBILE_NAV_ROW_MIN_HEIGHT,
|
|
264
|
+
MOBILE_NAV_WIDTH,
|
|
265
|
+
MobileNav
|
|
266
|
+
};
|
|
267
|
+
//# sourceMappingURL=MobileNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileNav.js","sources":["../../../../src/components/layout/MobileNav/MobileNav.tsx"],"sourcesContent":["import { IconChevronDown, IconX } from \"@tabler/icons-react\";\nimport { type ReactNode, useState } from \"react\";\nimport { fairmintVars, radii } from \"../../../theme\";\nimport { overlayZIndexAboveLegacyShell } from \"../../../theme/zIndex\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Drawer } from \"../../primitives/Drawer/Drawer\";\nimport { Box, Divider, Group, Stack, Text, UnstyledButton } from \"../../primitives/layout\";\nimport { getSideNavItemLabelText, type SideNavItem, type SideNavSection } from \"../SideNav/SideNav\";\n\n/** Full-bleed mobile nav sheet width — not the 260px desktop rail. */\nexport const MOBILE_NAV_WIDTH = \"100%\";\n\n/** Minimum touch target for destination / profile rows. */\nexport const MOBILE_NAV_ROW_MIN_HEIGHT = 48;\n\nexport interface MobileNavProfile {\n /** Primary line (user name). */\n displayName: string;\n /** Secondary line (company / email). */\n subline?: string;\n /** Avatar name for initials. Defaults to `displayName`. */\n avatarName?: string;\n /** Leading avatar node. When omitted, a text fallback is shown. */\n avatar?: ReactNode;\n}\n\nexport interface MobileNavProps {\n /** Whether the navigation sheet is open. */\n opened: boolean;\n /** Close handler (backdrop / escape). */\n onClose: () => void;\n /** Flat destination list when sections are not needed. */\n items?: SideNavItem[];\n /** Grouped destinations (section labels are not rendered — same as SideNav). */\n sections?: SideNavSection[];\n /** Leaf destination selected. Parents with children only expand/collapse. */\n onItemClick: (id: string) => void;\n /** Logo / brand chrome above destinations. */\n header?: ReactNode;\n /** Primary CTA above the profile (e.g. Start / Add investment). */\n cta?: ReactNode;\n /** Profile trigger shown at the bottom. Tapping calls `onProfileClick`. */\n profile?: MobileNavProfile;\n /** Called when the profile row is pressed (typically opens AccountSheet). */\n onProfileClick?: () => void;\n /** Accessible label for the navigation landmark. @default \"Main navigation\" */\n ariaLabel?: string;\n /** Overlay z-index. @default overlayZIndexAboveLegacyShell */\n zIndex?: number;\n}\n\nfunction MobileNavRow({\n item,\n depth,\n onItemClick,\n}: {\n item: SideNavItem;\n depth: number;\n onItemClick: (id: string) => void;\n}) {\n const hasChildren = Boolean(item.children?.length);\n const labelText = getSideNavItemLabelText(item);\n const childActive = item.children?.some((child) => child.active) ?? false;\n const [opened, setOpened] = useState(Boolean(item.open) || childActive);\n const active = Boolean(item.active) && !hasChildren;\n\n const paddingLeft = 12 + depth * 16;\n\n return (\n <Box>\n <UnstyledButton\n type=\"button\"\n disabled={item.disabled}\n aria-label={labelText}\n aria-current={active ? \"page\" : undefined}\n aria-expanded={hasChildren ? opened : undefined}\n onClick={() => {\n if (hasChildren) {\n setOpened((value) => !value);\n return;\n }\n onItemClick(item.id);\n }}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"100%\",\n minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,\n paddingLeft,\n paddingRight: 12,\n borderRadius: radii.md,\n textAlign: \"left\",\n cursor: item.disabled ? \"not-allowed\" : \"pointer\",\n opacity: item.disabled ? 0.5 : 1,\n backgroundColor: active ? fairmintVars.colorSurfaceSelected : \"transparent\",\n color: active ? fairmintVars.colorIconOnSurfaceSelected : fairmintVars.colorTextPrimary,\n }}\n styles={{\n root: {\n \"&:hover:not(:disabled)\": {\n backgroundColor: active\n ? fairmintVars.colorSurfaceSelected\n : fairmintVars.colorBgHover,\n },\n },\n }}\n >\n {item.icon ? (\n <Box\n component=\"span\"\n style={{\n display: \"inline-flex\",\n color: active\n ? fairmintVars.colorIconOnSurfaceSelected\n : fairmintVars.colorIconSecondary,\n flexShrink: 0,\n }}\n >\n {item.icon}\n </Box>\n ) : null}\n <Text\n size=\"md\"\n fw={active ? 600 : 500}\n style={{\n flex: 1,\n minWidth: 0,\n color: active ? fairmintVars.colorIconOnSurfaceSelected : undefined,\n }}\n truncate\n >\n {item.label}\n </Text>\n {item.rightSection}\n {hasChildren ? (\n <IconChevronDown\n size={18}\n stroke={1.5}\n aria-hidden\n style={{\n flexShrink: 0,\n transform: opened ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 120ms ease\",\n color: fairmintVars.colorIconTertiary,\n }}\n />\n ) : null}\n </UnstyledButton>\n\n {hasChildren && opened ? (\n <Stack gap={4} mt={4}>\n {item.children?.map((child) => (\n <MobileNavRow key={child.id} item={child} depth={depth + 1} onItemClick={onItemClick} />\n ))}\n </Stack>\n ) : null}\n </Box>\n );\n}\n\n/**\n * Mobile-optimized navigation sheet for product shells.\n *\n * Full-bleed left drawer with 48px touch rows, pinned CTA + profile, and an\n * always-visible close control (full-bleed leaves no backdrop to dismiss).\n * Pair `onProfileClick` with {@link AccountSheet} for Sign out.\n */\nexport function MobileNav({\n opened,\n onClose,\n items = [],\n sections,\n onItemClick,\n header,\n cta,\n profile,\n onProfileClick,\n ariaLabel = \"Main navigation\",\n zIndex = overlayZIndexAboveLegacyShell,\n}: MobileNavProps) {\n const resolvedSections = sections ?? [{ id: \"main\", items }];\n\n const handleItemClick = (id: string) => {\n onItemClick(id);\n onClose();\n };\n\n return (\n <Drawer\n opened={opened}\n onClose={onClose}\n position=\"left\"\n size={MOBILE_NAV_WIDTH}\n padding={0}\n withCloseButton={false}\n zIndex={zIndex}\n styles={{\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n },\n body: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n height: \"100%\",\n minHeight: 0,\n overflow: \"hidden\",\n padding: 0,\n },\n header: {\n display: \"none\",\n },\n }}\n >\n <Stack\n component=\"nav\"\n gap=\"md\"\n aria-label={ariaLabel}\n style={{\n height: \"100%\",\n padding: 16,\n paddingBottom: \"max(16px, env(safe-area-inset-bottom))\",\n boxSizing: \"border-box\",\n }}\n >\n <Group\n justify=\"space-between\"\n wrap=\"nowrap\"\n align=\"center\"\n gap=\"sm\"\n style={{ flexShrink: 0 }}\n >\n <Box style={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\" }}>\n {header}\n </Box>\n <ActionIcon\n type=\"button\"\n aria-label=\"Close navigation\"\n color=\"gray\"\n variant=\"subtle\"\n size=\"lg\"\n onClick={onClose}\n >\n <IconX size={20} stroke={1.5} />\n </ActionIcon>\n </Group>\n\n <Stack gap={4} style={{ flex: 1, minHeight: 0, overflow: \"auto\" }}>\n {resolvedSections.flatMap((section) =>\n section.items.map((item) => (\n <MobileNavRow\n key={`${section.id}:${item.id}`}\n item={item}\n depth={0}\n onItemClick={handleItemClick}\n />\n )),\n )}\n </Stack>\n\n {(cta || profile) && (\n <Stack gap=\"sm\" style={{ flexShrink: 0 }}>\n {cta ? <Box style={{ width: \"100%\" }}>{cta}</Box> : null}\n {cta && profile ? <Divider color={fairmintVars.colorBorderDefault} /> : null}\n {profile ? (\n <UnstyledButton\n type=\"button\"\n aria-label=\"Account menu\"\n aria-haspopup=\"dialog\"\n onClick={onProfileClick}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"100%\",\n minHeight: MOBILE_NAV_ROW_MIN_HEIGHT,\n padding: 8,\n borderRadius: radii.md,\n textAlign: \"left\",\n cursor: onProfileClick ? \"pointer\" : \"default\",\n }}\n styles={{\n root: {\n \"&:hover\": {\n backgroundColor: fairmintVars.colorBgHover,\n },\n },\n }}\n >\n {profile.avatar}\n <Stack gap={0} style={{ minWidth: 0, flex: 1 }}>\n <Text size=\"sm\" fw={600} truncate>\n {profile.displayName}\n </Text>\n {profile.subline && profile.subline !== profile.displayName ? (\n <Text size=\"xs\" c=\"dimmed\" truncate>\n {profile.subline}\n </Text>\n ) : null}\n </Stack>\n <IconChevronDown\n size={18}\n stroke={1.5}\n aria-hidden\n style={{ color: fairmintVars.colorIconTertiary, flexShrink: 0 }}\n />\n </UnstyledButton>\n ) : null}\n </Stack>\n )}\n </Stack>\n </Drawer>\n );\n}\n"],"names":[],"mappings":"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"}
|