@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.
Files changed (505) hide show
  1. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.d.ts +1 -1
  2. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.d.ts.map +1 -1
  3. package/dist/components/ErrorFallback/ErrorFallback.d.ts +1 -1
  4. package/dist/components/ErrorFallback/ErrorFallback.d.ts.map +1 -1
  5. package/dist/components/FairmintLogo/FairmintBrandLogo.d.ts +1 -1
  6. package/dist/components/FairmintLogo/FairmintBrandLogo.d.ts.map +1 -1
  7. package/dist/components/FairmintLogo/FairmintLogo.d.ts +1 -1
  8. package/dist/components/FairmintLogo/FairmintLogo.d.ts.map +1 -1
  9. package/dist/components/FairmintLogo/FairmintLogoGraphic.d.ts +1 -1
  10. package/dist/components/FairmintLogo/FairmintLogoGraphic.d.ts.map +1 -1
  11. package/dist/components/FairmintLogo/FairmintLogoMark.d.ts +1 -1
  12. package/dist/components/FairmintLogo/FairmintLogoMark.d.ts.map +1 -1
  13. package/dist/components/FairmintLogo/FairmintLogoMarkRounded.d.ts +1 -1
  14. package/dist/components/FairmintLogo/FairmintLogoMarkRounded.d.ts.map +1 -1
  15. package/dist/components/FairmintProvider/FairmintNotifications.d.ts +1 -1
  16. package/dist/components/FairmintProvider/FairmintNotifications.d.ts.map +1 -1
  17. package/dist/components/FairmintProvider/FairmintProvider.d.ts +1 -1
  18. package/dist/components/FairmintProvider/FairmintProvider.d.ts.map +1 -1
  19. package/dist/components/LoadingOverlay/LoadingOverlay.d.ts +1 -1
  20. package/dist/components/LoadingOverlay/LoadingOverlay.d.ts.map +1 -1
  21. package/dist/components/LoadingSpinner/LoadingSpinner.d.ts +1 -1
  22. package/dist/components/LoadingSpinner/LoadingSpinner.d.ts.map +1 -1
  23. package/dist/components/form/BirthdayDatePicker/BirthdayDatePicker.d.ts +1 -1
  24. package/dist/components/form/BirthdayDatePicker/BirthdayDatePicker.d.ts.map +1 -1
  25. package/dist/components/form/EmailField.d.ts +1 -1
  26. package/dist/components/form/EmailField.d.ts.map +1 -1
  27. package/dist/components/form/EthereumAddressField/EthereumAddressField.d.ts +1 -1
  28. package/dist/components/form/EthereumAddressField/EthereumAddressField.d.ts.map +1 -1
  29. package/dist/components/form/Form.d.ts +1 -1
  30. package/dist/components/form/Form.d.ts.map +1 -1
  31. package/dist/components/form/FormField.d.ts +1 -1
  32. package/dist/components/form/FormField.d.ts.map +1 -1
  33. package/dist/components/form/PasswordField.d.ts +1 -1
  34. package/dist/components/form/PasswordField.d.ts.map +1 -1
  35. package/dist/components/form/PhoneField.d.ts +2 -1
  36. package/dist/components/form/PhoneField.d.ts.map +1 -1
  37. package/dist/components/form/SignatureNameField/SignatureNameField.d.ts +1 -1
  38. package/dist/components/form/SignatureNameField/SignatureNameField.d.ts.map +1 -1
  39. package/dist/components/form/USStateField/USStateField.d.ts +1 -1
  40. package/dist/components/form/USStateField/USStateField.d.ts.map +1 -1
  41. package/dist/components/form/ZipField/ZipField.d.ts +1 -1
  42. package/dist/components/form/ZipField/ZipField.d.ts.map +1 -1
  43. package/dist/components/generic/AgentSuggestion/AgentSuggestion.d.ts +2 -2
  44. package/dist/components/generic/AgentSuggestion/AgentSuggestion.d.ts.map +1 -1
  45. package/dist/components/generic/AnimateIn/AnimateIn.d.ts +1 -1
  46. package/dist/components/generic/AnimateIn/AnimateIn.d.ts.map +1 -1
  47. package/dist/components/generic/Banner/Banner.d.ts +1 -1
  48. package/dist/components/generic/Banner/Banner.d.ts.map +1 -1
  49. package/dist/components/generic/BottomSheet/BottomSheet.cjs +133 -0
  50. package/dist/components/generic/BottomSheet/BottomSheet.cjs.map +1 -0
  51. package/dist/components/generic/BottomSheet/BottomSheet.d.ts +31 -0
  52. package/dist/components/generic/BottomSheet/BottomSheet.d.ts.map +1 -0
  53. package/dist/components/generic/BottomSheet/BottomSheet.js +133 -0
  54. package/dist/components/generic/BottomSheet/BottomSheet.js.map +1 -0
  55. package/dist/components/generic/ClickableCard/ClickableCard.d.ts +1 -1
  56. package/dist/components/generic/ClickableCard/ClickableCard.d.ts.map +1 -1
  57. package/dist/components/generic/ColorDot/ColorDot.d.ts +1 -1
  58. package/dist/components/generic/ColorDot/ColorDot.d.ts.map +1 -1
  59. package/dist/components/generic/CompanyBanner/CompanyBanner.d.ts +1 -1
  60. package/dist/components/generic/CompanyBanner/CompanyBanner.d.ts.map +1 -1
  61. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.d.ts +1 -1
  62. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.d.ts.map +1 -1
  63. package/dist/components/generic/ConfirmDialog/ConfirmDialog.d.ts +1 -1
  64. package/dist/components/generic/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  65. package/dist/components/generic/Currency/Currency.d.ts +2 -1
  66. package/dist/components/generic/Currency/Currency.d.ts.map +1 -1
  67. package/dist/components/generic/DataRow/DataRow.d.ts +3 -3
  68. package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
  69. package/dist/components/generic/DataTable/DataTable.d.ts +1 -1
  70. package/dist/components/generic/DataTable/DataTable.d.ts.map +1 -1
  71. package/dist/components/generic/DateDisplay/DateDisplay.d.ts +1 -1
  72. package/dist/components/generic/DateDisplay/DateDisplay.d.ts.map +1 -1
  73. package/dist/components/generic/DetailDrawer/DetailDrawer.d.ts +1 -1
  74. package/dist/components/generic/DetailDrawer/DetailDrawer.d.ts.map +1 -1
  75. package/dist/components/generic/DocumentRow/DocumentRow.d.ts +1 -1
  76. package/dist/components/generic/DocumentRow/DocumentRow.d.ts.map +1 -1
  77. package/dist/components/generic/EditableSection/EditableSection.d.ts +1 -1
  78. package/dist/components/generic/EditableSection/EditableSection.d.ts.map +1 -1
  79. package/dist/components/generic/EmptyState/EmptyState.d.ts +1 -1
  80. package/dist/components/generic/EmptyState/EmptyState.d.ts.map +1 -1
  81. package/dist/components/generic/ErrorPage/ErrorPage.d.ts +1 -1
  82. package/dist/components/generic/ErrorPage/ErrorPage.d.ts.map +1 -1
  83. package/dist/components/generic/Eyebrow/Eyebrow.d.ts +1 -1
  84. package/dist/components/generic/Eyebrow/Eyebrow.d.ts.map +1 -1
  85. package/dist/components/generic/FileDropzone/FileDropzone.d.ts +1 -1
  86. package/dist/components/generic/FileDropzone/FileDropzone.d.ts.map +1 -1
  87. package/dist/components/generic/ListRow/ListRow.d.ts +1 -1
  88. package/dist/components/generic/ListRow/ListRow.d.ts.map +1 -1
  89. package/dist/components/generic/NotificationRow/NotificationRow.d.ts +1 -1
  90. package/dist/components/generic/NotificationRow/NotificationRow.d.ts.map +1 -1
  91. package/dist/components/generic/Percent/Percent.d.ts +1 -1
  92. package/dist/components/generic/Percent/Percent.d.ts.map +1 -1
  93. package/dist/components/generic/PhotoCropModal/PhotoCropModal.d.ts +1 -1
  94. package/dist/components/generic/PhotoCropModal/PhotoCropModal.d.ts.map +1 -1
  95. package/dist/components/generic/ProcessingState/ProcessingState.d.ts +1 -1
  96. package/dist/components/generic/ProcessingState/ProcessingState.d.ts.map +1 -1
  97. package/dist/components/generic/RadioCard/RadioCard.d.ts +1 -1
  98. package/dist/components/generic/RadioCard/RadioCard.d.ts.map +1 -1
  99. package/dist/components/generic/SearchInput/SearchInput.d.ts +1 -1
  100. package/dist/components/generic/SearchInput/SearchInput.d.ts.map +1 -1
  101. package/dist/components/generic/StatCard/StatCard.d.ts +1 -1
  102. package/dist/components/generic/StatCard/StatCard.d.ts.map +1 -1
  103. package/dist/components/generic/StatusBadge/StatusBadge.d.ts +1 -1
  104. package/dist/components/generic/StatusBadge/StatusBadge.d.ts.map +1 -1
  105. package/dist/components/generic/StepCard/StepCard.d.ts +1 -1
  106. package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
  107. package/dist/components/generic/StepFlow/StepFlow.d.ts +1 -1
  108. package/dist/components/generic/StepFlow/StepFlow.d.ts.map +1 -1
  109. package/dist/components/generic/StepProgress/StepProgress.d.ts +1 -1
  110. package/dist/components/generic/StepProgress/StepProgress.d.ts.map +1 -1
  111. package/dist/components/generic/TablePagination/TablePagination.d.ts +1 -1
  112. package/dist/components/generic/TablePagination/TablePagination.d.ts.map +1 -1
  113. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.d.ts +1 -1
  114. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.d.ts.map +1 -1
  115. package/dist/components/generic/TaskRow/TaskRow.d.ts +1 -1
  116. package/dist/components/generic/TaskRow/TaskRow.d.ts.map +1 -1
  117. package/dist/components/generic/ValidationWarning/ValidationWarning.d.ts +1 -1
  118. package/dist/components/generic/ValidationWarning/ValidationWarning.d.ts.map +1 -1
  119. package/dist/components/layout/AccountSheet/AccountSheet.cjs +123 -0
  120. package/dist/components/layout/AccountSheet/AccountSheet.cjs.map +1 -0
  121. package/dist/components/layout/AccountSheet/AccountSheet.d.ts +46 -0
  122. package/dist/components/layout/AccountSheet/AccountSheet.d.ts.map +1 -0
  123. package/dist/components/layout/AccountSheet/AccountSheet.js +123 -0
  124. package/dist/components/layout/AccountSheet/AccountSheet.js.map +1 -0
  125. package/dist/components/layout/AppHeader/AppHeader.d.ts +1 -1
  126. package/dist/components/layout/AppHeader/AppHeader.d.ts.map +1 -1
  127. package/dist/components/layout/MobileNav/MobileNav.cjs +267 -0
  128. package/dist/components/layout/MobileNav/MobileNav.cjs.map +1 -0
  129. package/dist/components/layout/MobileNav/MobileNav.d.ts +49 -0
  130. package/dist/components/layout/MobileNav/MobileNav.d.ts.map +1 -0
  131. package/dist/components/layout/MobileNav/MobileNav.js +267 -0
  132. package/dist/components/layout/MobileNav/MobileNav.js.map +1 -0
  133. package/dist/components/layout/PageHeader/PageHeader.d.ts +1 -1
  134. package/dist/components/layout/PageHeader/PageHeader.d.ts.map +1 -1
  135. package/dist/components/layout/SideNav/SideNav.d.ts +1 -1
  136. package/dist/components/layout/SideNav/SideNav.d.ts.map +1 -1
  137. package/dist/components/layout/UserMenu/UserMenu.d.ts +1 -1
  138. package/dist/components/layout/UserMenu/UserMenu.d.ts.map +1 -1
  139. package/dist/components/primitives/Alert/Alert.d.ts +1 -1
  140. package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
  141. package/dist/components/primitives/Drawer/Drawer.d.ts +1 -1
  142. package/dist/components/primitives/Drawer/Drawer.d.ts.map +1 -1
  143. package/dist/components/primitives/Loader/Loader.d.ts +1 -1
  144. package/dist/components/primitives/Loader/Loader.d.ts.map +1 -1
  145. package/dist/components/primitives/Menu/Menu.d.ts +1 -1
  146. package/dist/components/primitives/Menu/Menu.d.ts.map +1 -1
  147. package/dist/components/primitives/Modal/Modal.d.ts +1 -1
  148. package/dist/components/primitives/Modal/Modal.d.ts.map +1 -1
  149. package/dist/components/primitives/Pdf/Pdf.d.ts +2 -2
  150. package/dist/components/primitives/Pdf/Pdf.d.ts.map +1 -1
  151. package/dist/components/primitives/Popover/Popover.d.ts +1 -1
  152. package/dist/components/primitives/Popover/Popover.d.ts.map +1 -1
  153. package/dist/components/primitives/Skeleton/Skeleton.d.ts +1 -1
  154. package/dist/components/primitives/Skeleton/Skeleton.d.ts.map +1 -1
  155. package/dist/components/primitives/Table/Table.d.ts +1 -1
  156. package/dist/components/primitives/Table/Table.d.ts.map +1 -1
  157. package/dist/components/primitives/Tabs/Tabs.d.ts +3 -3
  158. package/dist/components/primitives/Tabs/Tabs.d.ts.map +1 -1
  159. package/dist/components/primitives/Tooltip/Tooltip.d.ts +1 -1
  160. package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
  161. package/dist/components/primitives/layout.d.ts +8 -8
  162. package/dist/components/primitives/layout.d.ts.map +1 -1
  163. package/dist/components/primitives/muiCompat.cjs.map +1 -1
  164. package/dist/components/primitives/muiCompat.d.ts +41 -42
  165. package/dist/components/primitives/muiCompat.d.ts.map +1 -1
  166. package/dist/components/primitives/muiCompat.js.map +1 -1
  167. package/dist/components/specific/DocumentRow/DocumentRow.d.ts +1 -1
  168. package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
  169. package/dist/components/specific/EquityGrantCard/EquityGrantCard.d.ts +1 -1
  170. package/dist/components/specific/EquityGrantCard/EquityGrantCard.d.ts.map +1 -1
  171. package/dist/components/specific/EquityRibbonChart/EquityRibbonChart.d.ts +1 -1
  172. package/dist/components/specific/EquityRibbonChart/EquityRibbonChart.d.ts.map +1 -1
  173. package/dist/components/specific/EquityRibbonChart/FairmintRibbonMark.d.ts +1 -1
  174. package/dist/components/specific/EquityRibbonChart/FairmintRibbonMark.d.ts.map +1 -1
  175. package/dist/components/specific/InvestmentCard/InvestmentCard.d.ts +1 -1
  176. package/dist/components/specific/InvestmentCard/InvestmentCard.d.ts.map +1 -1
  177. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.d.ts +1 -1
  178. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.d.ts.map +1 -1
  179. package/dist/components/specific/WalletList/WalletList.d.ts +1 -1
  180. package/dist/components/specific/WalletList/WalletList.d.ts.map +1 -1
  181. package/dist/components/specific/WalletListItem/WalletListItem.d.ts +1 -1
  182. package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -1
  183. package/dist/fairmint-ui.cjs +9 -0
  184. package/dist/fairmint-ui.cjs.map +1 -1
  185. package/dist/fairmint-ui.js +9 -0
  186. package/dist/fairmint-ui.js.map +1 -1
  187. package/dist/index.d.ts +6 -0
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.cjs.map +1 -1
  190. package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js.map +1 -1
  191. package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.cjs.map +1 -1
  192. package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js.map +1 -1
  193. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconActivity.cjs.map +1 -1
  194. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconActivity.js.map +1 -1
  195. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.cjs.map +1 -1
  196. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.js.map +1 -1
  197. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.cjs.map +1 -1
  198. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js.map +1 -1
  199. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.cjs.map +1 -1
  200. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js.map +1 -1
  201. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.cjs.map +1 -1
  202. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js.map +1 -1
  203. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsExchange.cjs.map +1 -1
  204. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsExchange.js.map +1 -1
  205. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMaximize.cjs.map +1 -1
  206. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMaximize.js.map +1 -1
  207. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsSort.cjs.map +1 -1
  208. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsSort.js.map +1 -1
  209. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAward.cjs.map +1 -1
  210. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAward.js.map +1 -1
  211. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBell.cjs.map +1 -1
  212. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBell.js.map +1 -1
  213. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.cjs.map +1 -1
  214. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js.map +1 -1
  215. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandFacebook.cjs.map +1 -1
  216. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandFacebook.js.map +1 -1
  217. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandInstagram.cjs.map +1 -1
  218. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandInstagram.js.map +1 -1
  219. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandLinkedin.cjs.map +1 -1
  220. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandLinkedin.js.map +1 -1
  221. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandX.cjs.map +1 -1
  222. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandX.js.map +1 -1
  223. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandYoutube.cjs.map +1 -1
  224. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBrandYoutube.js.map +1 -1
  225. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBriefcase.cjs.map +1 -1
  226. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBriefcase.js.map +1 -1
  227. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuilding.cjs.map +1 -1
  228. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuilding.js.map +1 -1
  229. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuildingBank.cjs.map +1 -1
  230. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBuildingBank.js.map +1 -1
  231. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.cjs.map +1 -1
  232. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.js.map +1 -1
  233. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarEvent.cjs.map +1 -1
  234. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarEvent.js.map +1 -1
  235. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCashBanknote.cjs.map +1 -1
  236. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCashBanknote.js.map +1 -1
  237. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCategory.cjs.map +1 -1
  238. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCategory.js.map +1 -1
  239. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCertificate.cjs.map +1 -1
  240. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCertificate.js.map +1 -1
  241. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartBar.cjs.map +1 -1
  242. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartBar.js.map +1 -1
  243. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartDots.cjs.map +1 -1
  244. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartDots.js.map +1 -1
  245. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartPie.cjs.map +1 -1
  246. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChartPie.js.map +1 -1
  247. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.cjs.map +1 -1
  248. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js.map +1 -1
  249. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.cjs.map +1 -1
  250. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js.map +1 -1
  251. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.cjs.map +1 -1
  252. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js.map +1 -1
  253. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.cjs.map +1 -1
  254. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js.map +1 -1
  255. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronUp.cjs.map +1 -1
  256. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronUp.js.map +1 -1
  257. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.cjs.map +1 -1
  258. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleCheck.js.map +1 -1
  259. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.cjs.map +1 -1
  260. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.js.map +1 -1
  261. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleOff.cjs.map +1 -1
  262. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleOff.js.map +1 -1
  263. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.cjs.map +1 -1
  264. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleX.js.map +1 -1
  265. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClipboardCheck.cjs.map +1 -1
  266. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClipboardCheck.js.map +1 -1
  267. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClock.cjs.map +1 -1
  268. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClock.js.map +1 -1
  269. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.cjs.map +1 -1
  270. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.js.map +1 -1
  271. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.cjs.map +1 -1
  272. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js.map +1 -1
  273. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceFloppy.cjs.map +1 -1
  274. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceFloppy.js.map +1 -1
  275. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.cjs.map +1 -1
  276. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js.map +1 -1
  277. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.cjs.map +1 -1
  278. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.js.map +1 -1
  279. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.cjs.map +1 -1
  280. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.js.map +1 -1
  281. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.cjs.map +1 -1
  282. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js.map +1 -1
  283. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEye.cjs.map +1 -1
  284. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconEye.js.map +1 -1
  285. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFile.cjs.map +1 -1
  286. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFile.js.map +1 -1
  287. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileDownload.cjs.map +1 -1
  288. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileDownload.js.map +1 -1
  289. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.cjs.map +1 -1
  290. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.js.map +1 -1
  291. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.cjs.map +1 -1
  292. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.js.map +1 -1
  293. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileTypePdf.cjs.map +1 -1
  294. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFileTypePdf.js.map +1 -1
  295. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderPlus.cjs.map +1 -1
  296. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderPlus.js.map +1 -1
  297. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.cjs.map +1 -1
  298. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js.map +1 -1
  299. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHourglass.cjs.map +1 -1
  300. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHourglass.js.map +1 -1
  301. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.cjs.map +1 -1
  302. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js.map +1 -1
  303. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLanguage.cjs.map +1 -1
  304. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLanguage.js.map +1 -1
  305. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftCollapse.cjs.map +1 -1
  306. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftCollapse.js.map +1 -1
  307. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftExpand.cjs.map +1 -1
  308. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutSidebarLeftExpand.js.map +1 -1
  309. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.cjs.map +1 -1
  310. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js.map +1 -1
  311. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen.cjs.map +1 -1
  312. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen.js.map +1 -1
  313. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMail.cjs.map +1 -1
  314. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMail.js.map +1 -1
  315. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMapPin.cjs.map +1 -1
  316. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconMapPin.js.map +1 -1
  317. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconNews.cjs.map +1 -1
  318. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconNews.js.map +1 -1
  319. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.cjs.map +1 -1
  320. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.js.map +1 -1
  321. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPause.cjs.map +1 -1
  322. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPause.js.map +1 -1
  323. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlay.cjs.map +1 -1
  324. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlay.js.map +1 -1
  325. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStop.cjs.map +1 -1
  326. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStop.js.map +1 -1
  327. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.cjs.map +1 -1
  328. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.js.map +1 -1
  329. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRefresh.cjs.map +1 -1
  330. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRefresh.js.map +1 -1
  331. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconReload.cjs.map +1 -1
  332. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconReload.js.map +1 -1
  333. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRocket.cjs.map +1 -1
  334. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconRocket.js.map +1 -1
  335. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.cjs.map +1 -1
  336. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js.map +1 -1
  337. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearchOff.cjs.map +1 -1
  338. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSearchOff.js.map +1 -1
  339. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSend.cjs.map +1 -1
  340. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSend.js.map +1 -1
  341. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.cjs.map +1 -1
  342. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.js.map +1 -1
  343. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldCheck.cjs.map +1 -1
  344. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldCheck.js.map +1 -1
  345. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldDollar.cjs.map +1 -1
  346. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldDollar.js.map +1 -1
  347. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldOff.cjs.map +1 -1
  348. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconShieldOff.js.map +1 -1
  349. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSitemap.cjs.map +1 -1
  350. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSitemap.js.map +1 -1
  351. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSparkles.cjs.map +1 -1
  352. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSparkles.js.map +1 -1
  353. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStar.cjs.map +1 -1
  354. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStar.js.map +1 -1
  355. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.cjs.map +1 -1
  356. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.js.map +1 -1
  357. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbDown.cjs.map +1 -1
  358. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbDown.js.map +1 -1
  359. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbUp.cjs.map +1 -1
  360. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconThumbUp.js.map +1 -1
  361. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTimeline.cjs.map +1 -1
  362. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTimeline.js.map +1 -1
  363. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.cjs.map +1 -1
  364. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js.map +1 -1
  365. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingUp.cjs.map +1 -1
  366. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingUp.js.map +1 -1
  367. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrophy.cjs.map +1 -1
  368. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTrophy.js.map +1 -1
  369. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUpload.cjs.map +1 -1
  370. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUpload.js.map +1 -1
  371. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.cjs.map +1 -1
  372. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js.map +1 -1
  373. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCheck.cjs.map +1 -1
  374. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCheck.js.map +1 -1
  375. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCircle.cjs.map +1 -1
  376. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserCircle.js.map +1 -1
  377. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserPlus.cjs.map +1 -1
  378. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUserPlus.js.map +1 -1
  379. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsers.cjs.map +1 -1
  380. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsers.js.map +1 -1
  381. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersGroup.cjs.map +1 -1
  382. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersGroup.js.map +1 -1
  383. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersPlus.cjs.map +1 -1
  384. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUsersPlus.js.map +1 -1
  385. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconX.cjs.map +1 -1
  386. package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js.map +1 -1
  387. package/dist/node_modules/dayjs/dayjs.min.cjs +4 -4
  388. package/dist/node_modules/dayjs/dayjs.min.cjs.map +1 -1
  389. package/dist/node_modules/dayjs/dayjs.min.js +4 -4
  390. package/dist/node_modules/dayjs/dayjs.min.js.map +1 -1
  391. package/dist/node_modules/zod/v4/classic/checks.cjs +0 -1
  392. package/dist/node_modules/zod/v4/classic/checks.cjs.map +1 -1
  393. package/dist/node_modules/zod/v4/classic/checks.js +0 -1
  394. package/dist/node_modules/zod/v4/classic/checks.js.map +1 -1
  395. package/dist/node_modules/zod/v4/classic/coerce.cjs +1 -2
  396. package/dist/node_modules/zod/v4/classic/coerce.cjs.map +1 -1
  397. package/dist/node_modules/zod/v4/classic/coerce.js +1 -2
  398. package/dist/node_modules/zod/v4/classic/coerce.js.map +1 -1
  399. package/dist/node_modules/zod/v4/classic/compat.cjs +0 -1
  400. package/dist/node_modules/zod/v4/classic/compat.cjs.map +1 -1
  401. package/dist/node_modules/zod/v4/classic/compat.js +0 -1
  402. package/dist/node_modules/zod/v4/classic/compat.js.map +1 -1
  403. package/dist/node_modules/zod/v4/classic/errors.cjs +4 -5
  404. package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -1
  405. package/dist/node_modules/zod/v4/classic/errors.js +4 -5
  406. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -1
  407. package/dist/node_modules/zod/v4/classic/external.cjs +2 -0
  408. package/dist/node_modules/zod/v4/classic/external.cjs.map +1 -1
  409. package/dist/node_modules/zod/v4/classic/external.js +3 -1
  410. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +16 -10
  411. package/dist/node_modules/zod/v4/classic/from-json-schema.cjs.map +1 -1
  412. package/dist/node_modules/zod/v4/classic/from-json-schema.js +16 -10
  413. package/dist/node_modules/zod/v4/classic/from-json-schema.js.map +1 -1
  414. package/dist/node_modules/zod/v4/classic/iso.cjs +2 -3
  415. package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -1
  416. package/dist/node_modules/zod/v4/classic/iso.js +2 -3
  417. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -1
  418. package/dist/node_modules/zod/v4/classic/parse.cjs +1 -2
  419. package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -1
  420. package/dist/node_modules/zod/v4/classic/parse.js +1 -2
  421. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -1
  422. package/dist/node_modules/zod/v4/classic/schemas.cjs +325 -112
  423. package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -1
  424. package/dist/node_modules/zod/v4/classic/schemas.js +327 -114
  425. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -1
  426. package/dist/node_modules/zod/v4/core/api.cjs +2 -2
  427. package/dist/node_modules/zod/v4/core/api.cjs.map +1 -1
  428. package/dist/node_modules/zod/v4/core/api.js +2 -2
  429. package/dist/node_modules/zod/v4/core/api.js.map +1 -1
  430. package/dist/node_modules/zod/v4/core/core.cjs +6 -4
  431. package/dist/node_modules/zod/v4/core/core.cjs.map +1 -1
  432. package/dist/node_modules/zod/v4/core/core.js +6 -4
  433. package/dist/node_modules/zod/v4/core/core.js.map +1 -1
  434. package/dist/node_modules/zod/v4/core/errors.cjs +24 -21
  435. package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -1
  436. package/dist/node_modules/zod/v4/core/errors.js +24 -21
  437. package/dist/node_modules/zod/v4/core/errors.js.map +1 -1
  438. package/dist/node_modules/zod/v4/core/index.cjs +1 -0
  439. package/dist/node_modules/zod/v4/core/index.cjs.map +1 -1
  440. package/dist/node_modules/zod/v4/core/index.js +2 -1
  441. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +15 -22
  442. package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -1
  443. package/dist/node_modules/zod/v4/core/json-schema-processors.js +15 -22
  444. package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -1
  445. package/dist/node_modules/zod/v4/core/parse.cjs +7 -7
  446. package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -1
  447. package/dist/node_modules/zod/v4/core/parse.js +7 -7
  448. package/dist/node_modules/zod/v4/core/parse.js.map +1 -1
  449. package/dist/node_modules/zod/v4/core/regexes.cjs +3 -1
  450. package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -1
  451. package/dist/node_modules/zod/v4/core/regexes.js +3 -1
  452. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -1
  453. package/dist/node_modules/zod/v4/core/schemas.cjs +176 -53
  454. package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -1
  455. package/dist/node_modules/zod/v4/core/schemas.js +178 -55
  456. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -1
  457. package/dist/node_modules/zod/v4/core/to-json-schema.cjs +8 -1
  458. package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -1
  459. package/dist/node_modules/zod/v4/core/to-json-schema.js +8 -1
  460. package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -1
  461. package/dist/node_modules/zod/v4/core/util.cjs +45 -27
  462. package/dist/node_modules/zod/v4/core/util.cjs.map +1 -1
  463. package/dist/node_modules/zod/v4/core/util.js +45 -27
  464. package/dist/node_modules/zod/v4/core/util.js.map +1 -1
  465. package/dist/node_modules/zod/v4/core/versions.cjs +2 -2
  466. package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -1
  467. package/dist/node_modules/zod/v4/core/versions.js +2 -2
  468. package/dist/node_modules/zod/v4/core/versions.js.map +1 -1
  469. package/dist/node_modules/zod/v4/locales/el.cjs +112 -0
  470. package/dist/node_modules/zod/v4/locales/el.cjs.map +1 -0
  471. package/dist/node_modules/zod/v4/locales/el.js +113 -0
  472. package/dist/node_modules/zod/v4/locales/el.js.map +1 -0
  473. package/dist/node_modules/zod/v4/locales/en.cjs +4 -0
  474. package/dist/node_modules/zod/v4/locales/en.cjs.map +1 -1
  475. package/dist/node_modules/zod/v4/locales/en.js +4 -0
  476. package/dist/node_modules/zod/v4/locales/en.js.map +1 -1
  477. package/dist/node_modules/zod/v4/locales/fr.cjs +25 -8
  478. package/dist/node_modules/zod/v4/locales/fr.cjs.map +1 -1
  479. package/dist/node_modules/zod/v4/locales/fr.js +25 -8
  480. package/dist/node_modules/zod/v4/locales/fr.js.map +1 -1
  481. package/dist/node_modules/zod/v4/locales/hr.cjs +125 -0
  482. package/dist/node_modules/zod/v4/locales/hr.cjs.map +1 -0
  483. package/dist/node_modules/zod/v4/locales/hr.js +126 -0
  484. package/dist/node_modules/zod/v4/locales/hr.js.map +1 -0
  485. package/dist/node_modules/zod/v4/locales/index.cjs +6 -0
  486. package/dist/node_modules/zod/v4/locales/index.cjs.map +1 -1
  487. package/dist/node_modules/zod/v4/locales/index.js +88 -82
  488. package/dist/node_modules/zod/v4/locales/index.js.map +1 -1
  489. package/dist/node_modules/zod/v4/locales/it.cjs +1 -1
  490. package/dist/node_modules/zod/v4/locales/it.cjs.map +1 -1
  491. package/dist/node_modules/zod/v4/locales/it.js +1 -1
  492. package/dist/node_modules/zod/v4/locales/it.js.map +1 -1
  493. package/dist/node_modules/zod/v4/locales/ka.cjs +8 -8
  494. package/dist/node_modules/zod/v4/locales/ka.cjs.map +1 -1
  495. package/dist/node_modules/zod/v4/locales/ka.js +8 -8
  496. package/dist/node_modules/zod/v4/locales/ka.js.map +1 -1
  497. package/dist/node_modules/zod/v4/locales/ro.cjs +122 -0
  498. package/dist/node_modules/zod/v4/locales/ro.cjs.map +1 -0
  499. package/dist/node_modules/zod/v4/locales/ro.js +123 -0
  500. package/dist/node_modules/zod/v4/locales/ro.js.map +1 -0
  501. package/dist/node_modules/zod/v4/locales/uz.cjs +2 -1
  502. package/dist/node_modules/zod/v4/locales/uz.cjs.map +1 -1
  503. package/dist/node_modules/zod/v4/locales/uz.js +2 -1
  504. package/dist/node_modules/zod/v4/locales/uz.js.map +1 -1
  505. 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":";;;;;;;;;;;;;;;AAUO,MAAM,mBAAmB;AAGzB,MAAM,4BAA4B;AAsCzC,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,cAAc,QAAQ,KAAK,UAAU,MAAM;AACjD,QAAM,YAAYA,QAAAA,wBAAwB,IAAI;AAC9C,QAAM,cAAc,KAAK,UAAU,KAAK,CAAC,UAAU,MAAM,MAAM,KAAK;AACpE,QAAM,CAAC,QAAQ,SAAS,IAAIC,MAAAA,SAAS,QAAQ,KAAK,IAAI,KAAK,WAAW;AACtE,QAAM,SAAS,QAAQ,KAAK,MAAM,KAAK,CAAC;AAExC,QAAM,cAAc,KAAK,QAAQ;AAEjC,yCACGC,YAAA,EACC,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,eAAAA;AAAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAU,KAAK;AAAA,QACf,cAAY;AAAA,QACZ,gBAAc,SAAS,SAAS;AAAA,QAChC,iBAAe,cAAc,SAAS;AAAA,QACtC,SAAS,MAAM;AACb,cAAI,aAAa;AACf,sBAAU,CAAC,UAAU,CAAC,KAAK;AAC3B;AAAA,UACF;AACA,sBAAY,KAAK,EAAE;AAAA,QACrB;AAAA,QACA,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK;AAAA,UACL,OAAO;AAAA,UACP,WAAW;AAAA,UACX;AAAA,UACA,cAAc;AAAA,UACd,cAAcC,MAAAA,MAAM;AAAA,UACpB,WAAW;AAAA,UACX,QAAQ,KAAK,WAAW,gBAAgB;AAAA,UACxC,SAAS,KAAK,WAAW,MAAM;AAAA,UAC/B,iBAAiB,SAASC,mBAAa,uBAAuB;AAAA,UAC9D,OAAO,SAASA,mBAAa,6BAA6BA,MAAAA,aAAa;AAAA,QAAA;AAAA,QAEzE,QAAQ;AAAA,UACN,MAAM;AAAA,YACJ,0BAA0B;AAAA,cACxB,iBAAiB,SACbA,mBAAa,uBACbA,MAAAA,aAAa;AAAA,YAAA;AAAA,UACnB;AAAA,QACF;AAAA,QAGD,UAAA;AAAA,UAAA,KAAK,OACJC,2BAAAA;AAAAA,YAACL,OAAAA;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,OAAO,SACHI,MAAAA,aAAa,6BACbA,MAAAA,aAAa;AAAA,gBACjB,YAAY;AAAA,cAAA;AAAA,cAGb,UAAA,KAAK;AAAA,YAAA;AAAA,UAAA,IAEN;AAAA,UACJC,2BAAAA;AAAAA,YAACC,KAAAA;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,IAAI,SAAS,MAAM;AAAA,cACnB,OAAO;AAAA,gBACL,MAAM;AAAA,gBACN,UAAU;AAAA,gBACV,OAAO,SAASF,MAAAA,aAAa,6BAA6B;AAAA,cAAA;AAAA,cAE5D,UAAQ;AAAA,cAEP,UAAA,KAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UAEP,KAAK;AAAA,UACL,cACCC,2BAAAA;AAAAA,YAACE,gBAAAA;AAAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,QAAQ;AAAA,cACR,eAAW;AAAA,cACX,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,WAAW,SAAS,mBAAmB;AAAA,gBACvC,YAAY;AAAA,gBACZ,OAAOH,MAAAA,aAAa;AAAA,cAAA;AAAA,YACtB;AAAA,UAAA,IAEA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGL,eAAe,SACdC,2BAAAA,IAACG,OAAAA,OAAA,EAAM,KAAK,GAAG,IAAI,GAChB,UAAA,KAAK,UAAU,IAAI,CAAC,UACnBH,2BAAAA,IAAC,cAAA,EAA4B,MAAM,OAAO,OAAO,QAAQ,GAAG,YAAA,GAAzC,MAAM,EAA6D,CACvF,EAAA,CACH,IACE;AAAA,EAAA,GACN;AAEJ;AASO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA,QAAQ,CAAA;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EAAA,QACZI,WAASC,OAAAA;AACX,GAAmB;AACjB,QAAM,mBAAmB,YAAY,CAAC,EAAE,IAAI,QAAQ,OAAO;AAE3D,QAAM,kBAAkB,CAAC,OAAe;AACtC,gBAAY,EAAE;AACd,YAAA;AAAA,EACF;AAEA,SACEL,2BAAAA;AAAAA,IAACM,OAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAS;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MAAA,QACjBF;AAAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,UACP,SAAS;AAAA,UACT,eAAe;AAAA,UACf,QAAQ;AAAA,QAAA;AAAA,QAEV,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,eAAe;AAAA,UACf,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,UAAU;AAAA,UACV,SAAS;AAAA,QAAA;AAAA,QAEX,QAAQ;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MACX;AAAA,MAGF,UAAAR,2BAAAA;AAAAA,QAACO,OAAAA;AAAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,KAAI;AAAA,UACJ,cAAY;AAAA,UACZ,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAe;AAAA,YACf,WAAW;AAAA,UAAA;AAAA,UAGb,UAAA;AAAA,YAAAP,2BAAAA;AAAAA,cAACW,MAAAA;AAAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,OAAM;AAAA,gBACN,KAAI;AAAA,gBACJ,OAAO,EAAE,YAAY,EAAA;AAAA,gBAErB,UAAA;AAAA,kBAAAP,2BAAAA,IAACL,OAAAA,KAAA,EAAI,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,QAAQ,YAAY,SAAA,GAC9D,UAAA,QACH;AAAA,kBACAK,2BAAAA;AAAAA,oBAACQ,WAAAA;AAAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,cAAW;AAAA,sBACX,OAAM;AAAA,sBACN,SAAQ;AAAA,sBACR,MAAK;AAAA,sBACL,SAAS;AAAA,sBAET,UAAAR,2BAAAA,IAACS,eAAA,EAAM,MAAM,IAAI,QAAQ,IAAA,CAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAChC;AAAA,cAAA;AAAA,YAAA;AAAA,YAGFT,2BAAAA,IAACG,OAAAA,OAAA,EAAM,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,OAAA,GACtD,UAAA,iBAAiB;AAAA,cAAQ,CAAC,YACzB,QAAQ,MAAM,IAAI,CAAC,SACjBH,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC;AAAA,kBACA,OAAO;AAAA,kBACP,aAAa;AAAA,gBAAA;AAAA,gBAHR,GAAG,QAAQ,EAAE,IAAI,KAAK,EAAE;AAAA,cAAA,CAKhC;AAAA,YAAA,GAEL;AAAA,aAEE,OAAO,YACPJ,2BAAAA,KAACO,OAAAA,OAAA,EAAM,KAAI,MAAK,OAAO,EAAE,YAAY,EAAA,GAClC,UAAA;AAAA,cAAA,MAAMH,2BAAAA,IAACL,cAAI,OAAO,EAAE,OAAO,UAAW,eAAI,IAAS;AAAA,cACnD,OAAO,UAAUK,2BAAAA,IAACU,OAAAA,WAAQ,OAAOX,MAAAA,aAAa,oBAAoB,IAAK;AAAA,cACvE,UACCH,2BAAAA;AAAAA,gBAACC,eAAAA;AAAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,cAAW;AAAA,kBACX,iBAAc;AAAA,kBACd,SAAS;AAAA,kBACT,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,KAAK;AAAA,oBACL,OAAO;AAAA,oBACP,WAAW;AAAA,oBACX,SAAS;AAAA,oBACT,cAAcC,MAAAA,MAAM;AAAA,oBACpB,WAAW;AAAA,oBACX,QAAQ,iBAAiB,YAAY;AAAA,kBAAA;AAAA,kBAEvC,QAAQ;AAAA,oBACN,MAAM;AAAA,sBACJ,WAAW;AAAA,wBACT,iBAAiBC,MAAAA,aAAa;AAAA,sBAAA;AAAA,oBAChC;AAAA,kBACF;AAAA,kBAGD,UAAA;AAAA,oBAAA,QAAQ;AAAA,oBACTH,2BAAAA,KAACO,OAAAA,OAAA,EAAM,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,MAAM,EAAA,GACzC,UAAA;AAAA,sBAAAH,2BAAAA,IAACC,KAAAA,MAAA,EAAK,MAAK,MAAK,IAAI,KAAK,UAAQ,MAC9B,kBAAQ,YAAA,CACX;AAAA,sBACC,QAAQ,WAAW,QAAQ,YAAY,QAAQ,cAC9CD,2BAAAA,IAACC,KAAAA,MAAA,EAAK,MAAK,MAAK,GAAE,UAAS,UAAQ,MAChC,UAAA,QAAQ,SACX,IACE;AAAA,oBAAA,GACN;AAAA,oBACAD,2BAAAA;AAAAA,sBAACE,gBAAAA;AAAAA,sBAAA;AAAA,wBACC,MAAM;AAAA,wBACN,QAAQ;AAAA,wBACR,eAAW;AAAA,wBACX,OAAO,EAAE,OAAOH,MAAAA,aAAa,mBAAmB,YAAY,EAAA;AAAA,sBAAE;AAAA,oBAAA;AAAA,kBAChE;AAAA,gBAAA;AAAA,cAAA,IAEA;AAAA,YAAA,EAAA,CACN;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGN;;;;"}
@@ -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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"}