@stackcraftmx/calcita 0.47.0 → 0.52.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 (501) hide show
  1. package/README.md +192 -13
  2. package/cli/calcita.js +17 -0
  3. package/cli/checkTexts.js +266 -0
  4. package/cli/packageVersions.js +6 -1
  5. package/cli/projectFiles.js +4 -2
  6. package/cli/templates/project/README.md.tpl +21 -1
  7. package/cli/templates/project/eslint.config.js.tpl +27 -0
  8. package/cli/templates/project/src/app/appTexts.js.tpl +2 -1
  9. package/cli/templates/project/src/core/publicPaths.js.tpl +10 -2
  10. package/cli/templates/project/vite.config.js.tpl +8 -1
  11. package/dist/DataTable/AuditTrailDialog.js +3 -2
  12. package/dist/DataTable/AuditTrailDialog.js.map +1 -1
  13. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js +3 -2
  14. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js.map +1 -1
  15. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +3 -2
  16. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -1
  17. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js +3 -2
  18. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js.map +1 -1
  19. package/dist/DataTable/EmptyState.js +3 -2
  20. package/dist/DataTable/EmptyState.js.map +1 -1
  21. package/dist/DataTable/FilterChips.js +3 -2
  22. package/dist/DataTable/FilterChips.js.map +1 -1
  23. package/dist/DataTable/GoToPage.js +3 -2
  24. package/dist/DataTable/GoToPage.js.map +1 -1
  25. package/dist/DataTable/ServerTable.js +95 -28
  26. package/dist/DataTable/ServerTable.js.map +1 -1
  27. package/dist/DataTable/ServerTableFilterDrawer.js +8 -3
  28. package/dist/DataTable/ServerTableFilterDrawer.js.map +1 -1
  29. package/dist/DataTable/StackedCell.js +60 -0
  30. package/dist/DataTable/StackedCell.js.map +1 -0
  31. package/dist/DataTable/TableCardsView.js +88 -0
  32. package/dist/DataTable/TableCardsView.js.map +1 -0
  33. package/dist/DataTable/columnWidths.js +30 -0
  34. package/dist/DataTable/columnWidths.js.map +1 -0
  35. package/dist/DataTable/columns.js +47 -1
  36. package/dist/DataTable/columns.js.map +1 -1
  37. package/dist/DataTable/fixedColumns.js +24 -0
  38. package/dist/DataTable/fixedColumns.js.map +1 -0
  39. package/dist/DataTable/useTableView.js +29 -0
  40. package/dist/DataTable/useTableView.js.map +1 -0
  41. package/dist/access/PermissionMatrix.js +3 -2
  42. package/dist/access/PermissionMatrix.js.map +1 -1
  43. package/dist/account/AccountProvider.js +1 -1
  44. package/dist/account/AccountSecuritySection.js +3 -2
  45. package/dist/account/AccountSecuritySection.js.map +1 -1
  46. package/dist/account/DemoTotpCodeButton.js +3 -2
  47. package/dist/account/DemoTotpCodeButton.js.map +1 -1
  48. package/dist/account/ProfileScreen.js +3 -2
  49. package/dist/account/ProfileScreen.js.map +1 -1
  50. package/dist/account/SignInScreen.js +3 -2
  51. package/dist/account/SignInScreen.js.map +1 -1
  52. package/dist/appShell/AccountMenu.js +3 -2
  53. package/dist/appShell/AccountMenu.js.map +1 -1
  54. package/dist/appShell/AppLayout.js +3 -2
  55. package/dist/appShell/AppLayout.js.map +1 -1
  56. package/dist/appShell/AppearanceSettings.js +3 -2
  57. package/dist/appShell/AppearanceSettings.js.map +1 -1
  58. package/dist/appShell/AuthLayout.js +3 -2
  59. package/dist/appShell/AuthLayout.js.map +1 -1
  60. package/dist/appShell/BarActionButton.js +11 -4
  61. package/dist/appShell/BarActionButton.js.map +1 -1
  62. package/dist/appShell/BarActions.js +3 -2
  63. package/dist/appShell/BarActions.js.map +1 -1
  64. package/dist/appShell/BarCapsule.js +3 -2
  65. package/dist/appShell/BarCapsule.js.map +1 -1
  66. package/dist/appShell/BarSearch.js +3 -2
  67. package/dist/appShell/BarSearch.js.map +1 -1
  68. package/dist/appShell/HeaderTools.js +3 -2
  69. package/dist/appShell/HeaderTools.js.map +1 -1
  70. package/dist/appShell/MobileTabBar.js +3 -2
  71. package/dist/appShell/MobileTabBar.js.map +1 -1
  72. package/dist/appShell/SettingsMenu.js +3 -2
  73. package/dist/appShell/SettingsMenu.js.map +1 -1
  74. package/dist/appShell/SideMenu.js +3 -2
  75. package/dist/appShell/SideMenu.js.map +1 -1
  76. package/dist/appShell/SideMenuEntry.js +3 -2
  77. package/dist/appShell/SideMenuEntry.js.map +1 -1
  78. package/dist/appShell/SubmenuActionsMenu.js +3 -2
  79. package/dist/appShell/SubmenuActionsMenu.js.map +1 -1
  80. package/dist/appShell/TabBarEditor.js +3 -2
  81. package/dist/appShell/TabBarEditor.js.map +1 -1
  82. package/dist/appShell/TopMenu.js +3 -2
  83. package/dist/appShell/TopMenu.js.map +1 -1
  84. package/dist/appShell/Wordmark.js +3 -2
  85. package/dist/appShell/Wordmark.js.map +1 -1
  86. package/dist/auth/PasswordChecklist.js +3 -2
  87. package/dist/auth/PasswordChecklist.js.map +1 -1
  88. package/dist/calendar/EventCalendar.js +3 -2
  89. package/dist/calendar/EventCalendar.js.map +1 -1
  90. package/dist/calendar/EventDetails.js +3 -2
  91. package/dist/calendar/EventDetails.js.map +1 -1
  92. package/dist/datePickers/DateInput.js +28 -22
  93. package/dist/datePickers/DateInput.js.map +1 -1
  94. package/dist/datePickers/DateTimeInput.js +33 -27
  95. package/dist/datePickers/DateTimeInput.js.map +1 -1
  96. package/dist/datePickers/MonthInput.js +27 -21
  97. package/dist/datePickers/MonthInput.js.map +1 -1
  98. package/dist/datePickers/TimeInput.js +26 -20
  99. package/dist/datePickers/TimeInput.js.map +1 -1
  100. package/dist/datePickers/usePickerField.js +5 -4
  101. package/dist/datePickers/usePickerField.js.map +1 -1
  102. package/dist/downloads/DownloadManager.js +3 -2
  103. package/dist/downloads/DownloadManager.js.map +1 -1
  104. package/dist/feedback/ConfirmDialog.js +3 -2
  105. package/dist/feedback/ConfirmDialog.js.map +1 -1
  106. package/dist/feedback/ModalWaiting.js +3 -2
  107. package/dist/feedback/ModalWaiting.js.map +1 -1
  108. package/dist/feedback/NewBuildNotice.js +3 -2
  109. package/dist/feedback/NewBuildNotice.js.map +1 -1
  110. package/dist/filepond/FileDropzone.js +3 -2
  111. package/dist/filepond/FileDropzone.js.map +1 -1
  112. package/dist/forms/FormProblemAlert.js +3 -2
  113. package/dist/forms/FormProblemAlert.js.map +1 -1
  114. package/dist/forms/FormWizard.js +21 -6
  115. package/dist/forms/FormWizard.js.map +1 -1
  116. package/dist/forms/SubmitButton.js +7 -2
  117. package/dist/forms/SubmitButton.js.map +1 -1
  118. package/dist/forms/auth/SignInForm.js +3 -2
  119. package/dist/forms/auth/SignInForm.js.map +1 -1
  120. package/dist/forms/fieldRules.js +30 -0
  121. package/dist/forms/fieldRules.js.map +1 -0
  122. package/dist/forms/security/SecondStepForm.js +3 -2
  123. package/dist/forms/security/SecondStepForm.js.map +1 -1
  124. package/dist/forms/security/TwoStepVerificationCard.js +3 -2
  125. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -1
  126. package/dist/forms/useValidationText.js +18 -0
  127. package/dist/forms/useValidationText.js.map +1 -0
  128. package/dist/forms/validation.js +35 -31
  129. package/dist/forms/validation.js.map +1 -1
  130. package/dist/forms/validationMessages.js +64 -7
  131. package/dist/forms/validationMessages.js.map +1 -1
  132. package/dist/forms.js +3 -0
  133. package/dist/forms.js.map +1 -1
  134. package/dist/hookForm/FormProblemAlert.js +3 -2
  135. package/dist/hookForm/FormProblemAlert.js.map +1 -1
  136. package/dist/hookForm/FormWizard.js +19 -5
  137. package/dist/hookForm/FormWizard.js.map +1 -1
  138. package/dist/hookForm/SubmitButton.js +7 -2
  139. package/dist/hookForm/SubmitButton.js.map +1 -1
  140. package/dist/inbox/InboxLayout.js +3 -2
  141. package/dist/inbox/InboxLayout.js.map +1 -1
  142. package/dist/inbox/MessageList.js +3 -2
  143. package/dist/inbox/MessageList.js.map +1 -1
  144. package/dist/inbox/MessageView.js +3 -2
  145. package/dist/inbox/MessageView.js.map +1 -1
  146. package/dist/index.js +193 -163
  147. package/dist/index.js.map +1 -1
  148. package/dist/inputs/CatalogInput.js +32 -25
  149. package/dist/inputs/CatalogInput.js.map +1 -1
  150. package/dist/inputs/CheckboxGroupInput.js +8 -5
  151. package/dist/inputs/CheckboxGroupInput.js.map +1 -1
  152. package/dist/inputs/ColorInput.js +7 -4
  153. package/dist/inputs/ColorInput.js.map +1 -1
  154. package/dist/inputs/FieldFrame.js +10 -4
  155. package/dist/inputs/FieldFrame.js.map +1 -1
  156. package/dist/inputs/FormSection.js +1 -1
  157. package/dist/inputs/MaskedInput.js +1 -0
  158. package/dist/inputs/MaskedInput.js.map +1 -1
  159. package/dist/inputs/NumberInput.js +29 -24
  160. package/dist/inputs/NumberInput.js.map +1 -1
  161. package/dist/inputs/RepeatingFields.js +8 -5
  162. package/dist/inputs/RepeatingFields.js.map +1 -1
  163. package/dist/inputs/SelectInput.js +8 -5
  164. package/dist/inputs/SelectInput.js.map +1 -1
  165. package/dist/inputs/TextInput.js +5 -3
  166. package/dist/inputs/TextInput.js.map +1 -1
  167. package/dist/inputs/TransferListInput.js +8 -5
  168. package/dist/inputs/TransferListInput.js.map +1 -1
  169. package/dist/inputs/WizardLayout.js +48 -19
  170. package/dist/inputs/WizardLayout.js.map +1 -1
  171. package/dist/inputs/useWizardSteps.js +36 -0
  172. package/dist/inputs/useWizardSteps.js.map +1 -0
  173. package/dist/inputs/wizardSteps.js +32 -0
  174. package/dist/inputs/wizardSteps.js.map +1 -0
  175. package/dist/kanban/KanbanBoard.js +3 -2
  176. package/dist/kanban/KanbanBoard.js.map +1 -1
  177. package/dist/legal/CookieNotice.js +3 -2
  178. package/dist/legal/CookieNotice.js.map +1 -1
  179. package/dist/legal/TermsAcceptanceDialog.js +3 -2
  180. package/dist/legal/TermsAcceptanceDialog.js.map +1 -1
  181. package/dist/locales/en.js +24 -0
  182. package/dist/locales/en.js.map +1 -1
  183. package/dist/locales/es.js +24 -0
  184. package/dist/locales/es.js.map +1 -1
  185. package/dist/maps/MapView.js +3 -2
  186. package/dist/maps/MapView.js.map +1 -1
  187. package/dist/mexico/CfdiSummary.js +3 -2
  188. package/dist/mexico/CfdiSummary.js.map +1 -1
  189. package/dist/mexico/EfirmaFields.js +3 -2
  190. package/dist/mexico/EfirmaFields.js.map +1 -1
  191. package/dist/mexico/mexicoIdentifiers.js +5 -0
  192. package/dist/mexico/mexicoIdentifiers.js.map +1 -1
  193. package/dist/mexico/mexicoRules.js +9 -4
  194. package/dist/mexico/mexicoRules.js.map +1 -1
  195. package/dist/mexico.js +4 -2
  196. package/dist/pwa/InstallAppSetting.js +3 -2
  197. package/dist/pwa/InstallAppSetting.js.map +1 -1
  198. package/dist/pwa/InstallInstructionsDialog.js +3 -2
  199. package/dist/pwa/InstallInstructionsDialog.js.map +1 -1
  200. package/dist/pwa/InstallPromptBanner.js +3 -2
  201. package/dist/pwa/InstallPromptBanner.js.map +1 -1
  202. package/dist/react-hook-form.js +3 -0
  203. package/dist/react-hook-form.js.map +1 -1
  204. package/dist/richText/RichTextEditor.js +7 -4
  205. package/dist/richText/RichTextEditor.js.map +1 -1
  206. package/dist/richText/RichTextView.js +3 -2
  207. package/dist/richText/RichTextView.js.map +1 -1
  208. package/dist/security/ActivityLog.js +3 -2
  209. package/dist/security/ActivityLog.js.map +1 -1
  210. package/dist/security/RecoveryCodesDialog.js +3 -2
  211. package/dist/security/RecoveryCodesDialog.js.map +1 -1
  212. package/dist/security/SessionsCard.js +3 -2
  213. package/dist/security/SessionsCard.js.map +1 -1
  214. package/dist/table.js +21 -2
  215. package/dist/table.js.map +1 -1
  216. package/dist/theme/themePieces.js +70 -4
  217. package/dist/theme/themePieces.js.map +1 -1
  218. package/dist/toolkit/ToolkitProvider.js +8 -1
  219. package/dist/toolkit/ToolkitProvider.js.map +1 -1
  220. package/dist/toolkit/browserNavigation.js +19 -4
  221. package/dist/toolkit/browserNavigation.js.map +1 -1
  222. package/dist/toolkit/combineTexts.js +32 -0
  223. package/dist/toolkit/combineTexts.js.map +1 -0
  224. package/dist/toolkit/hashNavigation.js +17 -3
  225. package/dist/toolkit/hashNavigation.js.map +1 -1
  226. package/dist/toolkit/navigationPaths.js +15 -0
  227. package/dist/toolkit/navigationPaths.js.map +1 -1
  228. package/dist/toolkit/pathIndex.js +66 -0
  229. package/dist/toolkit/pathIndex.js.map +1 -0
  230. package/dist/toolkit/toolkitSettings.js +19 -1
  231. package/dist/toolkit/toolkitSettings.js.map +1 -1
  232. package/dist/types/DataTable/AuditTrailDialog.d.ts +6 -17
  233. package/dist/types/DataTable/ColumnFilters/HeaderFilterPopover.d.ts +6 -5
  234. package/dist/types/DataTable/ColumnFilters/MultiSelectColumnFilter.d.ts +6 -9
  235. package/dist/types/DataTable/ColumnFilters/SortableFilterHeader.d.ts +6 -14
  236. package/dist/types/DataTable/EmptyState.d.ts +6 -9
  237. package/dist/types/DataTable/FilterChips.d.ts +6 -11
  238. package/dist/types/DataTable/GoToPage.d.ts +6 -9
  239. package/dist/types/DataTable/ServerTable.d.ts +16 -80
  240. package/dist/types/DataTable/ServerTableFilterDrawer.d.ts +6 -13
  241. package/dist/types/DataTable/StackedCell.d.ts +12 -0
  242. package/dist/types/DataTable/TableCardsView.d.ts +27 -0
  243. package/dist/types/DataTable/columnWidths.d.ts +21 -0
  244. package/dist/types/DataTable/columns.d.ts +111 -0
  245. package/dist/types/DataTable/fixedColumns.d.ts +29 -0
  246. package/dist/types/DataTable/index.d.ts +6 -1
  247. package/dist/types/DataTable/useTableView.d.ts +22 -0
  248. package/dist/types/access/PermissionMatrix.d.ts +6 -10
  249. package/dist/types/account/AccountSecuritySection.d.ts +6 -7
  250. package/dist/types/account/DemoTotpCodeButton.d.ts +6 -5
  251. package/dist/types/account/ProfileScreen.d.ts +6 -18
  252. package/dist/types/account/SignInScreen.d.ts +6 -13
  253. package/dist/types/appShell/AccountMenu.d.ts +6 -11
  254. package/dist/types/appShell/AppLayout.d.ts +3 -40
  255. package/dist/types/appShell/AppearanceSettings.d.ts +6 -12
  256. package/dist/types/appShell/AuthLayout.d.ts +3 -11
  257. package/dist/types/appShell/BarActionButton.d.ts +7 -10
  258. package/dist/types/appShell/BarActions.d.ts +6 -15
  259. package/dist/types/appShell/BarCapsule.d.ts +6 -9
  260. package/dist/types/appShell/BarSearch.d.ts +6 -15
  261. package/dist/types/appShell/HeaderTools.d.ts +6 -16
  262. package/dist/types/appShell/MobileTabBar.d.ts +6 -13
  263. package/dist/types/appShell/SettingsMenu.d.ts +6 -10
  264. package/dist/types/appShell/SideMenu.d.ts +6 -20
  265. package/dist/types/appShell/SideMenuEntry.d.ts +6 -11
  266. package/dist/types/appShell/SubmenuActionsMenu.d.ts +6 -12
  267. package/dist/types/appShell/TabBarEditor.d.ts +6 -9
  268. package/dist/types/appShell/TopMenu.d.ts +6 -5
  269. package/dist/types/appShell/Wordmark.d.ts +6 -7
  270. package/dist/types/auth/PasswordChecklist.d.ts +6 -9
  271. package/dist/types/calendar/EventCalendar.d.ts +6 -23
  272. package/dist/types/calendar/EventDetails.d.ts +6 -10
  273. package/dist/types/datePickers/DateInput.d.ts +7 -22
  274. package/dist/types/datePickers/DateTimeInput.d.ts +7 -27
  275. package/dist/types/datePickers/MonthInput.d.ts +7 -21
  276. package/dist/types/datePickers/TimeInput.d.ts +7 -21
  277. package/dist/types/datePickers/usePickerField.d.ts +5 -1
  278. package/dist/types/downloads/DownloadManager.d.ts +6 -6
  279. package/dist/types/feedback/ConfirmDialog.d.ts +6 -18
  280. package/dist/types/feedback/ModalWaiting.d.ts +6 -9
  281. package/dist/types/feedback/NewBuildNotice.d.ts +6 -10
  282. package/dist/types/filepond/FileDropzone.d.ts +6 -29
  283. package/dist/types/forms/FormProblemAlert.d.ts +6 -5
  284. package/dist/types/forms/FormWizard.d.ts +12 -1
  285. package/dist/types/forms/SubmitButton.d.ts +6 -6
  286. package/dist/types/forms/auth/SignInForm.d.ts +6 -11
  287. package/dist/types/forms/fieldRules.d.ts +44 -0
  288. package/dist/types/forms/index.d.ts +1 -0
  289. package/dist/types/forms/security/SecondStepForm.d.ts +6 -14
  290. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +6 -21
  291. package/dist/types/forms/useValidationText.d.ts +12 -0
  292. package/dist/types/forms/validation.d.ts +117 -174
  293. package/dist/types/forms/validationMessages.d.ts +54 -6
  294. package/dist/types/forms.d.ts +1 -1
  295. package/dist/types/hookForm/FormProblemAlert.d.ts +6 -5
  296. package/dist/types/hookForm/FormWizard.d.ts +12 -1
  297. package/dist/types/hookForm/SubmitButton.d.ts +6 -13
  298. package/dist/types/inbox/InboxLayout.d.ts +6 -17
  299. package/dist/types/inbox/MessageList.d.ts +6 -18
  300. package/dist/types/inbox/MessageView.d.ts +6 -14
  301. package/dist/types/index.d.ts +10 -2
  302. package/dist/types/inputs/CatalogInput.d.ts +7 -24
  303. package/dist/types/inputs/CheckboxGroupInput.d.ts +7 -18
  304. package/dist/types/inputs/ColorInput.d.ts +7 -16
  305. package/dist/types/inputs/FieldFrame.d.ts +6 -10
  306. package/dist/types/inputs/MaskedInput.d.ts +3 -0
  307. package/dist/types/inputs/NumberInput.d.ts +7 -20
  308. package/dist/types/inputs/RepeatingFields.d.ts +7 -28
  309. package/dist/types/inputs/SelectInput.d.ts +7 -20
  310. package/dist/types/inputs/TextInput.d.ts +3 -0
  311. package/dist/types/inputs/TransferListInput.d.ts +7 -20
  312. package/dist/types/inputs/WizardLayout.d.ts +11 -21
  313. package/dist/types/inputs/useWizardSteps.d.ts +23 -0
  314. package/dist/types/inputs/wizardSteps.d.ts +65 -0
  315. package/dist/types/kanban/KanbanBoard.d.ts +6 -25
  316. package/dist/types/legal/CookieNotice.d.ts +6 -16
  317. package/dist/types/legal/TermsAcceptanceDialog.d.ts +6 -18
  318. package/dist/types/locales/en.d.ts +24 -0
  319. package/dist/types/locales/es.d.ts +24 -0
  320. package/dist/types/maps/MapView.d.ts +6 -17
  321. package/dist/types/mexico/CfdiSummary.d.ts +6 -11
  322. package/dist/types/mexico/EfirmaFields.d.ts +6 -16
  323. package/dist/types/mexico/mexicoIdentifiers.d.ts +7 -0
  324. package/dist/types/mexico/mexicoRules.d.ts +19 -3
  325. package/dist/types/mexico.d.ts +2 -2
  326. package/dist/types/pwa/InstallAppSetting.d.ts +6 -6
  327. package/dist/types/pwa/InstallInstructionsDialog.d.ts +6 -9
  328. package/dist/types/pwa/InstallPromptBanner.d.ts +6 -11
  329. package/dist/types/react-hook-form.d.ts +1 -0
  330. package/dist/types/richText/RichTextEditor.d.ts +7 -22
  331. package/dist/types/richText/RichTextView.d.ts +6 -9
  332. package/dist/types/security/ActivityLog.d.ts +6 -9
  333. package/dist/types/security/RecoveryCodesDialog.d.ts +6 -11
  334. package/dist/types/security/SessionsCard.d.ts +6 -11
  335. package/dist/types/table.d.ts +3 -1
  336. package/dist/types/theme/themePieces.d.ts +55 -3
  337. package/dist/types/toolkit/ToolkitProvider.d.ts +13 -1
  338. package/dist/types/toolkit/browserNavigation.d.ts +7 -3
  339. package/dist/types/toolkit/combineTexts.d.ts +6 -0
  340. package/dist/types/toolkit/hashNavigation.d.ts +4 -2
  341. package/dist/types/toolkit/navigationPaths.d.ts +35 -0
  342. package/dist/types/toolkit/pathIndex.d.ts +27 -0
  343. package/dist/types/toolkit/toolkitSettings.d.ts +7 -4
  344. package/dist/types/ui/actions/ActionsMenu.d.ts +9 -11
  345. package/dist/types/ui/actions/CopyButton.d.ts +6 -12
  346. package/dist/types/ui/actions/DownloadMenu.d.ts +6 -29
  347. package/dist/types/ui/actions/SecretField.d.ts +6 -11
  348. package/dist/types/ui/actions/SelectionActions.d.ts +6 -13
  349. package/dist/types/ui/cards/RecordCard.d.ts +16 -29
  350. package/dist/types/ui/cards/RecordCardSkeleton.d.ts +6 -11
  351. package/dist/types/ui/countdown/Countdown.d.ts +6 -15
  352. package/dist/types/ui/documents/PdfViewerDialog.d.ts +6 -13
  353. package/dist/types/ui/filters/DateRangeFilter.d.ts +6 -10
  354. package/dist/types/ui/filters/FilterDrawer.d.ts +6 -17
  355. package/dist/types/ui/filters/PeriodRangeSelector.d.ts +6 -13
  356. package/dist/types/ui/filters/QuickFilters.d.ts +6 -12
  357. package/dist/types/ui/help/HelpButton.d.ts +6 -10
  358. package/dist/types/ui/help/HelpCarouselDialog.d.ts +6 -14
  359. package/dist/types/ui/index.d.ts +1 -1
  360. package/dist/types/ui/labels/MarkedText.d.ts +10 -0
  361. package/dist/types/ui/labels/Tag.d.ts +6 -12
  362. package/dist/types/ui/labels/markedTextPieces.d.ts +22 -0
  363. package/dist/types/ui/layout/CollapsibleSection.d.ts +6 -12
  364. package/dist/types/ui/layout/ContentDialog.d.ts +6 -10
  365. package/dist/types/ui/layout/DefinitionList.d.ts +6 -9
  366. package/dist/types/ui/layout/DetailHeader.d.ts +6 -10
  367. package/dist/types/ui/layout/ErrorPage.d.ts +6 -17
  368. package/dist/types/ui/layout/FullPageLoader.d.ts +6 -6
  369. package/dist/types/ui/layout/GlassPanel.d.ts +6 -8
  370. package/dist/types/ui/layout/PageHeader.d.ts +6 -10
  371. package/dist/types/ui/layout/PageHeading.d.ts +6 -11
  372. package/dist/types/ui/layout/ProfileHeader.d.ts +6 -11
  373. package/dist/types/ui/layout/ScrollableRow.d.ts +6 -13
  374. package/dist/types/ui/layout/SectionCard.d.ts +6 -8
  375. package/dist/types/ui/metrics/BarList.d.ts +6 -12
  376. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +6 -19
  377. package/dist/types/ui/metrics/ChartTooltip.d.ts +6 -6
  378. package/dist/types/ui/metrics/ColumnChart.d.ts +6 -25
  379. package/dist/types/ui/metrics/LineChart.d.ts +6 -20
  380. package/dist/types/ui/metrics/MetricCard.d.ts +6 -17
  381. package/dist/types/ui/metrics/TableToggle.d.ts +6 -6
  382. package/dist/types/ui/metrics/chartParts.d.ts +15 -30
  383. package/dist/types/ui/navigation/BackButton.d.ts +7 -9
  384. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +6 -9
  385. package/dist/types/ui/navigation/FontSizeToggle.d.ts +6 -8
  386. package/dist/types/ui/navigation/LanguageToggle.d.ts +6 -8
  387. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +6 -7
  388. package/dist/types/ui/navigation/RouteTabs.d.ts +7 -12
  389. package/dist/types/ui/timeline/GroupedTimeline.d.ts +6 -23
  390. package/dist/types/upload/AttachmentsInput.d.ts +11 -1
  391. package/dist/types/upload/FileDropzone.d.ts +6 -21
  392. package/dist/types/upload/FileInput.d.ts +7 -24
  393. package/dist/types/upload/FileUploadInput.d.ts +7 -31
  394. package/dist/types/upload/ImageInput.d.ts +7 -25
  395. package/dist/types/upload/TemplateDownloadButton.d.ts +6 -18
  396. package/dist/ui/actions/ActionsMenu.js +14 -5
  397. package/dist/ui/actions/ActionsMenu.js.map +1 -1
  398. package/dist/ui/actions/CopyButton.js +8 -3
  399. package/dist/ui/actions/CopyButton.js.map +1 -1
  400. package/dist/ui/actions/DownloadMenu.js +3 -2
  401. package/dist/ui/actions/DownloadMenu.js.map +1 -1
  402. package/dist/ui/actions/SecretField.js +8 -3
  403. package/dist/ui/actions/SecretField.js.map +1 -1
  404. package/dist/ui/actions/SelectionActions.js +3 -2
  405. package/dist/ui/actions/SelectionActions.js.map +1 -1
  406. package/dist/ui/cards/RecordCard.js +10 -5
  407. package/dist/ui/cards/RecordCard.js.map +1 -1
  408. package/dist/ui/cards/RecordCardSkeleton.js +8 -3
  409. package/dist/ui/cards/RecordCardSkeleton.js.map +1 -1
  410. package/dist/ui/countdown/Countdown.js +3 -2
  411. package/dist/ui/countdown/Countdown.js.map +1 -1
  412. package/dist/ui/documents/PdfViewerDialog.js +3 -2
  413. package/dist/ui/documents/PdfViewerDialog.js.map +1 -1
  414. package/dist/ui/filters/DateRangeFilter.js +3 -2
  415. package/dist/ui/filters/DateRangeFilter.js.map +1 -1
  416. package/dist/ui/filters/FilterDrawer.js +3 -2
  417. package/dist/ui/filters/FilterDrawer.js.map +1 -1
  418. package/dist/ui/filters/PeriodRangeSelector.js +3 -2
  419. package/dist/ui/filters/PeriodRangeSelector.js.map +1 -1
  420. package/dist/ui/filters/QuickFilters.js +3 -2
  421. package/dist/ui/filters/QuickFilters.js.map +1 -1
  422. package/dist/ui/help/HelpButton.js +8 -3
  423. package/dist/ui/help/HelpButton.js.map +1 -1
  424. package/dist/ui/help/HelpCarouselDialog.js +3 -2
  425. package/dist/ui/help/HelpCarouselDialog.js.map +1 -1
  426. package/dist/ui/labels/MarkedText.js +31 -0
  427. package/dist/ui/labels/MarkedText.js.map +1 -0
  428. package/dist/ui/labels/Tag.js +3 -2
  429. package/dist/ui/labels/Tag.js.map +1 -1
  430. package/dist/ui/labels/markedTextPieces.js +64 -0
  431. package/dist/ui/labels/markedTextPieces.js.map +1 -0
  432. package/dist/ui/layout/CollapsibleSection.js +3 -2
  433. package/dist/ui/layout/CollapsibleSection.js.map +1 -1
  434. package/dist/ui/layout/ContentDialog.js +3 -2
  435. package/dist/ui/layout/ContentDialog.js.map +1 -1
  436. package/dist/ui/layout/DefinitionList.js +3 -2
  437. package/dist/ui/layout/DefinitionList.js.map +1 -1
  438. package/dist/ui/layout/DetailHeader.js +3 -2
  439. package/dist/ui/layout/DetailHeader.js.map +1 -1
  440. package/dist/ui/layout/ErrorPage.js +3 -2
  441. package/dist/ui/layout/ErrorPage.js.map +1 -1
  442. package/dist/ui/layout/FullPageLoader.js +3 -2
  443. package/dist/ui/layout/FullPageLoader.js.map +1 -1
  444. package/dist/ui/layout/GlassPanel.js +3 -2
  445. package/dist/ui/layout/GlassPanel.js.map +1 -1
  446. package/dist/ui/layout/PageHeader.js +3 -2
  447. package/dist/ui/layout/PageHeader.js.map +1 -1
  448. package/dist/ui/layout/PageHeading.js +3 -2
  449. package/dist/ui/layout/PageHeading.js.map +1 -1
  450. package/dist/ui/layout/ProfileHeader.js +3 -2
  451. package/dist/ui/layout/ProfileHeader.js.map +1 -1
  452. package/dist/ui/layout/ScrollableRow.js +3 -2
  453. package/dist/ui/layout/ScrollableRow.js.map +1 -1
  454. package/dist/ui/layout/SectionCard.js +3 -2
  455. package/dist/ui/layout/SectionCard.js.map +1 -1
  456. package/dist/ui/metrics/BarList.js +3 -2
  457. package/dist/ui/metrics/BarList.js.map +1 -1
  458. package/dist/ui/metrics/CalendarHeatmap.js +3 -2
  459. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -1
  460. package/dist/ui/metrics/ChartTooltip.js +3 -2
  461. package/dist/ui/metrics/ChartTooltip.js.map +1 -1
  462. package/dist/ui/metrics/ColumnChart.js +3 -2
  463. package/dist/ui/metrics/ColumnChart.js.map +1 -1
  464. package/dist/ui/metrics/LineChart.js +3 -2
  465. package/dist/ui/metrics/LineChart.js.map +1 -1
  466. package/dist/ui/metrics/MetricCard.js +3 -2
  467. package/dist/ui/metrics/MetricCard.js.map +1 -1
  468. package/dist/ui/metrics/TableToggle.js +3 -2
  469. package/dist/ui/metrics/TableToggle.js.map +1 -1
  470. package/dist/ui/metrics/chartParts.js +7 -4
  471. package/dist/ui/metrics/chartParts.js.map +1 -1
  472. package/dist/ui/navigation/BackButton.js +7 -2
  473. package/dist/ui/navigation/BackButton.js.map +1 -1
  474. package/dist/ui/navigation/ColorSchemeToggle.js +3 -2
  475. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -1
  476. package/dist/ui/navigation/FontSizeToggle.js +3 -2
  477. package/dist/ui/navigation/FontSizeToggle.js.map +1 -1
  478. package/dist/ui/navigation/LanguageToggle.js +3 -2
  479. package/dist/ui/navigation/LanguageToggle.js.map +1 -1
  480. package/dist/ui/navigation/PageBreadcrumbs.js +3 -2
  481. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -1
  482. package/dist/ui/navigation/RouteTabs.js +8 -4
  483. package/dist/ui/navigation/RouteTabs.js.map +1 -1
  484. package/dist/ui/timeline/GroupedTimeline.js +3 -2
  485. package/dist/ui/timeline/GroupedTimeline.js.map +1 -1
  486. package/dist/upload/AttachmentsInput.js +9 -6
  487. package/dist/upload/AttachmentsInput.js.map +1 -1
  488. package/dist/upload/FileChip.js +2 -1
  489. package/dist/upload/FileChip.js.map +1 -1
  490. package/dist/upload/FileDropzone.js +5 -4
  491. package/dist/upload/FileDropzone.js.map +1 -1
  492. package/dist/upload/FileInput.js +9 -6
  493. package/dist/upload/FileInput.js.map +1 -1
  494. package/dist/upload/FileUploadInput.js +9 -6
  495. package/dist/upload/FileUploadInput.js.map +1 -1
  496. package/dist/upload/ImageInput.js +8 -5
  497. package/dist/upload/ImageInput.js.map +1 -1
  498. package/dist/upload/TemplateDownloadButton.js +3 -2
  499. package/dist/upload/TemplateDownloadButton.js.map +1 -1
  500. package/package.json +1 -1
  501. package/cli/templates/project/src/app/combineTexts.js.tpl +0 -31
