@stackcraftmx/calcita 0.23.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/README.md +127 -22
  2. package/cli/projectFiles.js +5 -3
  3. package/cli/templates/project/README.md.tpl +28 -0
  4. package/cli/templates/project/public/manifest.webmanifest.tpl +6 -6
  5. package/cli/templates/project/src/app/AppProviders.jsx.tpl +9 -4
  6. package/cli/templates/project/src/app/appRouter.jsx.tpl +4 -2
  7. package/cli/templates/project/src/app/appSettings.js.tpl +14 -0
  8. package/cli/templates/project/src/core/AppLogo.jsx.tpl +3 -1
  9. package/cli/templates/project/src/core/index.js.tpl +1 -0
  10. package/cli/templates/project/src/core/publicPaths.js.tpl +24 -0
  11. package/cli/templates/project/vite.config.js.tpl +27 -1
  12. package/dist/DataTable/AuditTrailTable.js +5 -3
  13. package/dist/DataTable/AuditTrailTable.js.map +1 -1
  14. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +2 -1
  15. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -1
  16. package/dist/DataTable/EmptyState.js +2 -2
  17. package/dist/DataTable/EmptyState.js.map +1 -1
  18. package/dist/DataTable/FilterChips.js +2 -2
  19. package/dist/DataTable/FilterChips.js.map +1 -1
  20. package/dist/DataTable/GoToPage.js +4 -3
  21. package/dist/DataTable/GoToPage.js.map +1 -1
  22. package/dist/DataTable/ServerTable.js +153 -83
  23. package/dist/DataTable/ServerTable.js.map +1 -1
  24. package/dist/DataTable/rowSelection.js +61 -0
  25. package/dist/DataTable/rowSelection.js.map +1 -0
  26. package/dist/access/PermissionMatrix.js +3 -2
  27. package/dist/access/PermissionMatrix.js.map +1 -1
  28. package/dist/account/AccountSecuritySection.js +2 -2
  29. package/dist/account/AccountSecuritySection.js.map +1 -1
  30. package/dist/account/ForgotPasswordScreen.js +5 -4
  31. package/dist/account/ForgotPasswordScreen.js.map +1 -1
  32. package/dist/account/ProfileScreen.js +39 -13
  33. package/dist/account/ProfileScreen.js.map +1 -1
  34. package/dist/account/ResetPasswordScreen.js +3 -2
  35. package/dist/account/ResetPasswordScreen.js.map +1 -1
  36. package/dist/account/SignInScreen.js +7 -6
  37. package/dist/account/SignInScreen.js.map +1 -1
  38. package/dist/account/accountConnector.js.map +1 -1
  39. package/dist/account/restAccountConnector.js +2 -1
  40. package/dist/account/restAccountConnector.js.map +1 -1
  41. package/dist/adapters/reactRouterRoutes.js +7 -6
  42. package/dist/adapters/reactRouterRoutes.js.map +1 -1
  43. package/dist/api/createApiClient.js +40 -5
  44. package/dist/api/createApiClient.js.map +1 -1
  45. package/dist/appShell/AccountMenu.js +15 -23
  46. package/dist/appShell/AccountMenu.js.map +1 -1
  47. package/dist/appShell/AppLayout.js +42 -15
  48. package/dist/appShell/AppLayout.js.map +1 -1
  49. package/dist/appShell/AppearanceSettings.js +29 -6
  50. package/dist/appShell/AppearanceSettings.js.map +1 -1
  51. package/dist/appShell/AuthLayout.js +2 -0
  52. package/dist/appShell/AuthLayout.js.map +1 -1
  53. package/dist/appShell/BarActionButton.js +3 -3
  54. package/dist/appShell/BarActionButton.js.map +1 -1
  55. package/dist/appShell/BarActions.js +19 -8
  56. package/dist/appShell/BarActions.js.map +1 -1
  57. package/dist/appShell/BarCapsule.js +19 -4
  58. package/dist/appShell/BarCapsule.js.map +1 -1
  59. package/dist/appShell/BarSearch.js +92 -0
  60. package/dist/appShell/BarSearch.js.map +1 -0
  61. package/dist/appShell/HeaderTools.js +4 -2
  62. package/dist/appShell/HeaderTools.js.map +1 -1
  63. package/dist/appShell/MenuLinks.js +36 -0
  64. package/dist/appShell/MenuLinks.js.map +1 -0
  65. package/dist/appShell/MobileTabBar.js +6 -4
  66. package/dist/appShell/MobileTabBar.js.map +1 -1
  67. package/dist/appShell/SettingsMenu.js +10 -5
  68. package/dist/appShell/SettingsMenu.js.map +1 -1
  69. package/dist/appShell/SideMenu.js +5 -3
  70. package/dist/appShell/SideMenu.js.map +1 -1
  71. package/dist/appShell/SideMenuEntry.js +3 -3
  72. package/dist/appShell/SideMenuEntry.js.map +1 -1
  73. package/dist/appShell/SubmenuActionsMenu.js +3 -4
  74. package/dist/appShell/SubmenuActionsMenu.js.map +1 -1
  75. package/dist/appShell/TopMenu.js +5 -6
  76. package/dist/appShell/TopMenu.js.map +1 -1
  77. package/dist/appShell/Wordmark.js +11 -0
  78. package/dist/appShell/Wordmark.js.map +1 -0
  79. package/dist/appShell/menuItemText.js +4 -0
  80. package/dist/appShell/menuItemText.js.map +1 -1
  81. package/dist/appShell/shellSizes.js +2 -0
  82. package/dist/appShell/shellSizes.js.map +1 -1
  83. package/dist/auth/PasswordChecklist.js +2 -2
  84. package/dist/auth/PasswordChecklist.js.map +1 -1
  85. package/dist/calendar/EventCalendar.js +16 -5
  86. package/dist/calendar/EventCalendar.js.map +1 -1
  87. package/dist/calendar/EventDetails.js +74 -0
  88. package/dist/calendar/EventDetails.js.map +1 -0
  89. package/dist/calendar/calendarEvents.js +31 -0
  90. package/dist/calendar/calendarEvents.js.map +1 -0
  91. package/dist/calendar.js +8 -1
  92. package/dist/calendar.js.map +1 -1
  93. package/dist/charts.js +10 -1
  94. package/dist/charts.js.map +1 -1
  95. package/dist/datePickers/DateInput.js +3 -2
  96. package/dist/datePickers/DateInput.js.map +1 -1
  97. package/dist/downloads/DownloadManager.js +14 -20
  98. package/dist/downloads/DownloadManager.js.map +1 -1
  99. package/dist/downloads/downloadQueue.js +4 -2
  100. package/dist/downloads/downloadQueue.js.map +1 -1
  101. package/dist/downloads/downloadsMachine.js +4 -1
  102. package/dist/downloads/downloadsMachine.js.map +1 -1
  103. package/dist/downloads/fileTypes.js +22 -0
  104. package/dist/downloads/fileTypes.js.map +1 -0
  105. package/dist/feedback/ConfirmDialog.js +3 -2
  106. package/dist/feedback/ConfirmDialog.js.map +1 -1
  107. package/dist/feedback/ModalWaiting.js +2 -2
  108. package/dist/feedback/ModalWaiting.js.map +1 -1
  109. package/dist/feedback/NewBuildNotice.js +2 -2
  110. package/dist/feedback/NewBuildNotice.js.map +1 -1
  111. package/dist/filepond/FileDropzone.js +5 -3
  112. package/dist/filepond/FileDropzone.js.map +1 -1
  113. package/dist/formatting.js +171 -143
  114. package/dist/formatting.js.map +1 -1
  115. package/dist/forms/FormWizard.js +18 -45
  116. package/dist/forms/FormWizard.js.map +1 -1
  117. package/dist/forms/auth/ChangePasswordForm.js +5 -4
  118. package/dist/forms/auth/ChangePasswordForm.js.map +1 -1
  119. package/dist/forms/auth/ForgotPasswordForm.js +2 -2
  120. package/dist/forms/auth/ForgotPasswordForm.js.map +1 -1
  121. package/dist/forms/auth/SignInForm.js +2 -2
  122. package/dist/forms/auth/SignInForm.js.map +1 -1
  123. package/dist/forms/security/SecondStepForm.js +2 -2
  124. package/dist/forms/security/SecondStepForm.js.map +1 -1
  125. package/dist/forms/security/TwoStepVerificationCard.js +8 -6
  126. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -1
  127. package/dist/hookForm/FormWizard.js +59 -0
  128. package/dist/hookForm/FormWizard.js.map +1 -0
  129. package/dist/inbox/InboxLayout.js +44 -8
  130. package/dist/inbox/InboxLayout.js.map +1 -1
  131. package/dist/inbox/MessageList.js +71 -21
  132. package/dist/inbox/MessageList.js.map +1 -1
  133. package/dist/inbox/MessageView.js +80 -29
  134. package/dist/inbox/MessageView.js.map +1 -1
  135. package/dist/inbox/inboxDates.js +4 -3
  136. package/dist/inbox/inboxDates.js.map +1 -1
  137. package/dist/index.js +163 -136
  138. package/dist/index.js.map +1 -1
  139. package/dist/inputs/CatalogInput.js +8 -4
  140. package/dist/inputs/CatalogInput.js.map +1 -1
  141. package/dist/inputs/ColorInput.js +3 -2
  142. package/dist/inputs/ColorInput.js.map +1 -1
  143. package/dist/inputs/FormSection.js +3 -3
  144. package/dist/inputs/FormSection.js.map +1 -1
  145. package/dist/inputs/NumberInput.js +3 -2
  146. package/dist/inputs/NumberInput.js.map +1 -1
  147. package/dist/inputs/SelectInput.js +29 -11
  148. package/dist/inputs/SelectInput.js.map +1 -1
  149. package/dist/inputs/TextInput.js +6 -2
  150. package/dist/inputs/TextInput.js.map +1 -1
  151. package/dist/inputs/WizardLayout.js +54 -0
  152. package/dist/inputs/WizardLayout.js.map +1 -0
  153. package/dist/kanban/KanbanBoard.js +239 -14
  154. package/dist/kanban/KanbanBoard.js.map +1 -1
  155. package/dist/kanban/kanbanCards.js +19 -0
  156. package/dist/kanban/kanbanCards.js.map +1 -0
  157. package/dist/kanban.js +7 -1
  158. package/dist/kanban.js.map +1 -1
  159. package/dist/locales/en.js +74 -1
  160. package/dist/locales/en.js.map +1 -1
  161. package/dist/locales/es.js +74 -1
  162. package/dist/locales/es.js.map +1 -1
  163. package/dist/maps/MapView.js +28 -8
  164. package/dist/maps/MapView.js.map +1 -1
  165. package/dist/navigation/appMenu.js +13 -1
  166. package/dist/navigation/appMenu.js.map +1 -1
  167. package/dist/observability/logger.js +18 -0
  168. package/dist/observability/logger.js.map +1 -1
  169. package/dist/observability/usePublishedBuildWatch.js +4 -3
  170. package/dist/observability/usePublishedBuildWatch.js.map +1 -1
  171. package/dist/pwa/InstallAppSetting.js +6 -5
  172. package/dist/pwa/InstallAppSetting.js.map +1 -1
  173. package/dist/pwa/InstallInstructionsDialog.js +2 -2
  174. package/dist/pwa/InstallInstructionsDialog.js.map +1 -1
  175. package/dist/pwa/InstallPromptBanner.js +15 -9
  176. package/dist/pwa/InstallPromptBanner.js.map +1 -1
  177. package/dist/pwa/useInstallPrompt.js +2 -1
  178. package/dist/pwa/useInstallPrompt.js.map +1 -1
  179. package/dist/react-hook-form.js +6 -4
  180. package/dist/react-hook-form.js.map +1 -1
  181. package/dist/security/ActivityLog.js +4 -3
  182. package/dist/security/ActivityLog.js.map +1 -1
  183. package/dist/security/RecoveryCodesDialog.js +4 -3
  184. package/dist/security/RecoveryCodesDialog.js.map +1 -1
  185. package/dist/security/SessionsCard.js +8 -6
  186. package/dist/security/SessionsCard.js.map +1 -1
  187. package/dist/table.js +2 -0
  188. package/dist/table.js.map +1 -1
  189. package/dist/theme/components/MuiAppBar.js +6 -5
  190. package/dist/theme/components/MuiAppBar.js.map +1 -1
  191. package/dist/theme/components/MuiDialog.js +13 -0
  192. package/dist/theme/components/MuiDialog.js.map +1 -0
  193. package/dist/theme/components/glassComponents.js +32 -31
  194. package/dist/theme/components/glassComponents.js.map +1 -1
  195. package/dist/theme/components/minimalComponents.js +8 -4
  196. package/dist/theme/components/minimalComponents.js.map +1 -1
  197. package/dist/theme/createToolkitTheme.js.map +1 -1
  198. package/dist/theme/glassSurface.js +36 -38
  199. package/dist/theme/glassSurface.js.map +1 -1
  200. package/dist/theme/lightDarkStyles.js +48 -0
  201. package/dist/theme/lightDarkStyles.js.map +1 -0
  202. package/dist/theme/toolkitComponents.js +2 -0
  203. package/dist/theme/toolkitComponents.js.map +1 -1
  204. package/dist/toolkit/ComponentTexts.js +13 -0
  205. package/dist/toolkit/ComponentTexts.js.map +1 -0
  206. package/dist/toolkit/ToolkitProvider.js +36 -28
  207. package/dist/toolkit/ToolkitProvider.js.map +1 -1
  208. package/dist/toolkit/browserNavigation.js +19 -20
  209. package/dist/toolkit/browserNavigation.js.map +1 -1
  210. package/dist/toolkit/componentTextsContext.js +15 -0
  211. package/dist/toolkit/componentTextsContext.js.map +1 -0
  212. package/dist/toolkit/hashNavigation.js +40 -0
  213. package/dist/toolkit/hashNavigation.js.map +1 -0
  214. package/dist/toolkit/navigationPaths.js +49 -0
  215. package/dist/toolkit/navigationPaths.js.map +1 -0
  216. package/dist/toolkit/toolkitSettings.js +24 -4
  217. package/dist/toolkit/toolkitSettings.js.map +1 -1
  218. package/dist/toolkit/useFormatters.js +12 -0
  219. package/dist/toolkit/useFormatters.js.map +1 -0
  220. package/dist/toolkit/useToolkitTranslation.js +11 -7
  221. package/dist/toolkit/useToolkitTranslation.js.map +1 -1
  222. package/dist/types/DataTable/AuditTrailTable.d.ts +3 -1
  223. package/dist/types/DataTable/EmptyState.d.ts +7 -2
  224. package/dist/types/DataTable/FilterChips.d.ts +3 -1
  225. package/dist/types/DataTable/GoToPage.d.ts +7 -2
  226. package/dist/types/DataTable/SelectionBar.d.ts +32 -0
  227. package/dist/types/DataTable/ServerTable.d.ts +64 -3
  228. package/dist/types/DataTable/index.d.ts +1 -1
  229. package/dist/types/DataTable/rowSelection.d.ts +113 -0
  230. package/dist/types/access/PermissionMatrix.d.ts +3 -1
  231. package/dist/types/account/AccountSecuritySection.d.ts +3 -1
  232. package/dist/types/account/ForgotPasswordScreen.d.ts +3 -1
  233. package/dist/types/account/ProfileScreen.d.ts +31 -1
  234. package/dist/types/account/ResetPasswordScreen.d.ts +3 -1
  235. package/dist/types/account/SignInScreen.d.ts +3 -1
  236. package/dist/types/account/accountConnector.d.ts +7 -2
  237. package/dist/types/adapters/reactRouterRoutes.d.ts +14 -2
  238. package/dist/types/api/createApiClient.d.ts +46 -1
  239. package/dist/types/appShell/AppLayout.d.ts +15 -1
  240. package/dist/types/appShell/AppearanceSettings.d.ts +8 -1
  241. package/dist/types/appShell/BarActionButton.d.ts +2 -2
  242. package/dist/types/appShell/BarActions.d.ts +6 -1
  243. package/dist/types/appShell/BarCapsule.d.ts +8 -0
  244. package/dist/types/appShell/BarSearch.d.ts +24 -0
  245. package/dist/types/appShell/MenuLinks.d.ts +17 -0
  246. package/dist/types/appShell/MobileTabBar.d.ts +4 -1
  247. package/dist/types/appShell/SettingsMenu.d.ts +3 -1
  248. package/dist/types/appShell/SideMenu.d.ts +3 -1
  249. package/dist/types/appShell/Wordmark.d.ts +6 -0
  250. package/dist/types/appShell/menuItemText.d.ts +16 -0
  251. package/dist/types/appShell/shellSizes.d.ts +1 -0
  252. package/dist/types/auth/PasswordChecklist.d.ts +3 -1
  253. package/dist/types/calendar/EventCalendar.d.ts +18 -1
  254. package/dist/types/calendar/EventDetails.d.ts +36 -0
  255. package/dist/types/calendar/calendarEvents.d.ts +27 -0
  256. package/dist/types/calendar.d.ts +2 -0
  257. package/dist/types/charts.d.ts +4 -0
  258. package/dist/types/datePickers/DateInput.d.ts +3 -1
  259. package/dist/types/downloads/DownloadManager.d.ts +7 -1
  260. package/dist/types/downloads/downloadQueue.d.ts +8 -3
  261. package/dist/types/downloads/fileTypes.d.ts +39 -0
  262. package/dist/types/downloads/index.d.ts +1 -0
  263. package/dist/types/feedback/ConfirmDialog.d.ts +3 -1
  264. package/dist/types/feedback/ModalWaiting.d.ts +7 -2
  265. package/dist/types/feedback/NewBuildNotice.d.ts +3 -1
  266. package/dist/types/filepond/FileDropzone.d.ts +3 -1
  267. package/dist/types/formatting.d.ts +45 -90
  268. package/dist/types/forms/FormWizard.d.ts +3 -1
  269. package/dist/types/forms/auth/ChangePasswordForm.d.ts +3 -1
  270. package/dist/types/forms/auth/ForgotPasswordForm.d.ts +3 -1
  271. package/dist/types/forms/auth/SignInForm.d.ts +3 -1
  272. package/dist/types/forms/security/SecondStepForm.d.ts +3 -1
  273. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +3 -1
  274. package/dist/types/hookForm/FormWizard.d.ts +22 -0
  275. package/dist/types/inbox/InboxLayout.d.ts +14 -2
  276. package/dist/types/inbox/MessageList.d.ts +30 -5
  277. package/dist/types/inbox/MessageView.d.ts +35 -3
  278. package/dist/types/inbox/inboxDates.d.ts +6 -1
  279. package/dist/types/index.d.ts +15 -8
  280. package/dist/types/inputs/CatalogInput.d.ts +9 -5
  281. package/dist/types/inputs/ColorInput.d.ts +3 -1
  282. package/dist/types/inputs/FormSection.d.ts +2 -2
  283. package/dist/types/inputs/NumberInput.d.ts +3 -1
  284. package/dist/types/inputs/SelectInput.d.ts +9 -5
  285. package/dist/types/inputs/TextInput.d.ts +3 -1
  286. package/dist/types/inputs/WizardLayout.d.ts +34 -0
  287. package/dist/types/kanban/KanbanBoard.d.ts +61 -6
  288. package/dist/types/kanban/kanbanCards.d.ts +22 -0
  289. package/dist/types/kanban.d.ts +1 -0
  290. package/dist/types/locales/en.d.ts +77 -0
  291. package/dist/types/locales/es.d.ts +77 -0
  292. package/dist/types/maps/MapView.d.ts +12 -3
  293. package/dist/types/navigation/appMenu.d.ts +8 -0
  294. package/dist/types/observability/logger.d.ts +13 -0
  295. package/dist/types/observability/usePublishedBuildWatch.d.ts +3 -1
  296. package/dist/types/pwa/InstallAppSetting.d.ts +7 -1
  297. package/dist/types/pwa/InstallInstructionsDialog.d.ts +3 -1
  298. package/dist/types/pwa/InstallPromptBanner.d.ts +10 -1
  299. package/dist/types/pwa/useInstallPrompt.d.ts +3 -2
  300. package/dist/types/react-hook-form.d.ts +1 -0
  301. package/dist/types/security/ActivityLog.d.ts +3 -1
  302. package/dist/types/security/RecoveryCodesDialog.d.ts +6 -1
  303. package/dist/types/security/SessionsCard.d.ts +3 -1
  304. package/dist/types/table.d.ts +3 -1
  305. package/dist/types/theme/components/MuiAppBar.d.ts +3 -1
  306. package/dist/types/theme/components/MuiDialog.d.ts +9 -0
  307. package/dist/types/theme/components/glassComponents.d.ts +5 -0
  308. package/dist/types/theme/lightDarkStyles.d.ts +8 -0
  309. package/dist/types/toolkit/ComponentTexts.d.ts +11 -0
  310. package/dist/types/toolkit/ToolkitProvider.d.ts +18 -2
  311. package/dist/types/toolkit/browserNavigation.d.ts +23 -28
  312. package/dist/types/toolkit/componentTextsContext.d.ts +20 -0
  313. package/dist/types/toolkit/hashNavigation.d.ts +12 -0
  314. package/dist/types/toolkit/navigationPaths.d.ts +43 -0
  315. package/dist/types/toolkit/toolkitSettings.d.ts +49 -4
  316. package/dist/types/toolkit/useFormatters.d.ts +6 -0
  317. package/dist/types/toolkit/useToolkitTranslation.d.ts +2 -1
  318. package/dist/types/ui/actions/ActionsMenu.d.ts +20 -0
  319. package/dist/types/ui/actions/CopyButton.d.ts +3 -1
  320. package/dist/types/ui/actions/DownloadMenu.d.ts +8 -3
  321. package/dist/types/ui/actions/SecretField.d.ts +5 -1
  322. package/dist/types/ui/actions/SelectionActions.d.ts +39 -0
  323. package/dist/types/ui/filters/DateRangeFilter.d.ts +3 -1
  324. package/dist/types/ui/filters/QuickFilters.d.ts +3 -1
  325. package/dist/types/ui/index.d.ts +1 -1
  326. package/dist/types/ui/labels/tagOf.d.ts +13 -0
  327. package/dist/types/ui/layout/CollapsibleSection.d.ts +4 -1
  328. package/dist/types/ui/layout/ContentDialog.d.ts +3 -1
  329. package/dist/types/ui/layout/ErrorPage.d.ts +14 -1
  330. package/dist/types/ui/layout/FullPageLoader.d.ts +7 -1
  331. package/dist/types/ui/layout/PageHeading.d.ts +3 -1
  332. package/dist/types/ui/metrics/BarList.d.ts +7 -1
  333. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +7 -1
  334. package/dist/types/ui/metrics/ChartTooltip.d.ts +9 -3
  335. package/dist/types/ui/metrics/ColumnChart.d.ts +23 -11
  336. package/dist/types/ui/metrics/LineChart.d.ts +41 -0
  337. package/dist/types/ui/metrics/MetricCard.d.ts +9 -1
  338. package/dist/types/ui/metrics/TableToggle.d.ts +9 -2
  339. package/dist/types/ui/metrics/chartParts.d.ts +112 -0
  340. package/dist/types/ui/navigation/BackButton.d.ts +3 -1
  341. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +8 -2
  342. package/dist/types/ui/navigation/FontSizeToggle.d.ts +7 -2
  343. package/dist/types/ui/navigation/LanguageToggle.d.ts +8 -3
  344. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +5 -2
  345. package/dist/types/ui/timeline/GroupedTimeline.d.ts +4 -1
  346. package/dist/types/upload/FileDropzone.d.ts +3 -1
  347. package/dist/ui/actions/ActionsMenu.js +51 -0
  348. package/dist/ui/actions/ActionsMenu.js.map +1 -0
  349. package/dist/ui/actions/CopyButton.js +2 -2
  350. package/dist/ui/actions/CopyButton.js.map +1 -1
  351. package/dist/ui/actions/DownloadMenu.js +11 -12
  352. package/dist/ui/actions/DownloadMenu.js.map +1 -1
  353. package/dist/ui/actions/SecretField.js +8 -4
  354. package/dist/ui/actions/SecretField.js.map +1 -1
  355. package/dist/ui/actions/SelectionActions.js +142 -0
  356. package/dist/ui/actions/SelectionActions.js.map +1 -0
  357. package/dist/ui/filters/DateRangeFilter.js +4 -3
  358. package/dist/ui/filters/DateRangeFilter.js.map +1 -1
  359. package/dist/ui/filters/QuickFilters.js +2 -2
  360. package/dist/ui/filters/QuickFilters.js.map +1 -1
  361. package/dist/ui/labels/tagOf.js +7 -0
  362. package/dist/ui/labels/tagOf.js.map +1 -0
  363. package/dist/ui/layout/CollapsibleSection.js +6 -2
  364. package/dist/ui/layout/CollapsibleSection.js.map +1 -1
  365. package/dist/ui/layout/ContentDialog.js +2 -2
  366. package/dist/ui/layout/ContentDialog.js.map +1 -1
  367. package/dist/ui/layout/ErrorPage.js +21 -7
  368. package/dist/ui/layout/ErrorPage.js.map +1 -1
  369. package/dist/ui/layout/FullPageLoader.js +2 -2
  370. package/dist/ui/layout/FullPageLoader.js.map +1 -1
  371. package/dist/ui/layout/PageHeading.js +2 -2
  372. package/dist/ui/layout/PageHeading.js.map +1 -1
  373. package/dist/ui/metrics/BarList.js +18 -13
  374. package/dist/ui/metrics/BarList.js.map +1 -1
  375. package/dist/ui/metrics/CalendarHeatmap.js +11 -6
  376. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -1
  377. package/dist/ui/metrics/ChartTooltip.js +1 -1
  378. package/dist/ui/metrics/ChartTooltip.js.map +1 -1
  379. package/dist/ui/metrics/ColumnChart.js +59 -63
  380. package/dist/ui/metrics/ColumnChart.js.map +1 -1
  381. package/dist/ui/metrics/LineChart.js +117 -0
  382. package/dist/ui/metrics/LineChart.js.map +1 -0
  383. package/dist/ui/metrics/MetricCard.js +41 -8
  384. package/dist/ui/metrics/MetricCard.js.map +1 -1
  385. package/dist/ui/metrics/TableToggle.js +4 -2
  386. package/dist/ui/metrics/TableToggle.js.map +1 -1
  387. package/dist/ui/metrics/chartParts.js +93 -0
  388. package/dist/ui/metrics/chartParts.js.map +1 -0
  389. package/dist/ui/navigation/BackButton.js +2 -2
  390. package/dist/ui/navigation/BackButton.js.map +1 -1
  391. package/dist/ui/navigation/ColorSchemeToggle.js +6 -3
  392. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -1
  393. package/dist/ui/navigation/FontSizeToggle.js +3 -2
  394. package/dist/ui/navigation/FontSizeToggle.js.map +1 -1
  395. package/dist/ui/navigation/LanguageToggle.js +40 -19
  396. package/dist/ui/navigation/LanguageToggle.js.map +1 -1
  397. package/dist/ui/navigation/PageBreadcrumbs.js +2 -2
  398. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -1
  399. package/dist/ui/timeline/GroupedTimeline.js +10 -8
  400. package/dist/ui/timeline/GroupedTimeline.js.map +1 -1
  401. package/dist/upload/FileDropzone.js +5 -3
  402. package/dist/upload/FileDropzone.js.map +1 -1
  403. package/package.json +16 -7
