@stackcraftmx/calcita 0.23.0 → 0.25.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 (359) hide show
  1. package/README.md +111 -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 +35 -5
  44. package/dist/api/createApiClient.js.map +1 -1
  45. package/dist/appShell/AppLayout.js +27 -7
  46. package/dist/appShell/AppLayout.js.map +1 -1
  47. package/dist/appShell/AppearanceSettings.js +29 -6
  48. package/dist/appShell/AppearanceSettings.js.map +1 -1
  49. package/dist/appShell/AuthLayout.js +2 -0
  50. package/dist/appShell/AuthLayout.js.map +1 -1
  51. package/dist/appShell/BarActionButton.js +3 -3
  52. package/dist/appShell/BarActionButton.js.map +1 -1
  53. package/dist/appShell/BarActions.js +19 -8
  54. package/dist/appShell/BarActions.js.map +1 -1
  55. package/dist/appShell/BarCapsule.js +19 -4
  56. package/dist/appShell/BarCapsule.js.map +1 -1
  57. package/dist/appShell/BarSearch.js +92 -0
  58. package/dist/appShell/BarSearch.js.map +1 -0
  59. package/dist/appShell/MobileTabBar.js +3 -1
  60. package/dist/appShell/MobileTabBar.js.map +1 -1
  61. package/dist/appShell/shellSizes.js +2 -0
  62. package/dist/appShell/shellSizes.js.map +1 -1
  63. package/dist/auth/PasswordChecklist.js +2 -2
  64. package/dist/auth/PasswordChecklist.js.map +1 -1
  65. package/dist/calendar/EventCalendar.js +16 -5
  66. package/dist/calendar/EventCalendar.js.map +1 -1
  67. package/dist/calendar/EventDetails.js +74 -0
  68. package/dist/calendar/EventDetails.js.map +1 -0
  69. package/dist/calendar/calendarEvents.js +31 -0
  70. package/dist/calendar/calendarEvents.js.map +1 -0
  71. package/dist/calendar.js +8 -1
  72. package/dist/calendar.js.map +1 -1
  73. package/dist/charts.js +10 -1
  74. package/dist/charts.js.map +1 -1
  75. package/dist/datePickers/DateInput.js +3 -2
  76. package/dist/datePickers/DateInput.js.map +1 -1
  77. package/dist/downloads/DownloadManager.js +14 -20
  78. package/dist/downloads/DownloadManager.js.map +1 -1
  79. package/dist/downloads/downloadQueue.js +4 -2
  80. package/dist/downloads/downloadQueue.js.map +1 -1
  81. package/dist/downloads/downloadsMachine.js +4 -1
  82. package/dist/downloads/downloadsMachine.js.map +1 -1
  83. package/dist/downloads/fileTypes.js +22 -0
  84. package/dist/downloads/fileTypes.js.map +1 -0
  85. package/dist/feedback/ConfirmDialog.js +3 -2
  86. package/dist/feedback/ConfirmDialog.js.map +1 -1
  87. package/dist/feedback/ModalWaiting.js +2 -2
  88. package/dist/feedback/ModalWaiting.js.map +1 -1
  89. package/dist/feedback/NewBuildNotice.js +2 -2
  90. package/dist/feedback/NewBuildNotice.js.map +1 -1
  91. package/dist/filepond/FileDropzone.js +5 -3
  92. package/dist/filepond/FileDropzone.js.map +1 -1
  93. package/dist/formatting.js +171 -143
  94. package/dist/formatting.js.map +1 -1
  95. package/dist/forms/FormWizard.js +18 -45
  96. package/dist/forms/FormWizard.js.map +1 -1
  97. package/dist/forms/auth/ChangePasswordForm.js +5 -4
  98. package/dist/forms/auth/ChangePasswordForm.js.map +1 -1
  99. package/dist/forms/auth/ForgotPasswordForm.js +2 -2
  100. package/dist/forms/auth/ForgotPasswordForm.js.map +1 -1
  101. package/dist/forms/auth/SignInForm.js +2 -2
  102. package/dist/forms/auth/SignInForm.js.map +1 -1
  103. package/dist/forms/security/SecondStepForm.js +2 -2
  104. package/dist/forms/security/SecondStepForm.js.map +1 -1
  105. package/dist/forms/security/TwoStepVerificationCard.js +8 -6
  106. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -1
  107. package/dist/hookForm/FormWizard.js +59 -0
  108. package/dist/hookForm/FormWizard.js.map +1 -0
  109. package/dist/inbox/InboxLayout.js +44 -8
  110. package/dist/inbox/InboxLayout.js.map +1 -1
  111. package/dist/inbox/MessageList.js +71 -21
  112. package/dist/inbox/MessageList.js.map +1 -1
  113. package/dist/inbox/MessageView.js +80 -29
  114. package/dist/inbox/MessageView.js.map +1 -1
  115. package/dist/inbox/inboxDates.js +4 -3
  116. package/dist/inbox/inboxDates.js.map +1 -1
  117. package/dist/index.js +157 -133
  118. package/dist/index.js.map +1 -1
  119. package/dist/inputs/CatalogInput.js +8 -4
  120. package/dist/inputs/CatalogInput.js.map +1 -1
  121. package/dist/inputs/ColorInput.js +3 -2
  122. package/dist/inputs/ColorInput.js.map +1 -1
  123. package/dist/inputs/FormSection.js +3 -3
  124. package/dist/inputs/FormSection.js.map +1 -1
  125. package/dist/inputs/NumberInput.js +3 -2
  126. package/dist/inputs/NumberInput.js.map +1 -1
  127. package/dist/inputs/SelectInput.js +29 -11
  128. package/dist/inputs/SelectInput.js.map +1 -1
  129. package/dist/inputs/TextInput.js +6 -2
  130. package/dist/inputs/TextInput.js.map +1 -1
  131. package/dist/inputs/WizardLayout.js +54 -0
  132. package/dist/inputs/WizardLayout.js.map +1 -0
  133. package/dist/kanban/KanbanBoard.js +239 -14
  134. package/dist/kanban/KanbanBoard.js.map +1 -1
  135. package/dist/kanban/kanbanCards.js +19 -0
  136. package/dist/kanban/kanbanCards.js.map +1 -0
  137. package/dist/kanban.js +7 -1
  138. package/dist/kanban.js.map +1 -1
  139. package/dist/locales/en.js +74 -1
  140. package/dist/locales/en.js.map +1 -1
  141. package/dist/locales/es.js +74 -1
  142. package/dist/locales/es.js.map +1 -1
  143. package/dist/maps/MapView.js +28 -8
  144. package/dist/maps/MapView.js.map +1 -1
  145. package/dist/observability/usePublishedBuildWatch.js +4 -3
  146. package/dist/observability/usePublishedBuildWatch.js.map +1 -1
  147. package/dist/pwa/InstallAppSetting.js +6 -5
  148. package/dist/pwa/InstallAppSetting.js.map +1 -1
  149. package/dist/pwa/InstallInstructionsDialog.js +2 -2
  150. package/dist/pwa/InstallInstructionsDialog.js.map +1 -1
  151. package/dist/pwa/InstallPromptBanner.js +15 -9
  152. package/dist/pwa/InstallPromptBanner.js.map +1 -1
  153. package/dist/pwa/useInstallPrompt.js +2 -1
  154. package/dist/pwa/useInstallPrompt.js.map +1 -1
  155. package/dist/react-hook-form.js +6 -4
  156. package/dist/react-hook-form.js.map +1 -1
  157. package/dist/security/ActivityLog.js +4 -3
  158. package/dist/security/ActivityLog.js.map +1 -1
  159. package/dist/security/RecoveryCodesDialog.js +4 -3
  160. package/dist/security/RecoveryCodesDialog.js.map +1 -1
  161. package/dist/security/SessionsCard.js +8 -6
  162. package/dist/security/SessionsCard.js.map +1 -1
  163. package/dist/table.js +2 -0
  164. package/dist/table.js.map +1 -1
  165. package/dist/theme/components/MuiDialog.js +13 -0
  166. package/dist/theme/components/MuiDialog.js.map +1 -0
  167. package/dist/theme/createToolkitTheme.js.map +1 -1
  168. package/dist/theme/toolkitComponents.js +2 -0
  169. package/dist/theme/toolkitComponents.js.map +1 -1
  170. package/dist/toolkit/ComponentTexts.js +13 -0
  171. package/dist/toolkit/ComponentTexts.js.map +1 -0
  172. package/dist/toolkit/ToolkitProvider.js +36 -28
  173. package/dist/toolkit/ToolkitProvider.js.map +1 -1
  174. package/dist/toolkit/browserNavigation.js +19 -20
  175. package/dist/toolkit/browserNavigation.js.map +1 -1
  176. package/dist/toolkit/componentTextsContext.js +15 -0
  177. package/dist/toolkit/componentTextsContext.js.map +1 -0
  178. package/dist/toolkit/hashNavigation.js +40 -0
  179. package/dist/toolkit/hashNavigation.js.map +1 -0
  180. package/dist/toolkit/navigationPaths.js +49 -0
  181. package/dist/toolkit/navigationPaths.js.map +1 -0
  182. package/dist/toolkit/toolkitSettings.js +24 -4
  183. package/dist/toolkit/toolkitSettings.js.map +1 -1
  184. package/dist/toolkit/useFormatters.js +12 -0
  185. package/dist/toolkit/useFormatters.js.map +1 -0
  186. package/dist/toolkit/useToolkitTranslation.js +11 -7
  187. package/dist/toolkit/useToolkitTranslation.js.map +1 -1
  188. package/dist/types/DataTable/AuditTrailTable.d.ts +3 -1
  189. package/dist/types/DataTable/EmptyState.d.ts +7 -2
  190. package/dist/types/DataTable/FilterChips.d.ts +3 -1
  191. package/dist/types/DataTable/GoToPage.d.ts +7 -2
  192. package/dist/types/DataTable/SelectionBar.d.ts +32 -0
  193. package/dist/types/DataTable/ServerTable.d.ts +64 -3
  194. package/dist/types/DataTable/index.d.ts +1 -1
  195. package/dist/types/DataTable/rowSelection.d.ts +113 -0
  196. package/dist/types/access/PermissionMatrix.d.ts +3 -1
  197. package/dist/types/account/AccountSecuritySection.d.ts +3 -1
  198. package/dist/types/account/ForgotPasswordScreen.d.ts +3 -1
  199. package/dist/types/account/ProfileScreen.d.ts +31 -1
  200. package/dist/types/account/ResetPasswordScreen.d.ts +3 -1
  201. package/dist/types/account/SignInScreen.d.ts +3 -1
  202. package/dist/types/account/accountConnector.d.ts +7 -2
  203. package/dist/types/adapters/reactRouterRoutes.d.ts +14 -2
  204. package/dist/types/api/createApiClient.d.ts +29 -1
  205. package/dist/types/appShell/AppLayout.d.ts +11 -1
  206. package/dist/types/appShell/AppearanceSettings.d.ts +8 -1
  207. package/dist/types/appShell/BarActionButton.d.ts +2 -2
  208. package/dist/types/appShell/BarActions.d.ts +6 -1
  209. package/dist/types/appShell/BarCapsule.d.ts +8 -0
  210. package/dist/types/appShell/BarSearch.d.ts +24 -0
  211. package/dist/types/appShell/MobileTabBar.d.ts +4 -1
  212. package/dist/types/appShell/shellSizes.d.ts +1 -0
  213. package/dist/types/auth/PasswordChecklist.d.ts +3 -1
  214. package/dist/types/calendar/EventCalendar.d.ts +18 -1
  215. package/dist/types/calendar/EventDetails.d.ts +36 -0
  216. package/dist/types/calendar/calendarEvents.d.ts +27 -0
  217. package/dist/types/calendar.d.ts +2 -0
  218. package/dist/types/charts.d.ts +4 -0
  219. package/dist/types/datePickers/DateInput.d.ts +3 -1
  220. package/dist/types/downloads/DownloadManager.d.ts +7 -1
  221. package/dist/types/downloads/downloadQueue.d.ts +8 -3
  222. package/dist/types/downloads/fileTypes.d.ts +39 -0
  223. package/dist/types/downloads/index.d.ts +1 -0
  224. package/dist/types/feedback/ConfirmDialog.d.ts +3 -1
  225. package/dist/types/feedback/ModalWaiting.d.ts +7 -2
  226. package/dist/types/feedback/NewBuildNotice.d.ts +3 -1
  227. package/dist/types/filepond/FileDropzone.d.ts +3 -1
  228. package/dist/types/formatting.d.ts +45 -90
  229. package/dist/types/forms/FormWizard.d.ts +3 -1
  230. package/dist/types/forms/auth/ChangePasswordForm.d.ts +3 -1
  231. package/dist/types/forms/auth/ForgotPasswordForm.d.ts +3 -1
  232. package/dist/types/forms/auth/SignInForm.d.ts +3 -1
  233. package/dist/types/forms/security/SecondStepForm.d.ts +3 -1
  234. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +3 -1
  235. package/dist/types/hookForm/FormWizard.d.ts +22 -0
  236. package/dist/types/inbox/InboxLayout.d.ts +14 -2
  237. package/dist/types/inbox/MessageList.d.ts +30 -5
  238. package/dist/types/inbox/MessageView.d.ts +35 -3
  239. package/dist/types/inbox/inboxDates.d.ts +6 -1
  240. package/dist/types/index.d.ts +12 -5
  241. package/dist/types/inputs/CatalogInput.d.ts +9 -5
  242. package/dist/types/inputs/ColorInput.d.ts +3 -1
  243. package/dist/types/inputs/FormSection.d.ts +2 -2
  244. package/dist/types/inputs/NumberInput.d.ts +3 -1
  245. package/dist/types/inputs/SelectInput.d.ts +9 -5
  246. package/dist/types/inputs/TextInput.d.ts +3 -1
  247. package/dist/types/inputs/WizardLayout.d.ts +34 -0
  248. package/dist/types/kanban/KanbanBoard.d.ts +61 -6
  249. package/dist/types/kanban/kanbanCards.d.ts +22 -0
  250. package/dist/types/kanban.d.ts +1 -0
  251. package/dist/types/locales/en.d.ts +77 -0
  252. package/dist/types/locales/es.d.ts +77 -0
  253. package/dist/types/maps/MapView.d.ts +12 -3
  254. package/dist/types/observability/usePublishedBuildWatch.d.ts +3 -1
  255. package/dist/types/pwa/InstallAppSetting.d.ts +7 -1
  256. package/dist/types/pwa/InstallInstructionsDialog.d.ts +3 -1
  257. package/dist/types/pwa/InstallPromptBanner.d.ts +10 -1
  258. package/dist/types/pwa/useInstallPrompt.d.ts +3 -2
  259. package/dist/types/react-hook-form.d.ts +1 -0
  260. package/dist/types/security/ActivityLog.d.ts +3 -1
  261. package/dist/types/security/RecoveryCodesDialog.d.ts +6 -1
  262. package/dist/types/security/SessionsCard.d.ts +3 -1
  263. package/dist/types/table.d.ts +3 -1
  264. package/dist/types/theme/components/MuiDialog.d.ts +9 -0
  265. package/dist/types/toolkit/ComponentTexts.d.ts +11 -0
  266. package/dist/types/toolkit/ToolkitProvider.d.ts +18 -2
  267. package/dist/types/toolkit/browserNavigation.d.ts +23 -28
  268. package/dist/types/toolkit/componentTextsContext.d.ts +20 -0
  269. package/dist/types/toolkit/hashNavigation.d.ts +12 -0
  270. package/dist/types/toolkit/navigationPaths.d.ts +43 -0
  271. package/dist/types/toolkit/toolkitSettings.d.ts +49 -4
  272. package/dist/types/toolkit/useFormatters.d.ts +6 -0
  273. package/dist/types/toolkit/useToolkitTranslation.d.ts +2 -1
  274. package/dist/types/ui/actions/ActionsMenu.d.ts +20 -0
  275. package/dist/types/ui/actions/CopyButton.d.ts +3 -1
  276. package/dist/types/ui/actions/DownloadMenu.d.ts +8 -3
  277. package/dist/types/ui/actions/SecretField.d.ts +5 -1
  278. package/dist/types/ui/actions/SelectionActions.d.ts +39 -0
  279. package/dist/types/ui/filters/DateRangeFilter.d.ts +3 -1
  280. package/dist/types/ui/filters/QuickFilters.d.ts +3 -1
  281. package/dist/types/ui/index.d.ts +1 -1
  282. package/dist/types/ui/labels/tagOf.d.ts +13 -0
  283. package/dist/types/ui/layout/CollapsibleSection.d.ts +4 -1
  284. package/dist/types/ui/layout/ContentDialog.d.ts +3 -1
  285. package/dist/types/ui/layout/ErrorPage.d.ts +14 -1
  286. package/dist/types/ui/layout/FullPageLoader.d.ts +7 -1
  287. package/dist/types/ui/layout/PageHeading.d.ts +3 -1
  288. package/dist/types/ui/metrics/BarList.d.ts +7 -1
  289. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +7 -1
  290. package/dist/types/ui/metrics/ChartTooltip.d.ts +9 -3
  291. package/dist/types/ui/metrics/ColumnChart.d.ts +23 -11
  292. package/dist/types/ui/metrics/LineChart.d.ts +41 -0
  293. package/dist/types/ui/metrics/MetricCard.d.ts +9 -1
  294. package/dist/types/ui/metrics/TableToggle.d.ts +9 -2
  295. package/dist/types/ui/metrics/chartParts.d.ts +112 -0
  296. package/dist/types/ui/navigation/BackButton.d.ts +3 -1
  297. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +8 -2
  298. package/dist/types/ui/navigation/FontSizeToggle.d.ts +7 -2
  299. package/dist/types/ui/navigation/LanguageToggle.d.ts +8 -3
  300. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +5 -2
  301. package/dist/types/ui/timeline/GroupedTimeline.d.ts +4 -1
  302. package/dist/types/upload/FileDropzone.d.ts +3 -1
  303. package/dist/ui/actions/ActionsMenu.js +51 -0
  304. package/dist/ui/actions/ActionsMenu.js.map +1 -0
  305. package/dist/ui/actions/CopyButton.js +2 -2
  306. package/dist/ui/actions/CopyButton.js.map +1 -1
  307. package/dist/ui/actions/DownloadMenu.js +11 -12
  308. package/dist/ui/actions/DownloadMenu.js.map +1 -1
  309. package/dist/ui/actions/SecretField.js +8 -4
  310. package/dist/ui/actions/SecretField.js.map +1 -1
  311. package/dist/ui/actions/SelectionActions.js +142 -0
  312. package/dist/ui/actions/SelectionActions.js.map +1 -0
  313. package/dist/ui/filters/DateRangeFilter.js +4 -3
  314. package/dist/ui/filters/DateRangeFilter.js.map +1 -1
  315. package/dist/ui/filters/QuickFilters.js +2 -2
  316. package/dist/ui/filters/QuickFilters.js.map +1 -1
  317. package/dist/ui/labels/tagOf.js +7 -0
  318. package/dist/ui/labels/tagOf.js.map +1 -0
  319. package/dist/ui/layout/CollapsibleSection.js +6 -2
  320. package/dist/ui/layout/CollapsibleSection.js.map +1 -1
  321. package/dist/ui/layout/ContentDialog.js +2 -2
  322. package/dist/ui/layout/ContentDialog.js.map +1 -1
  323. package/dist/ui/layout/ErrorPage.js +21 -7
  324. package/dist/ui/layout/ErrorPage.js.map +1 -1
  325. package/dist/ui/layout/FullPageLoader.js +2 -2
  326. package/dist/ui/layout/FullPageLoader.js.map +1 -1
  327. package/dist/ui/layout/PageHeading.js +2 -2
  328. package/dist/ui/layout/PageHeading.js.map +1 -1
  329. package/dist/ui/metrics/BarList.js +18 -13
  330. package/dist/ui/metrics/BarList.js.map +1 -1
  331. package/dist/ui/metrics/CalendarHeatmap.js +11 -6
  332. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -1
  333. package/dist/ui/metrics/ChartTooltip.js +1 -1
  334. package/dist/ui/metrics/ChartTooltip.js.map +1 -1
  335. package/dist/ui/metrics/ColumnChart.js +59 -63
  336. package/dist/ui/metrics/ColumnChart.js.map +1 -1
  337. package/dist/ui/metrics/LineChart.js +117 -0
  338. package/dist/ui/metrics/LineChart.js.map +1 -0
  339. package/dist/ui/metrics/MetricCard.js +41 -8
  340. package/dist/ui/metrics/MetricCard.js.map +1 -1
  341. package/dist/ui/metrics/TableToggle.js +4 -2
  342. package/dist/ui/metrics/TableToggle.js.map +1 -1
  343. package/dist/ui/metrics/chartParts.js +93 -0
  344. package/dist/ui/metrics/chartParts.js.map +1 -0
  345. package/dist/ui/navigation/BackButton.js +2 -2
  346. package/dist/ui/navigation/BackButton.js.map +1 -1
  347. package/dist/ui/navigation/ColorSchemeToggle.js +6 -3
  348. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -1
  349. package/dist/ui/navigation/FontSizeToggle.js +3 -2
  350. package/dist/ui/navigation/FontSizeToggle.js.map +1 -1
  351. package/dist/ui/navigation/LanguageToggle.js +40 -19
  352. package/dist/ui/navigation/LanguageToggle.js.map +1 -1
  353. package/dist/ui/navigation/PageBreadcrumbs.js +2 -2
  354. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -1
  355. package/dist/ui/timeline/GroupedTimeline.js +10 -8
  356. package/dist/ui/timeline/GroupedTimeline.js.map +1 -1
  357. package/dist/upload/FileDropzone.js +5 -3
  358. package/dist/upload/FileDropzone.js.map +1 -1
  359. package/package.json +14 -6