@@ -1,6 +1,29 @@
1
+ /**
2
+ * El sx de la pantalla como lista, para ponerlo DESPUÉS del de la pieza sin mezclarlo dentro del mismo objeto.
3
+ *
4
+ * OJO, trampa pagada: `{...estiloDeLaPieza, ...sx}` reemplaza la llave entera cuando las dos traen la misma
5
+ * ('& .MuiDataGrid-cell': la pieza ponía display flex y la pantalla solo quería alinear arriba: se perdía el flex sin
6
+ * avisar). En una lista, MUI aplica cada elemento encima del anterior y se combinan regla por regla.
7
+ *
8
+ * sx={[{p: 2}, ...sxListOf(sx)]}
9
+ *
10
+ * @param {object|Function|Array<object|Function|boolean|null|undefined>|null|undefined} sx
11
+ * @returns {Array<object|Function|boolean|null|undefined>}
12
+ */
13
+ export declare function sxListOf(sx: object | Function | Array<object | Function | boolean | null | undefined> | null | undefined): Array<object | Function | boolean | null | undefined>;
14
+ /**
15
+ * Las props de una parte con las de slotProps encima: las de la pantalla ganan, menos className (se suman), style (se
16
+ * juntan) y sx (va después y se combina regla por regla).
17
+ *
18
+ * @param {object} partProps las que le pone Calcita
19
+ * @param {object|((partProps: object) => object)|undefined} extra las de slotProps (o una función que las da)
20
+ * @returns {object}
21
+ */
22
+ export declare function mergedSlotProps(partProps: object, extra: object | ((partProps: object) => object) | undefined): object;
1
23
  /**
2
24
  * Un componente con su lugar en el tema: theme.components[name].styleOverrides[parte con minúscula] se aplica después
3
- * del estilo de Calcita (ownSx) y gana.
25
+ * del estilo de Calcita (ownSx) y gana. La parte también se puede cambiar o recibir props de más con slots y slotProps
26
+ * de su pieza.
4
27
  *
5
28
  * @template {import('react').ElementType} C
6
29
  * @param {string} name el nombre de la pieza en el tema (CalcitaMetricCard)
@@ -10,11 +33,40 @@
10
33
  */