@@ -4,10 +4,12 @@
4
4
  * @param {boolean} [props.showLanguage]
5
5
  * @param {boolean} [props.showColorScheme]
6
6
  * @param {import('react').ReactNode} [props.extraSettings] los ajustes del proyecto, debajo de los del paquete
7
+ * @param {object[]} [props.menuLinks] las ligas propias (accountMenuItems), al final
7
8
  */
8
- export default function SettingsMenu({ showFontSize, showLanguage, showColorScheme, extraSettings }: {
9
+ export default function SettingsMenu({ showFontSize, showLanguage, showColorScheme, extraSettings, menuLinks }: {
9
10
  showFontSize?: boolean;
10
11
  showLanguage?: boolean;
11
12
  showColorScheme?: boolean;
12
13
  extraSettings?: import('react').ReactNode;
14
+ menuLinks?: object[];
13
15
  }): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @param {object} props
3
3
  * @param {import('react').ReactNode} [props.logo] el logo chico (28 px), el que se queda con el menú encogido
4
+ * @param {import('react').ReactNode} [props.wordmark] el logo ancho (en lugar del logo y el nombre arriba)
4
5
  * @param {string} props.brandName el nombre de la app
5
6
  * @param {string} [props.brandCaption] el renglón chico debajo del nombre («Panel de administración»)
6
7
  * @param {string} props.homePath
@@ -14,8 +15,9 @@
14
15
  * @param {import('react').ReactNode} [props.railTop] arriba del menú encogido que hace de barra: la ☰ y el logo
15
16
  * @param {import('react').ReactNode} [props.railBottom] abajo de ese menú: los ajustes y la cuenta
16
17
  */
17
- export default function SideMenu({ logo, brandName, brandCaption, homePath, menuItems, activeItem, collapsed, footer, showBrand, onNavigate, railTop, railBottom, menuBadges, }: {
18
+ export default function SideMenu({ logo, wordmark, brandName, brandCaption, homePath, menuItems, activeItem, collapsed, footer, showBrand, onNavigate, railTop, railBottom, menuBadges, }: {
18
19
  logo?: import('react').ReactNode;
20
+ wordmark?: import('react').ReactNode;
19
21
  brandName: string;
20
22
  brandCaption?: string;
21
23
  homePath: string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {{children: import('react').ReactNode}} props el logo (una <img>, un <svg> o lo que pinte el proyecto)
3
+ */
4
+ export default function Wordmark({ children }: {
5
+ children: import('react').ReactNode;
6
+ }): import("react").JSX.Element;
@@ -53,3 +53,19 @@ export declare function menuSectionsOf(menuItems: object[], t: (key: string) =>
53
53
  * @returns {string}
54
54
  */
55
55
  export declare function initialsOf(fullName: string | null | undefined): string;
56
+ /**
57
+ * Las props de la liga de una entrada: el router para una pantalla de la app (to) y una dirección normal para otro sistema
58
+ * (href: el sistema que ya existía, otra app de la empresa). Con href la página se carga completa, como cualquier liga.
59
+ *
60
+ * @param {{to?: string, href?: string}} menuItem
61
+ * @param {import('react').ElementType} RouterLink el Link de la navegación del proyecto
62
+ * @returns {{component: import('react').ElementType|string, to?: string, href?: string}}
63
+ */
64
+ export declare function menuLinkPropsOf(menuItem: {
65
+ to?: string;
66
+ href?: string;
67
+ }, RouterLink: import('react').ElementType): {
68
+ component: import('react').ElementType | string;
69
+ to?: string;
70
+ href?: string;
71
+ };
@@ -25,6 +25,7 @@ export declare const MOBILE_TAB_BAR_HEIGHT_PIXELS: Readonly<{
25
25
  portrait: 60;
26
26
  landscape: 46;
27
27
  }>;
28
+ export declare const FLOATING_BOTTOM_SPACE_CSS_VARIABLE = "--calcita-floating-bottom-space";
28
29
  /**
29
30
  * Lo que flota abajo al centro en el teléfono con vidrio (el aviso de versión nueva, la invitación a instalar): encima de
30
31
  * la barra de pestañas, con la separación de la barra a la orilla, su alto, la separación pedida y la zona del gesto de
@@ -3,9 +3,11 @@
3
3
  * @param {string} props.password lo que lleva escrito la persona
4
4
  * @param {object} [props.policy] las reglas; por omisión DEFAULT_PASSWORD_POLICY
5
5
  * @param {string} [props.id]
6
+ * @param {object} [props.texts] los textos que cambian, con la forma de `auth` en los textos del paquete
6
7
  */
7
- export default function PasswordChecklist({ password, policy, id }: {
8
+ export default function PasswordChecklist({ password, policy, id, texts }: {
8
9
  password: string;
9
10
  policy?: object;
10
11
  id?: string;
12
+ texts?: object;
11
13
  }): import("react").JSX.Element;
@@ -17,8 +17,16 @@ export declare const CALENDAR_VIEW: Readonly<{
17
17
  * al arrastrar un evento; si truena, el evento regresa
18
18
  * @param {number|'auto'} [props.height]
19
19
  * @param {string} props.ariaLabel ya traducido
20
+ * @param {(range: {start: string, end: string, view: string}) => void} [props.onDatesChange] cada que cambia lo que se ve (al
21
+ * abrir, al ir al anterior o siguiente, al cambiar de vista): para pedir al backend solo las citas de ese rango
22
+ * @param {(view: string) => void} [props.onViewChange] al cambiar de vista (CALENDAR_VIEW)
23
+ * @param {(event: any) => import('react').ReactNode} [props.renderEvent] lo de adentro de cada cita (recibe la cita de events
24
+ * tal cual, con sus campos propios)
25
+ * @param {object} [props.fullCalendarProps] lo demás de FullCalendar (businessHours, hiddenDays, slotMinTime, locale…); lo
26
+ * que el calendario controla (las citas, la barra, los eventos de arriba) no se reemplaza desde aquí
27
+ * @param {object} [props.texts] los textos que cambian, con la forma de `calendar` en los textos del paquete
20
28
  */
21
- export default function EventCalendar({ events, initialView, views, onEventClick, onDateSelect, onEventChange, height, ariaLabel, }: {
29
+ export default function EventCalendar({ events, initialView, views, onEventClick, onDateSelect, onEventChange, height, ariaLabel, onDatesChange, onViewChange, renderEvent, fullCalendarProps, texts, }: {
22
30
  events: Array<{
23
31
  id: string;
24
32
  title: string;
@@ -43,4 +51,13 @@ export default function EventCalendar({ events, initialView, views, onEventClick
43
51
  }) => Promise<unknown> | void;
44
52
  height?: number | 'auto';
45
53
  ariaLabel: string;
54
+ onDatesChange?: (range: {
55
+ start: string;
56
+ end: string;
57
+ view: string;
58
+ }) => void;
59
+ onViewChange?: (view: string) => void;
60
+ renderEvent?: (event: any) => import('react').ReactNode;
61
+ fullCalendarProps?: object;
62
+ texts?: object;
46
63
  }): import("react").JSX.Element;
@@ -0,0 +1,36 @@
1
+ /** Las respuestas de un invitado. */
2
+ export declare const ATTENDEE_RESPONSE: Readonly<{
3
+ accepted: "accepted";
4
+ declined: "declined";
5
+ pending: "pending";
6
+ }>;
7
+ /**
8
+ * @param {object} props
9
+ * @param {{title: string, start: string, end?: string|null, allDay?: boolean, tone?: string, location?: string, meetingUrl?: string, attendees?: Array<{id: string, name: string, email?: string, response?: 'accepted'|'declined'|'pending'}>, reminderMinutes?: number|null, description?: string}} props.event
10
+ * start y end como texto ISO (o AAAA-MM-DD un día completo); tone: el color de su tipo
11
+ * @param {import('react').ReactNode} [props.actions] botones de la pantalla (editar, borrar, responder…)
12
+ * @param {string} [props.titleId] el id del título: la ventana que lo contiene se nombra con él (aria-labelledby)
13
+ * @param {object} [props.texts] los textos que cambian, con la forma de `calendar` en los textos del paquete
14
+ */
15
+ export default function EventDetails({ event, actions, titleId, texts }: {
16
+ event: {
17
+ title: string;
18
+ start: string;
19
+ end?: string | null;
20
+ allDay?: boolean;
21
+ tone?: string;
22
+ location?: string;
23
+ meetingUrl?: string;
24
+ attendees?: Array<{
25
+ id: string;
26
+ name: string;
27
+ email?: string;
28
+ response?: 'accepted' | 'declined' | 'pending';
29
+ }>;
30
+ reminderMinutes?: number | null;
31
+ description?: string;
32
+ };
33
+ actions?: import('react').ReactNode;
34
+ titleId?: string;
35
+ texts?: object;
36
+ }): import("react").JSX.Element;
@@ -0,0 +1,27 @@
1
+ /** La unidad del recordatorio (la llave de su texto: calendar.reminder.<unidad>). */
2
+ export declare const REMINDER_UNIT: Readonly<{
3
+ none: "none";
4
+ atStart: "atStart";
5
+ minutes: "minutes";
6
+ hours: "hours";
7
+ days: "days";
8
+ }>;
9
+ /**
10
+ * Cómo se dice un recordatorio: «sin recordatorio», «al empezar», «15 minutos antes», «2 horas antes», «1 día antes». Usa la
11
+ * unidad más grande que lo dice exacto (90 minutos se quedan en minutos).
12
+ *
13
+ * @param {number|null|undefined} minutes cuántos minutos antes; null sin recordatorio
14
+ * @returns {{unit: string, count: number}}
15
+ */
16
+ export declare function reminderOf(minutes: number | null | undefined): {
17
+ unit: string;
18
+ count: number;
19
+ };
20
+ /**
21
+ * ¿La liga de reunión se puede abrir? Solo http y https: una liga «javascript:» o con otro esquema no se ofrece para abrir
22
+ * (la pinta quien la escribió, pero nadie le da clic a algo raro desde la app).
23
+ *
24
+ * @param {string|null|undefined} url
25
+ * @returns {boolean}
26
+ */
27
+ export declare function isOpenableMeetingUrl(url: string | null | undefined): boolean;
@@ -1 +1,3 @@
1
1
  export { CALENDAR_VIEW, default as EventCalendar } from './calendar/EventCalendar.js';
2
+ export { ATTENDEE_RESPONSE, default as EventDetails } from './calendar/EventDetails.js';
3
+ export { REMINDER_UNIT, isOpenableMeetingUrl, reminderOf } from './calendar/calendarEvents.js';
@@ -1,2 +1,6 @@
1
1
  export { default as BarList } from './ui/metrics/BarList.js';
2
2
  export { default as ColumnChart } from './ui/metrics/ColumnChart.js';
3
+ export { default as LineChart } from './ui/metrics/LineChart.js';
4
+ export { default as ChartTooltip } from './ui/metrics/ChartTooltip.js';
5
+ export { CHART_LINE_DASHES, CHART_SERIES_TONES } from './ui/metrics/chartParts.js';
6
+ export { CHART_VIEW } from './ui/metrics/TableToggle.js';
@@ -17,8 +17,9 @@ export declare const CALENDAR_DATE_FORMAT = "YYYY-MM-DD";
17
17
  * @param {'day'|'month'|'year'} [props.openTo] por dónde abre el calendario (year para un nacimiento)
18
18
  * @param {boolean} [props.disabled]
19
19
  * @param {import('react').Ref<HTMLInputElement>} [props.inputRef]
20
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
20
21
  */
21
- export default function DateInput({ name, label, value, onChange, onBlur, error, helperText, minDate, maxDate, disableFuture, disablePast, openTo, disabled, inputRef, }: {
22
+ export default function DateInput({ name, label, value, onChange, onBlur, error, helperText, minDate, maxDate, disableFuture, disablePast, openTo, disabled, inputRef, texts, }: {
22
23
  name?: string;
23
24
  label: string;
24
25
  value: string | null | undefined;
@@ -36,4 +37,5 @@ export default function DateInput({ name, label, value, onChange, onBlur, error,
36
37
  openTo?: 'day' | 'month' | 'year';
37
38
  disabled?: boolean;
38
39
  inputRef?: import('react').Ref<HTMLInputElement>;
40
+ texts?: object;
39
41
  }): import("react").JSX.Element;
@@ -1 +1,7 @@
1
- export default function DownloadManager(): import("react").JSX.Element;
1
+ /**
2
+ * @param {object} [props]
3
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
4
+ */
5
+ export default function DownloadManager({ texts }?: {
6
+ texts?: object;
7
+ }): import("react").JSX.Element;
@@ -7,15 +7,18 @@ export declare const downloadsActor: import("xstate").Actor<import("xstate").Sta
7
7
  * @param {object} options
8
8
  * @param {string} options.label ya traducido; lo que se ve en el panel mientras todavía no se sabe el nombre del
9
9
  * archivo
10
- * @param {'xlsx'|'csv'|'pdf'} [options.format] para el ícono del tipo de archivo en el panel
10
+ * @param {string} [options.format] el tipo de archivo, para su ícono en el panel: xlsx, csv, pdf o uno del proyecto
11
+ * (ToolkitProvider fileTypes)
11
12
  * @param {(transferOptions: {signal: AbortSignal, onDownloadProgress: (progress: {loaded: number, total?: number|null}) => void}) => Promise<{blob: Blob, fileName: string}>} options.request
12
13
  * @param {(fileName: string) => void} [options.onCompleted] p. ej. volver a pedir la tabla (si la descarga cambia algo
13
14
  * en el servidor)
15
+ * @param {(error: unknown) => void} [options.onFailed] cuando no se pudo (el panel ya lo dice; para avisar o reportarlo)
16
+ * @param {() => void} [options.onCanceled] cuando la persona la canceló
14
17
  * @returns {Promise<string>} id de la descarga; la promesa se cumple cuando termina (bien, mal o cancelada), nunca falla
15
18
  */
16
- export declare function startDownload({ label, format, request, onCompleted }: {
19
+ export declare function startDownload({ label, format, request, onCompleted, onFailed, onCanceled }: {
17
20
  label: string;
18
- format?: 'xlsx' | 'csv' | 'pdf';
21
+ format?: string;
19
22
  request: (transferOptions: {
20
23
  signal: AbortSignal;
21
24
  onDownloadProgress: (progress: {
@@ -27,6 +30,8 @@ export declare function startDownload({ label, format, request, onCompleted }: {
27
30
  fileName: string;
28
31
  }>;
29
32
  onCompleted?: (fileName: string) => void;
33
+ onFailed?: (error: unknown) => void;
34
+ onCanceled?: () => void;
30
35
  }): Promise<string>;
31
36
  /**
32
37
  * Cancela una descarga en curso (el panel la marca como cancelada).
@@ -0,0 +1,39 @@
1
+ /** Los tipos de la casa: su ícono y su color (de la paleta del tema, claro y oscuro). */
2
+ export declare const DEFAULT_FILE_TYPES: Readonly<{
3
+ xlsx: Readonly<{
4
+ Icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material/SvgIcon").SvgIconTypeMap<{}, "svg">> & {
5
+ muiName: string;
6
+ };
7
+ color: "success.main";
8
+ }>;
9
+ csv: Readonly<{
10
+ Icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material/SvgIcon").SvgIconTypeMap<{}, "svg">> & {
11
+ muiName: string;
12
+ };
13
+ color: "info.main";
14
+ }>;
15
+ pdf: Readonly<{
16
+ Icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material/SvgIcon").SvgIconTypeMap<{}, "svg">> & {
17
+ muiName: string;
18
+ };
19
+ color: "error.main";
20
+ }>;
21
+ }>;
22
+ /** Un tipo que nadie declaró: el ícono de archivo y el gris del texto. */
23
+ export declare const UNKNOWN_FILE_TYPE: Readonly<{
24
+ Icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material/SvgIcon").SvgIconTypeMap<{}, "svg">> & {
25
+ muiName: string;
26
+ };
27
+ color: "text.secondary";
28
+ }>;
29
+ /**
30
+ * Los tipos que conoce esta app: los de la casa y los del proyecto (el del proyecto gana si se llama igual).
31
+ *
32
+ * @returns {Record<string, {Icon: import('react').ElementType, color: string, label?: string, hint?: string}>}
33
+ */
34
+ export declare function useFileTypes(): Record<string, {
35
+ Icon: import('react').ElementType;
36
+ color: string;
37
+ label?: string;
38
+ hint?: string;
39
+ }>;
@@ -1,3 +1,4 @@
1
1
  export { default as DownloadManager } from './DownloadManager.js';
2
2
  export { cancelDownload, clearFinishedDownloads, startDownload } from './downloadQueue.js';
3
+ export { DEFAULT_FILE_TYPES, UNKNOWN_FILE_TYPE, useFileTypes } from './fileTypes.js';
3
4
  export { DOWNLOAD_STATUS, downloadsMachine } from './downloadsMachine.js';
@@ -12,8 +12,9 @@
12
12
  * @param {() => void} props.onConfirm
13
13
  * @param {() => void} props.onClose
14
14
  * @param {import('react').ReactNode} [props.children]
15
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
15
16
  */
16
- export default function ConfirmDialog({ open, title, description, confirmLabel, cancelLabel, tone, isPending, isConfirmDisabled, errorMessage, onConfirm, onClose, children, }: {
17
+ export default function ConfirmDialog({ open, title, description, confirmLabel, cancelLabel, tone, isPending, isConfirmDisabled, errorMessage, onConfirm, onClose, children, texts, }: {
17
18
  open: boolean;
18
19
  title: string;
19
20
  description?: import('react').ReactNode;
@@ -26,4 +27,5 @@ export default function ConfirmDialog({ open, title, description, confirmLabel,
26
27
  onConfirm: () => void;
27
28
  onClose: () => void;
28
29
  children?: import('react').ReactNode;
30
+ texts?: object;
29
31
  }): import("react").JSX.Element;
@@ -1,8 +1,13 @@
1
1
  /**
2
- * @param {{open: boolean, title?: string, text?: string}} props textos ya traducidos; por defecto los de common:waiting
2
+ * @param {object} props
3
+ * @param {boolean} props.open
4
+ * @param {string} [props.title] ya traducido; por omisión common:waiting.title
5
+ * @param {string} [props.text] ya traducido; por omisión common:waiting.text
6
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
3
7
  */
4
- export default function ModalWaiting({ open, title, text }: {
8
+ export default function ModalWaiting({ open, title, text, texts }: {
5
9
  open: boolean;
6
10
  title?: string;
7
11
  text?: string;
12
+ texts?: object;
8
13
  }): import("react").JSX.Element;
@@ -9,10 +9,12 @@ export declare const NEW_BUILD_NOTICE_VARIANT: Readonly<{
9
9
  * @param {string} [props.reloadLabel] ya traducido; por omisión «Recargar»
10
10
  * @param {() => void} [props.onReload] por omisión recarga la página
11
11
  * @param {'ribbon'|'floating'} [props.variant] franja o cápsula flotante (NEW_BUILD_NOTICE_VARIANT); por omisión franja
12
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
12
13
  */
13
- export default function NewBuildNotice({ message, reloadLabel, onReload, variant }?: {
14
+ export default function NewBuildNotice({ message, reloadLabel, onReload, variant, texts }?: {
14
15
  message?: string;
15
16
  reloadLabel?: string;
16
17
  onReload?: () => void;
17
18
  variant?: 'ribbon' | 'floating';
19
+ texts?: object;
18
20
  }): import("react").JSX.Element | null;
@@ -23,8 +23,9 @@
23
23
  * @param {import('react').ReactNode} [props.actions]
24
24
  * @param {import('react').ReactNode} [props.children]
25
25
  * @param {object} [props.sx]
26
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
26
27
  */
27
- export default function FileDropzone({ value, onChange, accept, maxSize, multiple, maxFiles, maxTotalSize, name, hint, buttonLabel, disabled, busy, busyModal, autoReject, validate, server, instantUpload, apiRef, onProcessProgress, onReject, actions, children, sx, }: {
28
+ export default function FileDropzone({ value, onChange, accept, maxSize, multiple, maxFiles, maxTotalSize, name, hint, buttonLabel, disabled, busy, busyModal, autoReject, validate, server, instantUpload, apiRef, onProcessProgress, onReject, actions, children, sx, texts, }: {
28
29
  value?: File | File[] | null;
29
30
  onChange: (value: File | File[] | null) => void;
30
31
  accept?: string | string[];
@@ -56,4 +57,5 @@ export default function FileDropzone({ value, onChange, accept, maxSize, multipl
56
57
  actions?: import('react').ReactNode;
57
58
  children?: import('react').ReactNode;
58
59
  sx?: object;
60
+ texts?: object;
59
61
  }): import("react").JSX.Element;
@@ -1,102 +1,57 @@
1
1
  /**
2
- * Número con separador de miles: 321,540.
3
- *
4
- * @param {number|string|null|undefined} value
5
- * @param {string} [fallback] lo que se pinta si no hay dato
6
- */
7
- export declare function formatNumber(value: number | string | null | undefined, fallback?: string): any;
8
- /**
9
- * Una lista en una frase, con su «y» antes de la última parte: «resumen, motivos de rechazo y descargas».
10
- *
11
- * @param {string[]} items las partes de la lista, ya traducidas
12
- * @returns {string} la frase; '' si la lista viene vacía
13
- */
14
- export declare function formatList(items: string[]): string;
15
- /**
16
- * Monto en la moneda del proveedor con dos decimales: $2,567,951.00. Recibe el texto que manda el API (numeric de la base) o un número;
17
- * solo pinta, nunca suma (las sumas las hace el backend al centavo).
18
- *
19
- * @param {number|string|null|undefined} value
20
- * @param {string} [fallback] lo que se pinta si no hay dato
21
- */
22
- export declare function formatCurrency(value: number | string | null | undefined, fallback?: string): any;
23
- /**
24
- * Tamaño de un archivo en la unidad que se lee mejor: 950 B, 12.4 kB, 60.1 MB, 2.3 GB.
25
- *
26
- * @param {number|null|undefined} bytes
27
- * @param {string} [fallback] lo que se pinta si no hay dato
28
- */
29
- export declare function formatFileSize(bytes: number | null | undefined, fallback?: string): any;
30
- /**
31
- * Porcentaje a partir de una proporción o de un número ya en porcentaje.
32
- *
33
- * @param {number|null|undefined} value 99.58 (con isRatio false) o 0.9958 (con isRatio true)
34
- * @param {{fractionDigits?: number, isRatio?: boolean, fallback?: string}} [options]
35
- */
36
- export declare function formatPercent(value: number | null | undefined, { fractionDigits, isRatio, fallback }?: {
2
+ * Los formatos con la configuración que da settingsOf (se lee en cada llamada: si cambia el idioma, el siguiente formato ya
3
+ * sale en el nuevo).
4
+ *
5
+ * @param {() => {language: string, languages?: Array<{code: string, locale?: string}>, timeZone: string, currency: string}} settingsOf
6
+ */
7
+ export declare function formattersOf(settingsOf: () => {
8
+ language: string;
9
+ languages?: Array<{
10
+ code: string;
11
+ locale?: string;
12
+ }>;
13
+ timeZone: string;
14
+ currency: string;
15
+ }): Readonly<{
16
+ formatNumber: (value: number | string | null | undefined, fallback?: string) => string;
17
+ formatList: (items: string[]) => string;
18
+ formatCurrency: (value: number | string | null | undefined, fallback?: string) => string;
19
+ formatFileSize: (bytes: number | null | undefined, fallback?: string) => string;
20
+ formatPercent: (value: number | null | undefined, { fractionDigits, isRatio, fallback }?: {
21
+ fractionDigits?: number;
22
+ isRatio?: boolean;
23
+ fallback?: string;
24
+ }) => string;
25
+ formatDateTime: (value: string | null | undefined, { fallback }?: {
26
+ fallback?: string;
27
+ }) => string;
28
+ formatDate: (value: string | null | undefined, { fallback }?: {
29
+ fallback?: string;
30
+ }) => string;
31
+ formatTime: (value: string | null | undefined, { fallback }?: {
32
+ fallback?: string;
33
+ }) => string;
34
+ formatMonthName: (year: number, month: number, { style, capitalize }?: {
35
+ style?: 'long' | 'short';
36
+ capitalize?: boolean;
37
+ }) => string;
38
+ formatMonthShortName: (month: number) => string;
39
+ formatWeekdayShortName: (isoWeekday: number) => string;
40
+ }>;
41
+ export declare const formatNumber: (value: number | string | null | undefined, fallback?: string) => string, formatList: (items: string[]) => string, formatCurrency: (value: number | string | null | undefined, fallback?: string) => string, formatFileSize: (bytes: number | null | undefined, fallback?: string) => string, formatPercent: (value: number | null | undefined, { fractionDigits, isRatio, fallback }?: {
37
42
  fractionDigits?: number;
38
43
  isRatio?: boolean;
39
44
  fallback?: string;
40
- }): any;
41
- /**
42
- * Fecha y hora de un instante ISO en la zona del negocio.
43
- *
44
- * @param {string|null|undefined} value instante ISO con desfase
45
- * @param {{fallback?: string}} [options]
46
- */
47
- export declare function formatDateTime(value: string | null | undefined, { fallback }?: {
45
+ }) => string, formatDateTime: (value: string | null | undefined, { fallback }?: {
48
46
  fallback?: string;
49
- }): any;
50
- /**
51
- * Solo la fecha. Acepta un instante ISO (se pasa a la zona del negocio) o una fecha de calendario "2026-08-16"
52
- * (se pinta tal cual, sin moverla de día).
53
- *
54
- * @param {string|null|undefined} value
55
- * @param {{fallback?: string}} [options]
56
- */
57
- export declare function formatDate(value: string | null | undefined, { fallback }?: {
47
+ }) => string, formatDate: (value: string | null | undefined, { fallback }?: {
58
48
  fallback?: string;
59
- }): any;
60
- /**
61
- * Solo la hora (24 h) de un instante ISO en la zona del negocio: "07:00".
62
- *
63
- * Existe aparte de formatDateTime porque las pantallas escriben "16 ago 2026 · 07:00" con punto medio, y Intl une
64
- * fecha y hora con coma: se arma formatDate + formatTime.
65
- *
66
- * @param {string|null|undefined} value instante ISO con desfase
67
- * @param {{fallback?: string}} [options]
68
- */
69
- export declare function formatTime(value: string | null | undefined, { fallback }?: {
49
+ }) => string, formatTime: (value: string | null | undefined, { fallback }?: {
70
50
  fallback?: string;
71
- }): any;
72
- /**
73
- * Nombre de un mes de calendario: "agosto 2026" (long) o "ago 2026" (short).
74
- *
75
- * OJO: no se usa Intl con {month, year} juntos porque en español sale "agosto de 2026" y las pantallas dicen
76
- * "agosto 2026"; se pide solo el mes y se pega el año.
77
- *
78
- * @param {number} year
79
- * @param {number} month 1 a 12
80
- * @param {{style?: 'long'|'short', capitalize?: boolean}} [options] capitalize: "Agosto 2026" (fila de mes)
81
- */
82
- export declare function formatMonthName(year: number, month: number, { style, capitalize }?: {
51
+ }) => string, formatMonthName: (year: number, month: number, { style, capitalize }?: {
83
52
  style?: 'long' | 'short';
84
53
  capitalize?: boolean;
85
- }): string;
86
- /**
87
- * Nombre corto de un mes sin año: "ene", "feb" (rótulos de columnas de calendario y rejillas por periodo).
88
- *
89
- * @param {number} month 1 a 12
90
- * @returns {string}
91
- */
92
- export declare function formatMonthShortName(month: number): string;
93
- /**
94
- * Nombre corto de un día de la semana: "lun", "mié" (renglones del calendario de actividad).
95
- *
96
- * @param {number} isoWeekday 1 = lunes ... 7 = domingo
97
- * @returns {string}
98
- */
99
- export declare function formatWeekdayShortName(isoWeekday: number): string;
54
+ }) => string, formatMonthShortName: (month: number) => string, formatWeekdayShortName: (isoWeekday: number) => string;
100
55
  /**
101
56
  * Día del mes de una fecha de calendario ("2026-08-16" → 16), sin moverla de zona.
102
57
  *
@@ -7,8 +7,9 @@
7
7
  * @param {boolean} [props.steps[].optional] se puede omitir
8
8
  * @param {import('react').ReactNode} props.steps[].content los campos del paso
9
9
  * @param {string} props.submitLabel ya traducido: el botón del último paso
10
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {wizard: {next, back, skip, optional, skipped, stepOf}}
10
11
  */
11
- export default function FormWizard({ steps, submitLabel }: {
12
+ export default function FormWizard({ steps, submitLabel, texts }: {
12
13
  steps: {
13
14
  key: string;
14
15
  label: string;
@@ -17,4 +18,5 @@ export default function FormWizard({ steps, submitLabel }: {
17
18
  content: import('react').ReactNode;
18
19
  }[];
19
20
  submitLabel: string;
21
+ texts?: object;
20
22
  }): import("react").JSX.Element;
@@ -4,12 +4,14 @@
4
4
  * contraseña; si el servidor dice que no (la actual no es), truena con su problema
5
5
  * @param {boolean} [props.requireCurrentPassword] por omisión sí; sin ella para la pantalla del enlace del correo
6
6
  * @param {object} [props.policy] las reglas de la nueva; por omisión DEFAULT_PASSWORD_POLICY
7
+ * @param {object} [props.texts] los textos que cambian, con la forma de `auth` en los textos del paquete
7
8
  */
8
- export default function ChangePasswordForm({ onSubmit, requireCurrentPassword, policy }: {
9
+ export default function ChangePasswordForm({ onSubmit, requireCurrentPassword, policy, texts }: {
9
10
  onSubmit: (values: {
10
11
  currentPassword?: string;
11
12
  newPassword: string;
12
13
  }) => Promise<unknown>;
13
14
  requireCurrentPassword?: boolean;
14
15
  policy?: object;
16
+ texts?: object;
15
17
  }): import("react").JSX.Element;
@@ -3,10 +3,12 @@
3
3
  * @param {(values: {email: string}) => Promise<unknown>} props.onSubmit pide el enlace; si el servidor falla, truena con su
4
4
  * problema
5
5
  * @param {string} [props.signInPath] la liga para regresar a iniciar sesión
6
+ * @param {object} [props.texts] los textos que cambian, con la forma de `auth` en los textos del paquete
6
7
  */
7
- export default function ForgotPasswordForm({ onSubmit, signInPath }: {
8
+ export default function ForgotPasswordForm({ onSubmit, signInPath, texts }: {
8
9
  onSubmit: (values: {
9
10
  email: string;
10
11
  }) => Promise<unknown>;
11
12
  signInPath?: string;
13
+ texts?: object;
12
14
  }): import("react").JSX.Element;
@@ -5,8 +5,9 @@
5
5
  * @param {string} [props.forgotPasswordPath] sin ella no sale la liga de «¿Olvidó su contraseña?»
6
6
  * @param {boolean} [props.showRememberMe] por omisión sí
7
7
  * @param {string} [props.initialEmail]
8
+ * @param {object} [props.texts] los textos que cambian, con la forma de `auth` en los textos del paquete
8
9
  */
9
- export default function SignInForm({ onSubmit, forgotPasswordPath, showRememberMe, initialEmail }: {
10
+ export default function SignInForm({ onSubmit, forgotPasswordPath, showRememberMe, initialEmail, texts }: {
10
11
  onSubmit: (values: {
11
12
  email: string;
12
13
  password: string;
@@ -15,4 +16,5 @@ export default function SignInForm({ onSubmit, forgotPasswordPath, showRememberM
15
16
  forgotPasswordPath?: string;
16
17
  showRememberMe?: boolean;
17
18
  initialEmail?: string;
19
+ texts?: object;
18
20
  }): import("react").JSX.Element;
@@ -14,8 +14,9 @@ export declare const SECOND_STEP_METHOD: Readonly<{
14
14
  * @param {(message: string|null) => void} props.onCancel regresa a escribir la contraseña (con el motivo, si lo hay)
15
15
  * @param {import('react').ReactNode} [props.footer] abajo del botón, dentro del formulario: puede llenar el código con
16
16
  * useFormikContext (p. ej. el atajo de los ejemplos)
17
+ * @param {object} [props.texts] los textos que cambian, con la forma de `security` en los textos del paquete
17
18
  */
18
- export default function SecondStepForm({ methods, canUsePasskeys, onUsePasskey, onSubmitCode, onCancel, footer }: {
19
+ export default function SecondStepForm({ methods, canUsePasskeys, onUsePasskey, onSubmitCode, onCancel, footer, texts }: {
19
20
  methods: string[];
20
21
  canUsePasskeys?: boolean;
21
22
  onUsePasskey?: () => Promise<unknown>;
@@ -25,4 +26,5 @@ export default function SecondStepForm({ methods, canUsePasskeys, onUsePasskey,
25
26
  }) => Promise<unknown>;
26
27
  onCancel: (message: string | null) => void;
27
28
  footer?: import('react').ReactNode;
29
+ texts?: object;
28
30
  }): import("react").JSX.Element;
@@ -15,8 +15,9 @@
15
15
  * @param {string} [props.account] la cuenta (el correo), para el archivo de los códigos
16
16
  * @param {import('react').ReactNode} [props.passkeyNotice] un aviso en el diálogo de crear la llave, antes de que el
17
17
  * navegador la guarde (p. ej. el de la demostración: la llave queda de verdad en el llavero de la persona)
18
+ * @param {object} [props.texts] los textos que cambian, con la forma de `security` en los textos del paquete
18
19
  */
19
- export default function TwoStepVerificationCard({ security, onSecurityChange, actions, canUsePasskeys, account, passkeyNotice }: {
20
+ export default function TwoStepVerificationCard({ security, onSecurityChange, actions, canUsePasskeys, account, passkeyNotice, texts }: {
20
21
  security: {
21
22
  isEnabled: boolean;
22
23
  enabledAt?: string | null;
@@ -78,4 +79,5 @@ export default function TwoStepVerificationCard({ security, onSecurityChange, ac
78
79
  canUsePasskeys?: boolean;
79
80
  account?: string;
80
81
  passkeyNotice?: import('react').ReactNode;
82
+ texts?: object;
81
83
  }): import("react").JSX.Element;