@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
@@ -38,6 +38,20 @@ declare const _default: Readonly<{
38
38
  descending: string;
39
39
  clear: string;
40
40
  };
41
+ selection: {
42
+ count_one: string;
43
+ count_other: string;
44
+ allMatching: string;
45
+ allMatchingCapped: string;
46
+ pageSelected_one: string;
47
+ pageSelected_other: string;
48
+ selectAllMatching: string;
49
+ selectAllMatchingCapped: string;
50
+ onlyThisPage: string;
51
+ clear: string;
52
+ summaryLabel: string;
53
+ actionsLabel: string;
54
+ };
41
55
  goToPage: {
42
56
  page: string;
43
57
  of_one: string;
@@ -110,6 +124,11 @@ declare const _default: Readonly<{
110
124
  colorLowContrast: string;
111
125
  colorUseSuggestion: string;
112
126
  };
127
+ selection: {
128
+ clear: string;
129
+ actionsLabel: string;
130
+ summaryLabel: string;
131
+ };
113
132
  wizard: {
114
133
  next: string;
115
134
  back: string;
@@ -123,6 +142,8 @@ declare const _default: Readonly<{
123
142
  es: string;
124
143
  en: string;
125
144
  };
145
+ switchToNamed: string;
146
+ choose: string;
126
147
  };
127
148
  colorScheme: {
128
149
  label: string;
@@ -259,6 +280,7 @@ declare const _default: Readonly<{
259
280
  };
260
281
  charts: {
261
282
  viewAsTable: string;
283
+ legend: string;
262
284
  viewAsChart: string;
263
285
  less: string;
264
286
  more: string;
@@ -612,6 +634,33 @@ declare const _default: Readonly<{
612
634
  };
613
635
  };
614
636
  calendar: {
637
+ details: {
638
+ when: string;
639
+ timeRange: string;
640
+ allDay: string;
641
+ location: string;
642
+ meeting: string;
643
+ join: string;
644
+ attendees: string;
645
+ attendeesCount_one: string;
646
+ attendeesCount_other: string;
647
+ response: {
648
+ accepted: string;
649
+ declined: string;
650
+ pending: string;
651
+ };
652
+ reminder: string;
653
+ reminderUnit: {
654
+ atStart: string;
655
+ minutes_one: string;
656
+ minutes_other: string;
657
+ hours_one: string;
658
+ hours_other: string;
659
+ days_one: string;
660
+ days_other: string;
661
+ };
662
+ notes: string;
663
+ };
615
664
  previous: string;
616
665
  next: string;
617
666
  today: string;
@@ -624,15 +673,43 @@ declare const _default: Readonly<{
624
673
  };
625
674
  };
626
675
  kanban: {
676
+ dueCompleted: string;
677
+ complete: string;
678
+ reopen: string;
679
+ completed: string;
680
+ collapseColumn: string;
681
+ expandColumn: string;
682
+ addCard: string;
683
+ addCardPlaceholder: string;
684
+ cardActions: string;
685
+ columnActions: string;
686
+ dueOverdue: string;
687
+ dueToday: string;
688
+ dueOn: string;
689
+ checklist: string;
690
+ comments_one: string;
691
+ comments_other: string;
692
+ attachments_one: string;
693
+ attachments_other: string;
694
+ assignees: string;
627
695
  instructions: string;
628
696
  lifted: string;
629
697
  moving: string;
630
698
  dropped: string;
631
699
  cancelled: string;
632
700
  overLimit: string;
701
+ emptyFiltered: string;
633
702
  empty: string;
634
703
  };
635
704
  inbox: {
705
+ labels: string;
706
+ select: string;
707
+ messageActions: string;
708
+ threadCount_one: string;
709
+ threadCount_other: string;
710
+ cc: string;
711
+ openAttachment: string;
712
+ expandMessage: string;
636
713
  listLabel: string;
637
714
  folders: string;
638
715
  empty: string;
@@ -5,22 +5,27 @@ export declare const OPEN_STREET_MAP_TILES: Readonly<{
5
5
  }>;
6
6
  /**
7
7
  * @param {object} props
8
- * @param {Array<{id: string, position: [number, number], title: string, description?: string, tone?: string}>} props.markers
8
+ * @param {Array<{id: string, position: [number, number], title: string, description?: string, tone?: string} & Record<string, any>>} props.markers
9
9
  * tone: un color del tema (primary, success, warning, error, info…); por omisión primary
10
10
  * @param {string|null} [props.selectedId]
11
11
  * @param {(markerId: string) => void} [props.onSelect] al picar un marcador
12
12
  * @param {string} props.ariaLabel ya traducido: qué enseña el mapa
13
13
  * @param {number} [props.height] px
14
14
  * @param {{url: string, attribution: string}} [props.tileLayer] por omisión OpenStreetMap
15
+ * @param {(marker: any) => import('react').ReactNode} [props.renderPopup] lo que dice el globo de un marcador (recibe el
16
+ * marcador tal cual, con sus campos propios); por omisión su título y su descripción
17
+ * @param {(position: [number, number]) => void} [props.onMapClick] al picar el mapa fuera de un marcador
18
+ * @param {import('react').ReactNode} [props.children] capas propias de react-leaflet (Circle, Polygon, GeoJSON…)
19
+ * @param {object} [props.mapProps] lo demás de MapContainer de react-leaflet (scrollWheelZoom, minZoom…)
15
20
  */
16
- export default function MapView({ markers, selectedId, onSelect, ariaLabel, height, tileLayer }: {
21
+ export default function MapView({ markers, selectedId, onSelect, ariaLabel, height, tileLayer, renderPopup, onMapClick, children, mapProps, }: {
17
22
  markers: Array<{
18
23
  id: string;
19
24
  position: [number, number];
20
25
  title: string;
21
26
  description?: string;
22
27
  tone?: string;
23
- }>;
28
+ } & Record<string, any>>;
24
29
  selectedId?: string | null;
25
30
  onSelect?: (markerId: string) => void;
26
31
  ariaLabel: string;
@@ -29,4 +34,8 @@ export default function MapView({ markers, selectedId, onSelect, ariaLabel, heig
29
34
  url: string;
30
35
  attribution: string;
31
36
  };
37
+ renderPopup?: (marker: any) => import('react').ReactNode;
38
+ onMapClick?: (position: [number, number]) => void;
39
+ children?: import('react').ReactNode;
40
+ mapProps?: object;
32
41
  }): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @param {object} [options]
3
3
  * @param {string|null} [options.url] dónde está el archivo de versión ({"buildId": "…"}); null: no vigila
4
+ * @param {string} [options.buildId] la versión de esta pestaña; por omisión el buildId de ToolkitProvider (ver el OJO)
4
5
  * @param {number} [options.checkEveryMinutes] cada cuánto revisa mientras se usa; por omisión 5
5
6
  * @param {number|null} [options.reloadAfterHiddenMinutes] desde cuántos minutos fuera se recarga sola al volver; por
6
7
  * omisión 15. null: nunca se recarga sola, siempre el aviso
@@ -8,8 +9,9 @@
8
9
  * función nueva en cada pintada volvería a armar la vigilancia
9
10
  * @returns {void}
10
11
  */
11
- export declare function usePublishedBuildWatch({ url, checkEveryMinutes, reloadAfterHiddenMinutes, onReload, }?: {
12
+ export declare function usePublishedBuildWatch({ url, buildId, checkEveryMinutes, reloadAfterHiddenMinutes, onReload, }?: {
12
13
  url?: string | null;
14
+ buildId?: string;
13
15
  checkEveryMinutes?: number;
14
16
  reloadAfterHiddenMinutes?: number | null;
15
17
  onReload?: () => void;
@@ -1 +1,7 @@
1
- export default function InstallAppSetting(): import("react").JSX.Element | null;
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 InstallAppSetting({ texts }?: {
6
+ texts?: object;
7
+ }): import("react").JSX.Element | null;
@@ -10,9 +10,11 @@ export declare function variantHasInstructions(variant: string | null): boolean;
10
10
  * @param {string|null} props.variant una de INSTALL_VARIANT (useInstallPrompt)
11
11
  * @param {boolean} props.open
12
12
  * @param {() => void} props.onClose
13
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
13
14
  */
14
- export default function InstallInstructionsDialog({ variant, open, onClose }: {
15
+ export default function InstallInstructionsDialog({ variant, open, onClose, texts }: {
15
16
  variant: string | null;
16
17
  open: boolean;
17
18
  onClose: () => void;
19
+ texts?: object;
18
20
  }): import("react").JSX.Element | null;
@@ -1,7 +1,16 @@
1
1
  /**
2
2
  * @param {object} [props]
3
3
  * @param {string} [props.message] ya traducido; por omisión el del paquete con el nombre de la app (appName de ToolkitProvider)
4
+ * @param {(outcome: 'accepted'|'dismissed'|null) => void} [props.onInstallChoice] lo que contestó la persona al diálogo de
5
+ * instalar del navegador (Chrome, Edge, Android)
6
+ * @param {() => void} [props.onShowSteps] abrió los pasos para instalar (iPhone, iPad, Firefox de Android)
7
+ * @param {() => void} [props.onDismiss] dijo «Ahora no» (o cerró los pasos): no se le vuelve a ofrecer en este navegador
8
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
4
9
  */
5
- export default function InstallPromptBanner({ message }?: {
10
+ export default function InstallPromptBanner({ message, onInstallChoice, onShowSteps, onDismiss, texts }?: {
6
11
  message?: string;
12
+ onInstallChoice?: (outcome: 'accepted' | 'dismissed' | null) => void;
13
+ onShowSteps?: () => void;
14
+ onDismiss?: () => void;
15
+ texts?: object;
7
16
  }): import("react").JSX.Element | null;
@@ -1,5 +1,6 @@
1
1
  /**
2
- * @returns {{variant: string|null, isInstalled: boolean, dismissed: boolean, dismiss: () => void, promptInstall: () => Promise<void>}}
2
+ * @returns {{variant: string|null, isInstalled: boolean, dismissed: boolean, dismiss: () => void, promptInstall: () => Promise<'accepted'|'dismissed'|null>}}
3
+ * promptInstall regresa lo que contestó la persona al diálogo del navegador (null: ya no había diálogo)
3
4
  * variant: una de INSTALL_VARIANT o null (nada que ofrecer). NO toma en cuenta el «Ahora no»: la invitación sí lo respeta,
4
5
  * pero la entrada del menú de la cuenta no, porque ahí la persona la busca a propósito.
5
6
  */
@@ -8,5 +9,5 @@ export declare function useInstallPrompt(): {
8
9
  isInstalled: boolean;
9
10
  dismissed: boolean;
10
11
  dismiss: () => void;
11
- promptInstall: () => Promise<void>;
12
+ promptInstall: () => Promise<'accepted' | 'dismissed' | null>;
12
13
  };
@@ -5,6 +5,7 @@ export { default as FormColorField } from './hookForm/FormColorField.js';
5
5
  export { default as FormNumberField } from './hookForm/FormNumberField.js';
6
6
  export { default as FormProblemAlert } from './hookForm/FormProblemAlert.js';
7
7
  export { default as FormSelectField } from './hookForm/FormSelectField.js';
8
+ export { default as FormWizard } from './hookForm/FormWizard.js';
8
9
  export { default as FormTextField } from './hookForm/FormTextField.js';
9
10
  export { default as SubmitButton } from './hookForm/SubmitButton.js';
10
11
  export { SERVER_PROBLEM_ROOT, applyServerProblem } from './hookForm/applyServerProblem.js';
@@ -17,8 +17,9 @@ export declare const ACCOUNT_EVENT_KIND: Readonly<{
17
17
  * @param {Array<{id: string, kind: string, occurredAt: string, device?: string|null, network?: string|null, description?: string}>|null} props.events
18
18
  * del más nuevo al más viejo; null mientras llegan
19
19
  * @param {string|null} [props.error] ya traducido si no se pudieron traer
20
+ * @param {object} [props.texts] los textos que cambian, con la forma de `security` en los textos del paquete
20
21
  */
21
- export default function ActivityLog({ events, error }: {
22
+ export default function ActivityLog({ events, error, texts }: {
22
23
  events: Array<{
23
24
  id: string;
24
25
  kind: string;
@@ -28,4 +29,5 @@ export default function ActivityLog({ events, error }: {
28
29
  description?: string;
29
30
  }> | null;
30
31
  error?: string | null;
32
+ texts?: object;
31
33
  }): import("react").JSX.Element;
@@ -3,9 +3,14 @@
3
3
  * @param {string[]|null} props.codes los códigos recién generados; sin códigos el diálogo está cerrado
4
4
  * @param {string} [props.account] la cuenta (normalmente el correo), para el archivo
5
5
  * @param {() => void} props.onClose solo se llama después de «Ya los guardé»
6
+ * @param {(method: 'copy'|'download') => void} [props.onCodesSaved] la persona los copió o los descargó (para la bitácora de
7
+ * seguridad)
8
+ * @param {object} [props.texts] los textos que cambian, con la forma de `security` en los textos del paquete
6
9
  */
7
- export default function RecoveryCodesDialog({ codes, account, onClose }: {
10
+ export default function RecoveryCodesDialog({ codes, account, onClose, onCodesSaved, texts }: {
8
11
  codes: string[] | null;
9
12
  account?: string;
10
13
  onClose: () => void;
14
+ onCodesSaved?: (method: 'copy' | 'download') => void;
15
+ texts?: object;
11
16
  }): import("react").JSX.Element;
@@ -5,8 +5,9 @@
5
5
  * @param {string|null} [props.error] ya traducido (ApiError.message) si no se pudieron traer
6
6
  * @param {() => Promise<number>} props.onCloseOthers cierra las demás; regresa cuántas cerró
7
7
  * @param {() => void} [props.onClosed] p. ej. volver a pedir la lista
8
+ * @param {object} [props.texts] los textos que cambian, con la forma de `security` en los textos del paquete
8
9
  */
9
- export default function SessionsCard({ sessions, error, onCloseOthers, onClosed }: {
10
+ export default function SessionsCard({ sessions, error, onCloseOthers, onClosed, texts }: {
10
11
  sessions: Array<{
11
12
  id: string;
12
13
  browser?: string | null;
@@ -19,4 +20,5 @@ export default function SessionsCard({ sessions, error, onCloseOthers, onClosed
19
20
  error?: string | null;
20
21
  onCloseOthers: () => Promise<number>;
21
22
  onClosed?: () => void;
23
+ texts?: object;
22
24
  }): import("react").JSX.Element;
@@ -1 +1,3 @@
1
- export { AuditTrailDialog, AuditTrailTable, EmptyState, FILTER_KINDS, FilterChips, GoToPage, ServerTable, TableFilterContext, buildChipConfig, buildTableActors, detailColumn, facetColumn, isFilterActive, tableMachine, textColumn, toServerTableParams, useDebouncedFilter, useTableFilter, useTableState, } from './DataTable/index.js';
1
+ export { AuditTrailDialog, AuditTrailTable, EmptyState, FILTER_KINDS, FilterChips, GoToPage, SELECTION_PHONE_LAYOUT, ServerTable, TableFilterContext, buildChipConfig, buildTableActors, detailColumn, facetColumn, isFilterActive, tableMachine, textColumn, toServerTableParams, useDebouncedFilter, useTableFilter, useTableState, } from './DataTable/index.js';
2
+ export type RowSelection = import('./DataTable/rowSelection.js').RowSelection;
3
+ /** @typedef {import('./DataTable/rowSelection.js').RowSelection} RowSelection */
@@ -0,0 +1,9 @@
1
+ export declare function MuiDialog(): {
2
+ MuiDialog: {
3
+ styleOverrides: {
4
+ paper: {
5
+ outline: number;
6
+ };
7
+ };
8
+ };
9
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {string} props.namespace 'table', 'common', 'account'… (los de src/locales/es.js)
4
+ * @param {object} [props.texts] los textos que cambian, con la forma de ese namespace
5
+ * @param {import('react').ReactNode} props.children
6
+ */
7
+ export default function ComponentTexts({ namespace, texts, children }: {
8
+ namespace: string;
9
+ texts?: object;
10
+ children: import('react').ReactNode;
11
+ }): import("react").JSX.Element;
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * @param {object} props
3
- * @param {string} [props.language] idioma activo: es o en (por omisión es)
3
+ * @param {string} [props.language] idioma activo, uno de `languages` (por omisión es)
4
+ * @param {Array<{code: string, label: string, locale?: string}>} [props.languages] los idiomas que ofrece la app: su código,
5
+ * su nombre en su propio idioma («Português») y su locale de Intl ('pt-BR'). Por omisión español e inglés
6
+ * (DEFAULT_LANGUAGES). Sus traducciones van en `texts`
7
+ * @param {Record<string, {Icon: import('react').ElementType, color?: string, label?: string, hint?: string}>} [props.fileTypes]
8
+ * tipos de archivo del proyecto para las descargas, además de Excel, CSV y PDF (downloads/fileTypes.js)
4
9
  * @param {(language: string) => void} [props.onLanguageChange] lo llama LanguageToggle; el proyecto cambia su idioma
5
10
  * @param {object} [props.texts] textos propios por idioma, con la forma de locales/ ({es: {table: {...}}})
6
11
  * @param {(namespace: string, key: string, values?: object) => string|undefined} [props.translate] traductor del
@@ -16,8 +21,19 @@
16
21
  * tiene regla
17
22
  * @param {import('react').ReactNode} props.children
18
23
  */
19
- export declare const ToolkitProvider: ({ language, onLanguageChange, texts, translate, timeZone, currency, appName, navigation, buildId, canAccess, children, }: {
24
+ export declare const ToolkitProvider: ({ language, languages, onLanguageChange, texts, translate, timeZone, currency, appName, navigation, buildId, canAccess, fileTypes, children, }: {
20
25
  language?: string;
26
+ languages?: Array<{
27
+ code: string;
28
+ label: string;
29
+ locale?: string;
30
+ }>;
31
+ fileTypes?: Record<string, {
32
+ Icon: import('react').ElementType;
33
+ color?: string;
34
+ label?: string;
35
+ hint?: string;
36
+ }>;
21
37
  onLanguageChange?: (language: string) => void;
22
38
  texts?: object;
23
39
  translate?: (namespace: string, key: string, values?: object) => string | undefined;
@@ -1,32 +1,27 @@
1
1
  /**
2
- * Cambia de página: -1 regresa en el historial; una ruta abre esa ruta.
2
+ * La navegación del navegador, con o sin prefijo.
3
3
  *
4
- * @param {string|number} destination
5
- * @returns {void}
4
+ * @param {{basePath?: string}} [options] basePath: donde vive la app detrás de un proxy ('/portal'); sin él, la raíz
5
+ * @returns {{useNavigate: () => (destination: string|number) => void, useLocation: () => {pathname: string, search: string, key: string}, Link: import('react').ElementType}}
6
6
  */
7
- declare function navigateInBrowser(destination: string | number): void;
8
- /**
9
- * La página actual, como la da react-router: la ruta, la búsqueda y una llave por página.
10
- *
11
- * @returns {{pathname: string, search: string, key: string}}
12
- */
13
- declare function useBrowserLocation(): {
14
- pathname: string;
15
- search: string;
16
- key: string;
7
+ export declare function createBrowserNavigation({ basePath }?: {
8
+ basePath?: string;
9
+ }): {
10
+ useNavigate: () => (destination: string | number) => void;
11
+ useLocation: () => {
12
+ pathname: string;
13
+ search: string;
14
+ key: string;
15
+ };
16
+ Link: import('react').ElementType;
17
+ };
18
+ /** La de omisión: sin prefijo. */
19
+ export declare const browserNavigation: {
20
+ useNavigate: () => (destination: string | number) => void;
21
+ useLocation: () => {
22
+ pathname: string;
23
+ search: string;
24
+ key: string;
25
+ };
26
+ Link: import('react').ElementType;
17
27
  };
18
- /**
19
- * El enlace sin router: un <a> con href.
20
- *
21
- * @param {{to: string}} props lo demás pasa al <a>
22
- * @returns {import('react').ReactElement}
23
- */
24
- declare function BrowserLink({ to, ...props }: {
25
- to: string;
26
- }): import('react').ReactElement;
27
- export declare const browserNavigation: Readonly<{
28
- useNavigate: () => typeof navigateInBrowser;
29
- useLocation: typeof useBrowserLocation;
30
- Link: typeof BrowserLink;
31
- }>;
32
- export {};
@@ -0,0 +1,20 @@
1
+ /** @type {import('react').Context<{namespace: string, texts: object|undefined, parent: object|null}|null>} */
2
+ export declare const ComponentTextsContext: import('react').Context<{
3
+ namespace: string;
4
+ texts: object | undefined;
5
+ parent: object | null;
6
+ } | null>;
7
+ /**
8
+ * Las capas de afuera hacia la más lejana, para componentTextOf.
9
+ *
10
+ * @param {{namespace: string, texts: object|undefined, parent: object|null}|null} layer
11
+ * @returns {Array<{namespace: string, texts: object|undefined}>}
12
+ */
13
+ export declare function layersOf(layer: {
14
+ namespace: string;
15
+ texts: object | undefined;
16
+ parent: object | null;
17
+ } | null): Array<{
18
+ namespace: string;
19
+ texts: object | undefined;
20
+ }>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @returns {{useNavigate: () => (destination: string|number) => void, useLocation: () => {pathname: string, search: string, key: string}, Link: import('react').ElementType}}
3
+ */
4
+ export declare function createHashNavigation(): {
5
+ useNavigate: () => (destination: string | number) => void;
6
+ useLocation: () => {
7
+ pathname: string;
8
+ search: string;
9
+ key: string;
10
+ };
11
+ Link: import('react').ElementType;
12
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * El prefijo limpio: '' sin prefijo; si no, empieza con / y no termina con / ('portal/' → '/portal').
3
+ *
4
+ * @param {string|null|undefined} basePath
5
+ * @returns {string}
6
+ */
7
+ export declare function normalizedBasePath(basePath: string | null | undefined): string;
8
+ /**
9
+ * La dirección real de una ruta de la app con el prefijo puesto: '/pedidos' → '/portal/pedidos'. Lo que no es ruta de la
10
+ * app se queda como viene.
11
+ *
12
+ * @param {string} basePath
13
+ * @param {string} destination
14
+ * @returns {string}
15
+ */
16
+ export declare function pathWithBase(basePath: string, destination: string): string;
17
+ /**
18
+ * La ruta de la app de una dirección real, sin el prefijo: '/portal/pedidos' → '/pedidos'; el prefijo solo → '/'. Una
19
+ * dirección de fuera del prefijo se queda como viene.
20
+ *
21
+ * @param {string} basePath
22
+ * @param {string} pathname
23
+ * @returns {string}
24
+ */
25
+ export declare function pathWithoutBase(basePath: string, pathname: string): string;
26
+ /**
27
+ * La página de la app que va después del # ('#/pedidos?estado=pendiente' → {pathname: '/pedidos', search: '?estado=pendiente'}).
28
+ * Sin nada después del #, el inicio.
29
+ *
30
+ * @param {string} hash el de la dirección (location.hash), con o sin #
31
+ * @returns {{pathname: string, search: string}}
32
+ */
33
+ export declare function hashLocationOf(hash: string): {
34
+ pathname: string;
35
+ search: string;
36
+ };
37
+ /**
38
+ * El enlace de una ruta de la app con # ('/pedidos' → '#/pedidos'). Lo que no es ruta de la app se queda como viene.
39
+ *
40
+ * @param {string} destination
41
+ * @returns {string}
42
+ */
43
+ export declare function hashHrefOf(destination: string): string;
@@ -1,5 +1,19 @@
1
1
  export declare const DEFAULT_LANGUAGE = "es";
2
2
  export declare const DEFAULT_CURRENCY = "MXN";
3
+ /**
4
+ * Los idiomas que ofrece la app cuando el proyecto no dice otros: su código, su nombre en su propio idioma (así lo busca quien
5
+ * lo habla) y cómo se escriben sus números y fechas (Intl). El proyecto agrega los suyos en ToolkitProvider `languages` y pone
6
+ * sus traducciones en `texts` (lo que no traduzca sale en español); los textos del paquete solo vienen en español e inglés.
7
+ */
8
+ export declare const DEFAULT_LANGUAGES: readonly (Readonly<{
9
+ code: "es";
10
+ label: "Español";
11
+ locale: "es-MX";
12
+ }> | Readonly<{
13
+ code: "en";
14
+ label: "English";
15
+ locale: "en-US";
16
+ }>)[];
3
17
  /**
4
18
  * La zona horaria del navegador; si el navegador no la sabe, la de la Ciudad de México.
5
19
  *
@@ -10,7 +24,7 @@ export declare function browserTimeZone(): string;
10
24
  * Cambia la configuración que leen las funciones del paquete. La llama ToolkitProvider; un proyecto sin React (o una
11
25
  * prueba) la puede llamar directo.
12
26
  *
13
- * @param {{language?: string, texts?: object, translate?: Function|null, timeZone?: string, currency?: string, appName?: string, buildId?: string}} settings
27
+ * @param {{language?: string, texts?: object, translate?: Function|null, timeZone?: string, currency?: string, appName?: string, buildId?: string, languages?: Array<{code: string, label: string, locale?: string}>}} settings
14
28
  * @returns {void}
15
29
  */
16
30
  export declare function configureToolkit(settings: {
@@ -21,11 +35,16 @@ export declare function configureToolkit(settings: {
21
35
  currency?: string;
22
36
  appName?: string;
23
37
  buildId?: string;
38
+ languages?: Array<{
39
+ code: string;
40
+ label: string;
41
+ locale?: string;
42
+ }>;
24
43
  }): void;
25
44
  /**
26
45
  * La configuración vigente.
27
46
  *
28
- * @returns {{language: string, texts: object, translate: Function|null, timeZone: string, currency: string, appName: string, buildId: string}}
47
+ * @returns {{language: string, texts: object, translate: Function|null, timeZone: string, currency: string, appName: string, buildId: string, languages: Array<{code: string, label: string, locale?: string}>}}
29
48
  */
30
49
  export declare function toolkitSettings(): {
31
50
  language: string;
@@ -35,14 +54,40 @@ export declare function toolkitSettings(): {
35
54
  currency: string;
36
55
  appName: string;
37
56
  buildId: string;
57
+ languages: Array<{
58
+ code: string;
59
+ label: string;
60
+ locale?: string;
61
+ }>;
38
62
  };
39
63
  /**
40
- * El locale de Intl del idioma (es → es-MX, en → en-US).
64
+ * El locale de Intl del idioma: el que dice su lista de idiomas (es → es-MX, pt → pt-BR) o, si no dice, el código mismo
65
+ * (Intl entiende «pt»). OJO: antes un idioma que no fuera es ni en salía con los números y las fechas de México.
41
66
  *
42
67
  * @param {string} language
68
+ * @param {Array<{code: string, locale?: string}>} [languages] por omisión los de la configuración vigente
43
69
  * @returns {string}
44
70
  */
45
- export declare function intlLocaleOf(language: string): string;
71
+ export declare function intlLocaleOf(language: string, languages?: Array<{
72
+ code: string;
73
+ locale?: string;
74
+ }>): string;
75
+ /**
76
+ * El texto de una llave en los textos propios de los componentes (la prop `texts` de un componente y los de ComponentTexts
77
+ * de afuera), si alguno la trae. Cada capa es {namespace, texts} con la misma forma que ese namespace en los textos del
78
+ * paquete (es.js): plurales con _one/_other y {{variables}}. La primera capa que trae la llave gana.
79
+ *
80
+ * @param {Array<{namespace: string, texts: object|undefined}>} layers de la más cercana a la más lejana
81
+ * @param {string} namespace el de la llave
82
+ * @param {string} key la llave sin namespace
83
+ * @param {object|undefined} values
84
+ * @param {string} language para elegir el plural
85
+ * @returns {string|undefined} el texto ya con sus variables, o undefined si ninguna capa lo trae
86
+ */
87
+ export declare function componentTextOf(layers: Array<{
88
+ namespace: string;
89
+ texts: object | undefined;
90
+ }>, namespace: string, key: string, values: object | undefined, language: string): string | undefined;
46
91
  /**
47
92
  * El texto de una llave con una configuración dada (la del proveedor o la vigente).
48
93
  *
@@ -0,0 +1,6 @@
1
+ import { formattersOf } from '../formatting.js';
2
+ /**
3
+ * @returns {ReturnType<typeof formattersOf>} formatNumber, formatList, formatCurrency, formatFileSize, formatPercent,
4
+ * formatDateTime, formatDate, formatTime, formatMonthName, formatMonthShortName y formatWeekdayShortName
5
+ */
6
+ export declare function useFormatters(): ReturnType<typeof formattersOf>;
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @param {string|string[]} [namespace] el namespace de las llaves sin prefijo; con una lista, el primero. Sin él, cada
3
3
  * llave lleva el suyo ('orders:list.title')
4
+ * @param {object} [ownTexts] los textos propios del componente (su prop `texts`), con la forma de ese namespace
4
5
  * @returns {{t: (key: string, values?: object) => string, language: string, changeLanguage: (language: string) => void}}
5
6
  */
6
- export declare function useToolkitTranslation(namespace?: string | string[]): {
7
+ export declare function useToolkitTranslation(namespace?: string | string[], ownTexts?: object): {
7
8
  t: (key: string, values?: object) => string;
8
9
  language: string;
9
10
  changeLanguage: (language: string) => void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {string} props.label el nombre del botón (lector de pantalla y su tooltip), ya traducido
4
+ * @param {Array<{key: string, label: string, icon?: import('react').ReactNode, color?: string, disabled?: boolean, onClick: () => void}>} [props.actions]
5
+ * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)
6
+ * @param {'small'|'medium'} [props.size]
7
+ */
8
+ export default function ActionsMenu({ label, actions, icon, size }: {
9
+ label: string;
10
+ actions?: Array<{
11
+ key: string;
12
+ label: string;
13
+ icon?: import('react').ReactNode;
14
+ color?: string;
15
+ disabled?: boolean;
16
+ onClick: () => void;
17
+ }>;
18
+ icon?: import('react').ReactNode;
19
+ size?: 'small' | 'medium';
20
+ }): import("react").JSX.Element | null;
@@ -4,10 +4,12 @@
4
4
  * @param {string} [props.label] ya traducido; por omisión «Copiar»
5
5
  * @param {'small'|'medium'} [props.size]
6
6
  * @param {() => void} [props.onCopied]
7
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
7
8
  */
8
- export default function CopyButton({ value, label, size, onCopied }: {
9
+ export default function CopyButton({ value, label, size, onCopied, texts }: {
9
10
  value: string;
10
11
  label?: string;
11
12
  size?: 'small' | 'medium';
12
13
  onCopied?: () => void;
14
+ texts?: object;
13
15
  }): import("react").JSX.Element;