11
34
  export declare function piecePart<C extends import('react').ElementType>(name: string, slot: string, component?: C): import('react').ComponentType<any>;
12
35
  /**
13
- * Los props de la pieza con los defaultProps del tema del proyecto debajo: lo que llega en la pantalla gana.
36
+ * Los props de la pieza con los defaultProps del tema del proyecto debajo: lo que llega en la pantalla gana. Sin slots ni
37
+ * slotProps: esos son de sus partes (withPieceSlots).
38
+ *
39
+ * OJO: una pieza cuyo `slotProps` ya es de otra cosa (TextInput se lo pasa al TextField de MUI: input, htmlInput…) lo
40
+ * conserva con {ownSlotProps: true} y no se envuelve con withPieceSlots.
14
41
  *
15
42
  * @template {object} P
16
43
  * @param {P} props
17
44
  * @param {string} name el nombre de la pieza en el tema
45
+ * @param {{ownSlotProps?: boolean}} [options]
18
46
  * @returns {P}
19
47
  */
20
- export declare function usePieceProps<P extends object>(props: P, name: string): P;
48
+ export declare function usePieceProps<P extends object>(props: P, name: string, { ownSlotProps }?: {
49
+ ownSlotProps?: boolean;
50
+ }): P;
51
+ /**
52
+ * La pieza con slots y slotProps: lee los de la pantalla (y los de defaultProps del tema) y se los da a sus partes.
53
+ *
54
+ * OJO con el tipo: se toma del componente entero (Parameters) y no de un genérico de sus props: con las props opcionales
55
+ * (ColorSchemeToggle) TypeScript las deducía como `object` y se perdían.
56
+ *
57
+ * Una parte que también se exporta sola y se pinta DENTRO de su pieza madre con el mismo nombre (las tarjetas de
58
+ * TableCardsView dentro de ServerTable, las dos CalcitaServerTable) va con {sharedWithParent: true}: adentro usa los slots
59
+ * de la madre (sin eso los borraría con los suyos, vacíos), salvo que la pantalla le dé los suyos; sola, los suyos.
60
+ *
61
+ * @template {(props: any) => any} C
62
+ * @param {C} Content la pieza
63
+ * @param {string} name el nombre de la pieza en el tema
64
+ * @param {{sharedWithParent?: boolean}} [options]
65
+ * @returns {(props: NonNullable<Parameters<C>[0]> & {slots?: Record<string, import('react').ElementType>, slotProps?: Record<string, object|((partProps: object) => object)>}) => ReturnType<C>}
66
+ */
67
+ export declare function withPieceSlots<C extends (props: any) => any>(Content: C, name: string, { sharedWithParent }?: {
68
+ sharedWithParent?: boolean;
69
+ }): (props: NonNullable<Parameters<C>[0]> & {
70
+ slots?: Record<string, import('react').ElementType>;
71
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
72
+ }) => ReturnType<C>;
@@ -8,6 +8,12 @@
8
8
  * tipos de archivo del proyecto para las descargas, además de Excel, CSV y PDF (downloads/fileTypes.js)