@@ -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;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {Object[]} props.steps en orden
4
+ * @param {string} props.steps[].key
5
+ * @param {string} props.steps[].label ya traducido
6
+ * @param {string[]} [props.steps[].fields] los campos del paso (los que revisa «Siguiente»)
7
+ * @param {boolean} [props.steps[].optional] se puede omitir
8
+ * @param {import('react').ReactNode} props.steps[].content los campos del paso
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}}
11
+ */
12
+ export default function FormWizard({ steps, submitLabel, texts }: {
13
+ steps: {
14
+ key: string;
15
+ label: string;
16
+ fields?: string[];
17
+ optional?: boolean;
18
+ content: import('react').ReactNode;
19
+ }[];
20
+ submitLabel: string;
21
+ texts?: object;
22
+ }): import("react").JSX.Element;
@@ -1,21 +1,31 @@
1
1
  /**
2
2
  * @param {object} props
3
3
  * @param {Array<{id: string, label: string, Icon?: import('react').ElementType, unreadCount?: number}>} props.folders
4
- * @param {string} props.selectedFolderId
4
+ * @param {Array<{id: string, label: string, color?: string, unreadCount?: number}>} [props.labels] las etiquetas, debajo de las
5
+ * carpetas con su punto de color (un color del tema); su id no debe repetir el de una carpeta
6
+ * @param {string} props.selectedFolderId la carpeta o etiqueta elegida
5
7
  * @param {(folderId: string) => void} props.onSelectFolder
6
8
  * @param {import('react').ReactNode} [props.toolbar] arriba de la lista (buscar, redactar)
7
9
  * @param {import('react').ReactNode} props.list normalmente MessageList
8
10
  * @param {import('react').ReactNode} props.detail normalmente MessageView
9
11
  * @param {boolean} [props.isDetailOpen] en el teléfono, se ve la lectura en lugar de la lista
10
12
  * @param {() => void} [props.onCloseDetail] «Regresar» del teléfono
13
+ * @param {import('react').ReactNode} [props.foldersHeader] arriba de las carpetas en escritorio (un botón «Redactar»)
14
+ * @param {object} [props.texts] los textos que cambian, con la forma de `inbox` en los textos del paquete
11
15
  */
12
- export default function InboxLayout({ folders, selectedFolderId, onSelectFolder, toolbar, list, detail, isDetailOpen, onCloseDetail }: {
16
+ export default function InboxLayout({ folders, labels, selectedFolderId, onSelectFolder, toolbar, list, detail, isDetailOpen, onCloseDetail, foldersHeader, texts, }: {
13
17
  folders: Array<{
14
18
  id: string;
15
19
  label: string;
16
20
  Icon?: import('react').ElementType;
17
21
  unreadCount?: number;
18
22
  }>;
23
+ labels?: Array<{
24
+ id: string;
25
+ label: string;
26
+ color?: string;
27
+ unreadCount?: number;
28
+ }>;
19
29
  selectedFolderId: string;
20
30
  onSelectFolder: (folderId: string) => void;
21
31
  toolbar?: import('react').ReactNode;
@@ -23,4 +33,6 @@ export default function InboxLayout({ folders, selectedFolderId, onSelectFolder,
23
33
  detail: import('react').ReactNode;
24
34
  isDetailOpen?: boolean;
25
35
  onCloseDetail?: () => void;
36
+ foldersHeader?: import('react').ReactNode;
37
+ texts?: object;
26
38
  }): import("react").JSX.Element;