9
9
  * @param {(language: string) => void} [props.onLanguageChange] lo llama LanguageToggle; el proyecto cambia su idioma
10
10
  * @param {object} [props.texts] textos propios por idioma, con la forma de locales/ ({es: {table: {...}}})
11
+ * @param {(error: unknown) => unknown} [props.readValidationMessage] cómo leer los mensajes de validación de un sistema que ya
12
+ * existe (su propio setLocale de yup, su forma de error): regresa un texto, {key, values} o undefined para la lectura de
13
+ * siempre. Ej. ({msg, values}) de muchos sistemas con i18next ya se entiende solo; esto es para lo demás
14
+ * @param {(missing: {namespace: string, key: string, language: string}) => void} [props.onMissingText] avisa cada texto que
15
+ * no existe (la pantalla enseña la llave): para mandarlo a Sentry o tronar una prueba. Sin él, Calcita avisa en la
16
+ * consola una vez por idioma y llave
11
17
  * @param {(namespace: string, key: string, values?: object) => string|undefined} [props.translate] traductor del
12
18
  * proyecto (por ejemplo i18next); undefined deja el texto del paquete
13
19
  * @param {string} [props.timeZone] zona de las fechas (por omisión la del navegador)
@@ -23,7 +29,7 @@
23
29
  * tiene regla
24
30
  * @param {import('react').ReactNode} props.children
25
31
  */
26
- export declare const ToolkitProvider: ({ language, languages, onLanguageChange, texts, translate, timeZone, currency, hourCycle, appName, navigation, buildId, canAccess, fileTypes, children, ...unknownProps }: {
32
+ export declare const ToolkitProvider: ({ language, languages, onLanguageChange, onMissingText, readValidationMessage, texts, translate, timeZone, currency, hourCycle, appName, navigation, buildId, canAccess, fileTypes, children, ...unknownProps }: {
27
33
  language?: string;
28
34
  languages?: Array<{
29
35
  code: string;
@@ -38,6 +44,12 @@ export declare const ToolkitProvider: ({ language, languages, onLanguageChange,
38
44
  }>;
39
45
  onLanguageChange?: (language: string) => void;
40
46
  texts?: object;
47
+ readValidationMessage?: (error: unknown) => unknown;
48
+ onMissingText?: (missing: {
49
+ namespace: string;
50
+ key: string;
51
+ language: string;
52
+ }) => void;
41
53
  translate?: (namespace: string, key: string, values?: object) => string | undefined;
42
54
  timeZone?: string;
43
55
  currency?: string;
@@ -2,12 +2,14 @@
2
2
  * La navegación del navegador, con o sin prefijo.
3
3
  *
4
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}}
5
+ * @returns {{useNavigate: () => (destination: string|number, options?: {replace?: boolean}) => void, useLocation: () => {pathname: string, search: string, key: string}, Link: import('react').ElementType}}
6
6
  */
7
7
  export declare function createBrowserNavigation({ basePath }?: {
8
8
  basePath?: string;
9
9
  }): {
10
- useNavigate: () => (destination: string | number) => void;
10
+ useNavigate: () => (destination: string | number, options?: {
11
+ replace?: boolean;
12
+ }) => void;
11
13
  useLocation: () => {
12
14
  pathname: string;
13
15
  search: string;
@@ -17,7 +19,9 @@ export declare function createBrowserNavigation({ basePath }?: {
17
19
  };
18
20
  /** La de omisión: sin prefijo. */
19
21
  export declare const browserNavigation: {
20
- useNavigate: () => (destination: string | number) => void;
22
+ useNavigate: () => (destination: string | number, options?: {
23
+ replace?: boolean;
24
+ }) => void;
21
25
  useLocation: () => {
22
26
  pathname: string;
23
27
  search: string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {Array<Record<string, Record<string, object>>>} textFiles los textos de cada módulo, por idioma
3
+ * @returns {Record<string, Record<string, object>>} todos los textos, por idioma y namespace
4
+ * @throws {Error} si dos módulos definen el mismo texto
5
+ */
6
+ export declare function combineTexts(textFiles: Array<Record<string, Record<string, object>>>): Record<string, Record<string, object>>;
@@ -1,8 +1,10 @@
1
1
  /**
2
- * @returns {{useNavigate: () => (destination: string|number) => void, useLocation: () => {pathname: string, search: string, key: string}, Link: import('react').ElementType}}
2
+ * @returns {{useNavigate: () => (destination: string|number, options?: {replace?: boolean}) => void, useLocation: () => {pathname: string, search: string, key: string}, Link: import('react').ElementType}}
3
3
  */
4
4
  export declare function createHashNavigation(): {
5
- useNavigate: () => (destination: string | number) => void;
5
+ useNavigate: () => (destination: string | number, options?: {
6
+ replace?: boolean;
7
+ }) => void;
6
8
  useLocation: () => {
7
9
  pathname: string;
8
10
  search: string;
@@ -41,3 +41,38 @@ export declare function hashLocationOf(hash: string): {
41
41
  * @returns {string}
42
42
  */
43
43
  export declare function hashHrefOf(destination: string): string;
44
+ /**
45
+ * Si un clic en un enlace es el normal: el botón principal, sin Cmd/Ctrl/Shift/Alt y sin que nadie lo haya detenido.
46
+ * Solo ese se hace por dentro (cambiar de pantalla, reemplazar el historial); con Cmd/Ctrl+clic, Shift+clic o el botón de en
47
+ * medio el navegador hace lo suyo (otra pestaña, otra ventana), como con cualquier liga.
48
+ *
49
+ * @param {{button?: number, metaKey?: boolean, ctrlKey?: boolean, shiftKey?: boolean, altKey?: boolean, defaultPrevented?: boolean}} event
50
+ * @param {string} [target] el target del enlace: con _blank tampoco se hace por dentro
51
+ * @returns {boolean}
52
+ */
53
+ export declare function isPlainLeftClick(event: {
54
+ button?: number;
55
+ metaKey?: boolean;
56
+ ctrlKey?: boolean;
57
+ shiftKey?: boolean;
58
+ altKey?: boolean;
59
+ defaultPrevented?: boolean;
60
+ }, target?: string): boolean;
61
+ /**
62
+ * El prefijo con que el servidor sirvió la página, leído al abrirla de su <base href> ('/ventas'), o null si la página no
63
+ * trae <base>. Así UNA compilación sirve detrás de cualquier prefijo que decida el servidor (Laravel lo pone con
64
+ * config('app.url'), un proxy con su ruta): el prefijo no se fija al compilar. Para el basename del router y para
65
+ * createBrowserNavigation({basePath}).
66
+ *
67
+ * <base href="{{ rtrim(config('app.url'), '/') . '/' }}"> (en la vista que sirve la app)
68
+ * createBrowserRouter(routes, {basename: documentBasePath() || '/'})
69
+ *
70
+ * OJO: con <base>, todo lo relativo de la página (imágenes, ligas «#sección») se lee desde ese prefijo.
71
+ *
72
+ * @param {{baseURI?: string, querySelector?: (selector: string) => unknown}} [currentDocument] por omisión el de la página
73
+ * @returns {string|null} '' en la raíz; null sin <base> (o sin navegador)
74
+ */
75
+ export declare function documentBasePath(currentDocument?: {
76
+ baseURI?: string;
77
+ querySelector?: (selector: string) => unknown;
78
+ }): string | null;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Le pone sus partes a una ruta: las que pide con dos puntos y, lo que sobre, la consulta. Los nulos y los vacíos no se
3
+ * escriben.
4
+ *
5
+ * @param {string} route la ruta con sus :partes ('/orders/:orderId', ':page?' es opcional)
6
+ * @param {Record<string, unknown>} [params]
7
+ * @param {string} [name] cómo se llama, para decirlo si algo falta
8
+ * @returns {string}
9
+ * @throws {Error} si la ruta pide una parte obligatoria que no viene
10
+ */
11
+ export declare function fillPath(route: string, params?: Record<string, unknown>, name?: string): string;
12
+ /**
13
+ * El índice de las direcciones que publica cada módulo.
14
+ *
15
+ * @param {Record<string, Record<string, unknown>>} modules lo que da import.meta.glob(..., {eager: true}): archivo → sus exports
16
+ * @param {object} [options]
17
+ * @param {string} [options.exportName] el export con las direcciones en cada archivo (por omisión 'paths'; para el API, 'uris')
18
+ * @param {RegExp} [options.modulePattern] saca del nombre del archivo el camino del módulo (el primer grupo, con /)
19
+ * @returns {{pathOf: (name: string, params?: Record<string, unknown>) => string, allPaths: () => object}}
20
+ */
21
+ export declare function createPathIndex(modules: Record<string, Record<string, unknown>>, { exportName, modulePattern }?: {
22
+ exportName?: string;
23
+ modulePattern?: RegExp;
24
+ }): {
25
+ pathOf: (name: string, params?: Record<string, unknown>) => string;
26
+ allPaths: () => object;
27
+ };
@@ -33,7 +33,7 @@ export declare function browserTimeZone(): string;
33
33
  * Cambia la configuración que leen las funciones del paquete. La llama ToolkitProvider; un proyecto sin React (o una
34
34
  * prueba) la puede llamar directo.
35
35
  *
36
- * @param {{language?: string, texts?: object, translate?: Function|null, timeZone?: string, currency?: string, hourCycle?: 'h23'|'h12', appName?: string, buildId?: string, languages?: Array<{code: string, label: string, locale?: string}>}} settings
36
+ * @param {{language?: string, texts?: object, translate?: Function|null, timeZone?: string, currency?: string, hourCycle?: 'h23'|'h12', appName?: string, buildId?: string, languages?: Array<{code: string, label: string, locale?: string}>, onMissingText?: Function|null}} settings
37
37
  * @returns {void}
38
38
  */
39
39
  export declare function configureToolkit(settings: {
@@ -50,6 +50,7 @@ export declare function configureToolkit(settings: {
50
50
  label: string;
51
51
  locale?: string;
52
52
  }>;
53
+ onMissingText?: Function | null;
53
54
  }): void;
54
55
  /**
55
56
  * La configuración vigente.
@@ -102,16 +103,18 @@ export declare function componentTextOf(layers: Array<{
102
103
  /**
103
104
  * El texto de una llave con una configuración dada (la del proveedor o la vigente).
104
105
  *
105
- * @param {{language: string, texts: object, translate: Function|null}} settings
106
+ * @param {{language: string, texts: object, translate: Function|null, onMissingText?: Function|null}} settings
106
107
  * @param {string} defaultNamespace el namespace cuando la llave no trae uno («table», «common», «problems»...)
107
108
  * @param {string} key «llave» o «namespace:llave»
108
- * @param {object} [values] las variables del texto y, para el plural, count
109
- * @returns {string} la llave misma si no hay texto, para que se note qué falta
109
+ * @param {object} [values] las variables del texto y, para el plural, count. Con `defaultValue` el texto es opcional: si no
110
+ * existe se usa ese y no se avisa
111
+ * @returns {string} la llave misma si no hay texto, para que se note qué falta (y se avisa: reportMissingText)
110
112
  */
111
113
  export declare function translateWith(settings: {
112
114
  language: string;
113
115
  texts: object;
114
116
  translate: Function | null;
117
+ onMissingText?: Function | null;
115
118
  }, defaultNamespace: string, key: string, values?: object): string;
116
119
  /**
117
120
  * El texto de una llave con la configuración vigente, para lo que no es componente (avisos, errores del servidor).
@@ -3,15 +3,7 @@ export declare const ACTIONS_MENU_ROW: Readonly<{
3
3
  section: "section";
4
4
  divider: "divider";
5
5
  }>;
6
- /**
7
- * @param {object} props
8
- * @param {string} props.label el nombre del botón (lector de pantalla y su tooltip), ya traducido
9
- * @param {Array<{key: string, type?: string, label?: string, icon?: import('react').ReactNode, description?: string, color?: string, disabled?: boolean, onClick?: () => void, href?: string, download?: string|boolean, children?: object[], render?: (helpers: {close: () => void}) => import('react').ReactNode}>} [props.actions]
10
- * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)
11
- * @param {'small'|'medium'} [props.size]
12
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
13
- */
14
- export default function ActionsMenu(props: {
6
+ declare const ActionsMenu: (props: {
15
7
  label: string;
16
8
  actions?: Array<{
17
9
  key: string;
@@ -21,7 +13,9 @@ export default function ActionsMenu(props: {
21
13
  description?: string;
22
14
  color?: string;
23
15
  disabled?: boolean;
24
- onClick?: () => void;
16
+ onClick?: (event: import('react').MouseEvent<HTMLElement>) => void;
17
+ to?: string;
18
+ replace?: boolean;
25
19
  href?: string;
26
20
  download?: string | boolean;
27
21
  children?: object[];
@@ -32,4 +26,8 @@ export default function ActionsMenu(props: {
32
26
  icon?: import('react').ReactNode;
33
27
  size?: 'small' | 'medium';
34
28
  texts?: object;
35
- }): import("react").JSX.Element | null;
29
+ } & {
30
+ slots?: Record<string, import('react').ElementType>;
31
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
32
+ }) => import("react").JSX.Element | null;
33
+ export default ActionsMenu;
@@ -1,18 +1,12 @@
1
- /**
2
- * @param {object} props
3
- * @param {string|(() => string)} props.value lo que se copia; una función se llama al picar
4
- * @param {string} [props.label] ya traducido: qué copia («Copiar el folio»); por omisión «Copiar». Es el globo y el nombre
5
- * del botón para un lector de pantalla
6
- * @param {'small'|'medium'} [props.size]
7
- * @param {() => void} [props.onCopied]
8
- * @param {(error: unknown) => void} [props.onCopyFailed] el navegador no dejó copiar (el botón ya lo dice en rojo)
9
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
10
- */
11
- export default function CopyButton({ value, label, size, onCopied, onCopyFailed, texts, ...unknownProps }: {
1
+ declare const CopyButton: (props: {
12
2
  value: string | (() => string);
13
3
  label?: string;
14
4
  size?: 'small' | 'medium';
15
5
  onCopied?: () => void;
16
6
  onCopyFailed?: (error: unknown) => void;
17
7
  texts?: object;
18
- }): import("react").JSX.Element;
8
+ } & {
9
+ slots?: Record<string, import('react').ElementType>;
10
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
11
+ }) => import("react").JSX.Element;
12
+ export default CopyButton;
@@ -1,31 +1,4 @@
1
- /**
2
- * @param {object} props
3
- * @param {string[]} props.formats los tipos de archivo, en orden: los de la casa (xlsx, csv, pdf) y los que el proyecto declare
4
- * en ToolkitProvider fileTypes (zip, xml…)
5
- * @param {(format: string, transferOptions: {signal: AbortSignal, onDownloadProgress: (progress: {loaded: number, total?: number|null}) => void}) => Promise<{blob: Blob, fileName: string}>} props.download
6
- * @param {string} [props.label] ya traducido; por defecto "Descargar"
7
- * @param {string} [props.downloadLabel] ya traducido; lo que se ve en el panel de descargas antes de saber el nombre
8
- * del archivo
9
- * @param {boolean} [props.disabled]
10
- * @param {(format: string) => {title: string, description: import('react').ReactNode, confirmLabel?: string}} [props.confirmation]
11
- * @param {(format: string) => void} [props.onDownloaded] p. ej. volver a pedir la tabla (si la descarga cambia algo en
12
- * el servidor)
13
- * @param {(format: string, error: unknown) => void} [props.onFailed] cuando la descarga no se pudo (el panel ya lo dice)
14
- * @param {(format: string) => void} [props.onCanceled] cuando la persona la canceló desde el panel
15
- * @param {'button'|'icon'} [props.variant] icon = solo el icono (columna de acciones de una tabla)
16
- * @param {string} [props.ariaLabel] ya traducido; obligatorio en la variante icon
17
- * @param {(format: string) => void} [props.onChooseFormat] quien llama se encarga de confirmar y descargar
18
- * @param {import('react').ElementType} [props.icon] ícono del botón; por defecto el de descarga. Distingue dos descargas en la
19
- * misma fila
20
- *
21
- * IMPORTANTE: hay que pasar `confirmation` u `onChooseFormat`. Sin ninguno de los dos el menú no descarga nada (regla de
22
- * tablas: toda descarga pasa por confirmación).
23
- *
24
- * OJO onChooseFormat: dentro de una celda del DataGrid el diálogo de confirmación NO puede vivir en la celda (el grid
25
- * virtualiza y vuelve a pintar sus celdas; el diálogo se perdía al elegir el formato). Ahí el menú solo avisa qué formato
26
- * se eligió y la pantalla abre SU confirmación (useConfirmAction) fuera de la tabla.
27
- */
28
- export default function DownloadMenu(props: {
1
+ declare const DownloadMenu: (props: {
29
2
  formats: string[];
30
3
  download: (format: string, transferOptions: {
31
4
  signal: AbortSignal;
@@ -52,4 +25,8 @@ export default function DownloadMenu(props: {
52
25
  ariaLabel?: string;
53
26
  onChooseFormat?: (format: string) => void;
54
27
  icon?: import('react').ElementType;
55
- }): import("react").JSX.Element;
28
+ } & {
29
+ slots?: Record<string, import('react').ElementType>;
30
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
31
+ }) => import("react").JSX.Element;
32
+ export default DownloadMenu;
@@ -1,17 +1,12 @@
1
- /**
2
- * @param {object} props
3
- * @param {string} props.value el secreto
4
- * @param {string} props.label ya traducido
5
- * @param {string} [props.helperText] p. ej. «Guárdela: no se vuelve a enseñar»
6
- * @param {() => void} [props.onCopied]
7
- * @param {(isRevealed: boolean) => void} [props.onRevealChange] se destapó o se tapó (para registrar quién vio el secreto)
8
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
9
- */
10
- export default function SecretField({ value, label, helperText, onCopied, onRevealChange, texts, ...unknownProps }: {
1
+ declare const SecretField: (props: {
11
2
  value: string;
12
3
  label: string;
13
4
  helperText?: string;
14
5
  onCopied?: () => void;
15
6
  onRevealChange?: (isRevealed: boolean) => void;
16
7
  texts?: object;
17
- }): import("react").JSX.Element;
8
+ } & {
9
+ slots?: Record<string, import('react').ElementType>;
10
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
11
+ }) => import("react").JSX.Element;
12
+ export default SecretField;
@@ -11,18 +11,7 @@ export declare const SELECTION_PHONE_LAYOUT: Readonly<{
11
11
  * @returns {boolean}
12
12
  */
13
13
  export declare function selectionFloatsOnPhone(theme: object): boolean;
14
- /**
15
- * @param {object} props
16
- * @param {string} props.countText «5 pedidos elegidos», ya traducido. La pieza se pinta mientras la pantalla la ponga: con
17
- * nada elegido, no la ponga
18
- * @param {Array<{key: string, label: string, icon?: import('react').ReactNode, color?: 'inherit'|'primary'|'secondary'|'error'|'info'|'success'|'warning', disabled?: boolean, onClick: () => unknown}>} [props.actions]
19
- * label ya traducido; en el teléfono se ve el ícono (sin él, el texto). onClick puede regresar una promesa
20
- * @param {() => void} props.onClear quitar la selección
21
- * @param {'top'|'split'} [props.phoneLayout] SELECTION_PHONE_LAYOUT; por omisión todo arriba
22
- * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {selection: {clear, actionsLabel, summaryLabel}}
23
- * @param {object} [props.sx] estilos del renglón
24
- */
25
- export default function SelectionActions(props: {
14
+ declare const SelectionActions: (props: {
26
15
  countText: string;
27
16
  actions?: Array<{
28
17
  key: string;
@@ -36,4 +25,8 @@ export default function SelectionActions(props: {
36
25
  phoneLayout?: 'top' | 'split';
37
26
  texts?: object;
38
27
  sx?: object;
39
- }): import("react").JSX.Element;
28
+ } & {
29
+ slots?: Record<string, import('react').ElementType>;
30
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
31
+ }) => import("react").JSX.Element;
32
+ export default SelectionActions;
@@ -1,33 +1,15 @@
1
1
  /**
2
- * @param {object} props
3
- * @param {import('react').ReactNode} props.title el nombre del registro, ya traducido
4
- * @param {import('react').ReactNode} [props.eyebrow] arriba del título: el folio o el tipo
5
- * @param {import('react').ReactNode} [props.subtitle] abajo del título
6
- * @param {string|import('react').ReactNode} [props.avatar] un texto (de él salen las iniciales) o un ícono
7
- * @param {import('react').ReactNode} [props.status] a la derecha: StatusChip, IconBadge…
8
- * @param {Parameters<typeof import('../actions/ActionsMenu.js').default>[0]['actions']} [props.actions] el menú «⋯», con sus secciones,
9
- * separadores, ligas y submenús (los renglones de ActionsMenu)
10
- * @param {Array<{key?: string, title?: import('react').ReactNode, facts?: Array<{label: import('react').ReactNode, value: import('react').ReactNode, emphasis?: boolean}>, content?: import('react').ReactNode}>} [props.groups]
11
- * los datos, en grupos; emphasis los pone en negritas; content en lugar de facts para un grupo libre (una barra, unas
12
- * insignias, un enlace)
13
- * @param {import('react').ReactNode} [props.header] un encabezado propio en lugar del de la casa (avatar, títulos, estatus)
14
- * @param {import('react').ReactNode} [props.children] contenido libre entre el cuerpo y lo de abajo
15
- * @param {{label: import('react').ReactNode, value: import('react').ReactNode, caption?: import('react').ReactNode}} [props.highlight] el dato principal
16
- * @param {import('react').ReactNode} [props.trailing] la última columna del cuerpo, después de los grupos y del dato principal
17
- * (el estatus o unos botones, cuando el orden obligatorio los pone al final)
18
- * @param {string} [props.columns] en escritorio, el ancho de cada columna del cuerpo como en CSS ('1.2fr 1fr 1fr auto'); por
19
- * omisión, los grupos a partes iguales y el dato principal y trailing a su medida
20
- * @param {import('react').ReactNode} [props.footer] abajo, a todo lo ancho
21
- * @param {import('react').ReactNode} [props.details] lo que se despliega con «Ver detalle»
22
- * @param {string} [props.detailsLabel] ya traducido; por omisión «Ver detalle»
23
- * @param {boolean} [props.defaultDetailsOpen]
24
- * @param {(isOpen: boolean) => void} [props.onDetailsToggle]
25
- * @param {() => void} [props.onOpen] el botón para abrir el registro (su detalle)
26
- * @param {string} [props.openLabel] ya traducido: el nombre de ese botón («Abrir el pedido P-1203»)
27
- * @param {object} [props.sx]
28
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
2
+ * Cómo se acomoda el renglón de abajo (footer y «Ver detalle»):
3
+ * spaceBetween el footer a la izquierda y «Ver detalle» en la otra orilla (lo de siempre);
4
+ * start los dos juntos, a la izquierda;
5
+ * end los dos juntos, a la derecha.
29
6
  */
30
- export default function RecordCard(props: {
7
+ export declare const RECORD_CARD_FOOTER_ALIGN: Readonly<{
8
+ spaceBetween: "spaceBetween";
9
+ start: "start";
10
+ end: "end";
11
+ }>;
12
+ declare const RecordCard: (props: {
31
13
  title: import('react').ReactNode;
32
14
  eyebrow?: import('react').ReactNode;
33
15
  subtitle?: import('react').ReactNode;
@@ -54,6 +36,7 @@ export default function RecordCard(props: {
54
36
  trailing?: import('react').ReactNode;
55
37
  columns?: string;
56
38
  footer?: import('react').ReactNode;
39
+ footerAlign?: 'spaceBetween' | 'start' | 'end';
57
40
  details?: import('react').ReactNode;
58
41
  detailsLabel?: string;
59
42
  defaultDetailsOpen?: boolean;
@@ -62,4 +45,8 @@ export default function RecordCard(props: {
62
45
  openLabel?: string;
63
46
  sx?: object;
64
47
  texts?: object;
65
- }): import("react").JSX.Element;
48
+ } & {
49
+ slots?: Record<string, import('react').ElementType>;
50
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
51
+ }) => import("react").JSX.Element;
52
+ export default RecordCard;
@@ -1,17 +1,12 @@
1
- /**
2
- * @param {object} props
3
- * @param {number} [props.groups] cuántos grupos de datos (como los de la tarjeta)
4
- * @param {number} [props.factsPerGroup]
5
- * @param {boolean} [props.withAvatar]
6
- * @param {boolean} [props.withHighlight]
7
- * @param {object} [props.sx]
8
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
9
- */
10
- export default function RecordCardSkeleton({ groups, factsPerGroup, withAvatar, withHighlight, sx, texts, ...unknownProps }: {
1
+ declare const RecordCardSkeleton: (props: {
11
2
  groups?: number;
12
3
  factsPerGroup?: number;
13
4
  withAvatar?: boolean;
14
5
  withHighlight?: boolean;
15
6
  sx?: object;
16
7
  texts?: object;
17
- }): import("react").JSX.Element;
8
+ } & {
9
+ slots?: Record<string, import('react').ElementType>;
10
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
11
+ }) => import("react").JSX.Element;
12
+ export default RecordCardSkeleton;
@@ -1,17 +1,4 @@
1
- /**
2
- * @param {object} props
3
- * @param {string|number|Date} props.until el momento: un instante en texto, un Date o milisegundos
4
- * @param {string} [props.label] ya traducido: qué se cuenta («Tiempo para que cierren las inscripciones»), para un lector de pantalla
5
- * @param {() => void} [props.onComplete] al llegar a cero (una vez)
6
- * @param {import('react').ReactNode} [props.completedText] lo que dice al terminar; por omisión «Ya terminó»
7
- * @param {boolean} [props.showSeconds] por omisión, sí
8
- * @param {(parts: {days: number, hours: number, minutes: number, seconds: number, totalSeconds: number, isOver: boolean}) => import('react').ReactNode} [props.children]
9
- * para pintarla a su manera
10
- * @param {import('@mui/material/Typography').TypographyProps['variant']} [props.variant] por omisión body1
11
- * @param {object} [props.sx]
12
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
13
- */
14
- export default function Countdown(props: {
1
+ declare const Countdown: (props: {
15
2
  until: string | number | Date;
16
3
  label?: string;
17
4
  onComplete?: () => void;
@@ -28,4 +15,8 @@ export default function Countdown(props: {
28
15
  variant?: import('@mui/material/Typography').TypographyProps['variant'];
29
16
  sx?: object;
30
17
  texts?: object;
31
- }): string | number | bigint | boolean | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
18
+ } & {
19
+ slots?: Record<string, import('react').ElementType>;
20
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
21
+ }) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
22
+ export default Countdown;
@@ -1,15 +1,4 @@
1
- /**
2
- * @param {object} props
3
- * @param {boolean} props.open
4
- * @param {() => void} props.onClose
5
- * @param {string} props.title ya traducido: qué documento es
6
- * @param {string|Blob|null} props.src la dirección del PDF o el archivo (Blob o File)
7
- * @param {string} [props.fileName] con qué nombre se descarga (por omisión, el título con .pdf)
8
- * @param {import('react').ReactNode} [props.actions] botones suyos junto a «Abrir en otra pestaña» y «Descargar»
9
- * @param {() => void} [props.onDownload] al descargar (para registrarlo, por ejemplo)
10
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
11
- */
12
- export default function PdfViewerDialog(props: {
1
+ declare const PdfViewerDialog: (props: {
13
2
  open: boolean;
14
3
  onClose: () => void;
15
4
  title: string;
@@ -18,4 +7,8 @@ export default function PdfViewerDialog(props: {
18
7
  actions?: import('react').ReactNode;
19
8
  onDownload?: () => void;
20
9
  texts?: object;
21
- }): import("react").JSX.Element;
10
+ } & {
11
+ slots?: Record<string, import('react').ElementType>;
12
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
13
+ }) => import("react").JSX.Element;
14
+ export default PdfViewerDialog;
@@ -1,12 +1,4 @@
1
- /**
2
- * @param {object} props
3
- * @param {string} [props.from] AAAA-MM-DD o '' si no hay
4
- * @param {string} [props.to] AAAA-MM-DD o '' si no hay
5
- * @param {(range: {from: string, to: string}) => void} props.onChange '' para quitar
6
- * @param {string} [props.label] ya traducido; por defecto "Personalizado"
7
- * @param {object} [props.texts] los textos que cambian, con la forma de `table` en los textos del paquete
8
- */
9
- export default function DateRangeFilter(props: {
1
+ declare const DateRangeFilter: (props: {
10
2
  from?: string;
11
3
  to?: string;
12
4
  onChange: (range: {
@@ -15,4 +7,8 @@ export default function DateRangeFilter(props: {
15
7
  }) => void;
16
8
  label?: string;
17
9
  texts?: object;
18
- }): import("react").JSX.Element;
10
+ } & {
11
+ slots?: Record<string, import('react').ElementType>;
12
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
13
+ }) => import("react").JSX.Element;
14
+ export default DateRangeFilter;
@@ -3,22 +3,7 @@ export declare const FILTER_DRAWER_ANCHOR: Readonly<{
3
3
  left: "left";
4
4
  right: "right";
5
5
  }>;
6
- /**
7
- * @param {object} props
8
- * @param {boolean} props.open
9
- * @param {() => void} props.onClose
10
- * @param {object[]} props.fields los campos (filterDrawerFields.js): {name, label, kind, options?, keys?, prefix?, suffix?, decimals?, operators?, render?…}
11
- * @param {Record<string, unknown>} props.values los filtros puestos hoy (de ahí sale el borrador al abrir)
12
- * @param {(values: Record<string, unknown>) => void} props.onApply todos los campos del cajón juntos, al picar «Buscar»
13
- * @param {'left'|'right'} [props.anchor] de qué lado sale (FILTER_DRAWER_ANCHOR); por omisión la derecha
14
- * @param {number} [props.width] su ancho en escritorio, en px
15
- * @param {string} [props.title] ya traducido; por omisión «Filtros»
16
- * @param {string} [props.applyLabel] ya traducido; por omisión «Buscar»
17
- * @param {boolean} [props.closeOnApply] por omisión sí
18
- * @param {import('react').ReactNode} [props.children] algo más abajo de los campos (una nota, un enlace)
19
- * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
20
- */
21
- export default function FilterDrawer(props: {
6
+ declare const FilterDrawer: (props: {
22
7
  open: boolean;
23
8
  onClose: () => void;
24
9
  fields: object[];
@@ -31,4 +16,8 @@ export default function FilterDrawer(props: {
31
16
  closeOnApply?: boolean;
32
17
  children?: import('react').ReactNode;
33
18
  texts?: object;
34
- }): import("react").JSX.Element;
19
+ } & {
20
+ slots?: Record<string, import('react').ElementType>;
21
+ slotProps?: Record<string, object | ((partProps: object) => object)>;
22
+ }) => import("react").JSX.Element;
23
+ export default FilterDrawer;