@stackcraftmx/calcita 0.0.0-stage → 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 (900) hide show
  1. package/LICENSE +110 -0
  2. package/README.md +700 -2
  3. package/cli/askQuestions.js +63 -0
  4. package/cli/calcita.js +150 -0
  5. package/cli/makeComponent.js +50 -0
  6. package/cli/makeForm.js +68 -0
  7. package/cli/makeModule.js +78 -0
  8. package/cli/makePage.js +62 -0
  9. package/cli/names.js +64 -0
  10. package/cli/newProject.js +103 -0
  11. package/cli/packageVersions.js +38 -0
  12. package/cli/projectAnswers.js +145 -0
  13. package/cli/projectConfig.js +38 -0
  14. package/cli/projectFiles.js +128 -0
  15. package/cli/screenLabels.js +41 -0
  16. package/cli/templateFiles.js +186 -0
  17. package/cli/templates/component/core/__ComponentName__.jsx.tpl +23 -0
  18. package/cli/templates/component/module/__ComponentName__.jsx.tpl +21 -0
  19. package/cli/templates/form/formik/__FormName__.jsx.tpl +50 -0
  20. package/cli/templates/form/hookForm/__FormName__.jsx.tpl +53 -0
  21. package/cli/templates/form/shared/__formName__Schema.js.tpl +20 -0
  22. package/cli/templates/form/shared/__formName__Texts.js.tpl +6 -0
  23. package/cli/templates/module/__Name__Page.jsx.tpl +75 -0
  24. package/cli/templates/module/__name__Api.js.tpl +39 -0
  25. package/cli/templates/module/__name__Texts.js.tpl +27 -0
  26. package/cli/templates/module/menu.js.tpl +21 -0
  27. package/cli/templates/module/routes.js.tpl +7 -0
  28. package/cli/templates/moduleServer/__name__Server.js.tpl +68 -0
  29. package/cli/templates/page/__PageName__Page.jsx.tpl +22 -0
  30. package/cli/templates/page/__pageName__PageTexts.js.tpl +23 -0
  31. package/cli/templates/project/README.md.tpl +83 -0
  32. package/cli/templates/project/dot-gitignore.tpl +11 -0
  33. package/cli/templates/project/index.html.tpl +20 -0
  34. package/cli/templates/project/jsconfig.json.tpl +16 -0
  35. package/cli/templates/project/pnpm-workspace.yaml.tpl +5 -0
  36. package/cli/templates/project/public/favicon.svg +1 -0
  37. package/cli/templates/project/public/icons/apple-touch-icon.png +0 -0
  38. package/cli/templates/project/public/icons/icon-192.png +0 -0
  39. package/cli/templates/project/public/icons/icon-512-maskable.png +0 -0
  40. package/cli/templates/project/public/icons/icon-512.png +0 -0
  41. package/cli/templates/project/public/manifest.webmanifest.tpl +17 -0
  42. package/cli/templates/project/src/app/AppProviders.jsx.tpl +107 -0
  43. package/cli/templates/project/src/app/AppShell.jsx.tpl +87 -0
  44. package/cli/templates/project/src/app/appRouter.jsx.tpl +51 -0
  45. package/cli/templates/project/src/app/appSettings.js.tpl +27 -0
  46. package/cli/templates/project/src/app/appTexts.js.tpl +15 -0
  47. package/cli/templates/project/src/app/combineTexts.js.tpl +31 -0
  48. package/cli/templates/project/src/app/i18n.js.tpl +19 -0
  49. package/cli/templates/project/src/app/shellTexts.js.tpl +16 -0
  50. package/cli/templates/project/src/core/AppLogo.jsx.tpl +14 -0
  51. package/cli/templates/project/src/core/accountConnector.js.tpl +36 -0
  52. package/cli/templates/project/src/core/apiClient.js.tpl +15 -0
  53. package/cli/templates/project/src/core/appPaths.js.tpl +11 -0
  54. package/cli/templates/project/src/core/index.js.tpl +9 -0
  55. package/cli/templates/project/src/core/publicPaths.js.tpl +24 -0
  56. package/cli/templates/project/src/fakeServer/networkDelay.js.tpl +40 -0
  57. package/cli/templates/project/src/fakeServer/serverText.js.tpl +20 -0
  58. package/cli/templates/project/src/main.jsx.tpl +24 -0
  59. package/cli/templates/project/src/modules/auth/ForgotPasswordPage.jsx.tpl +14 -0
  60. package/cli/templates/project/src/modules/auth/ResetPasswordPage.jsx.tpl +15 -0
  61. package/cli/templates/project/src/modules/auth/SignInPage.jsx.tpl +29 -0
  62. package/cli/templates/project/src/modules/auth/authTexts.js.tpl +6 -0
  63. package/cli/templates/project/src/modules/auth/routes.js.tpl +11 -0
  64. package/cli/templates/project/src/modules/home/HomePage.jsx.tpl +38 -0
  65. package/cli/templates/project/src/modules/home/homeTexts.js.tpl +29 -0
  66. package/cli/templates/project/src/modules/home/menu.js.tpl +17 -0
  67. package/cli/templates/project/src/modules/home/routes.js.tpl +4 -0
  68. package/cli/templates/project/src/modules/profile/ProfilePage.jsx.tpl +13 -0
  69. package/cli/templates/project/src/modules/profile/routes.js.tpl +6 -0
  70. package/cli/templates/project/vite.config.js.tpl +53 -0
  71. package/dist/DataTable/AuditTrailDialog.js +40 -0
  72. package/dist/DataTable/AuditTrailDialog.js.map +1 -0
  73. package/dist/DataTable/AuditTrailTable.js +89 -0
  74. package/dist/DataTable/AuditTrailTable.js.map +1 -0
  75. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js +71 -0
  76. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js.map +1 -0
  77. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +51 -0
  78. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -0
  79. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js +54 -0
  80. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js.map +1 -0
  81. package/dist/DataTable/ColumnFilters/TextColumnFilter.js +24 -0
  82. package/dist/DataTable/ColumnFilters/TextColumnFilter.js.map +1 -0
  83. package/dist/DataTable/EmptyState.js +22 -0
  84. package/dist/DataTable/EmptyState.js.map +1 -0
  85. package/dist/DataTable/FilterChips.js +39 -0
  86. package/dist/DataTable/FilterChips.js.map +1 -0
  87. package/dist/DataTable/GoToPage.js +63 -0
  88. package/dist/DataTable/GoToPage.js.map +1 -0
  89. package/dist/DataTable/ServerTable.js +477 -0
  90. package/dist/DataTable/ServerTable.js.map +1 -0
  91. package/dist/DataTable/buildChipConfig.js +27 -0
  92. package/dist/DataTable/buildChipConfig.js.map +1 -0
  93. package/dist/DataTable/columns.js +122 -0
  94. package/dist/DataTable/columns.js.map +1 -0
  95. package/dist/DataTable/filterContext.js +15 -0
  96. package/dist/DataTable/filterContext.js.map +1 -0
  97. package/dist/DataTable/rowSelection.js +61 -0
  98. package/dist/DataTable/rowSelection.js.map +1 -0
  99. package/dist/DataTable/serverTableParams.js +19 -0
  100. package/dist/DataTable/serverTableParams.js.map +1 -0
  101. package/dist/DataTable/tableMachine.js +87 -0
  102. package/dist/DataTable/tableMachine.js.map +1 -0
  103. package/dist/DataTable/useDebouncedFilter.js +29 -0
  104. package/dist/DataTable/useDebouncedFilter.js.map +1 -0
  105. package/dist/DataTable/useTableState.js +132 -0
  106. package/dist/DataTable/useTableState.js.map +1 -0
  107. package/dist/access/Can.js +9 -0
  108. package/dist/access/Can.js.map +1 -0
  109. package/dist/access/PermissionMatrix.js +84 -0
  110. package/dist/access/PermissionMatrix.js.map +1 -0
  111. package/dist/access/RequireAccess.js +14 -0
  112. package/dist/access/RequireAccess.js.map +1 -0
  113. package/dist/access/accessRules.js +49 -0
  114. package/dist/access/accessRules.js.map +1 -0
  115. package/dist/access/permissionGroups.js +43 -0
  116. package/dist/access/permissionGroups.js.map +1 -0
  117. package/dist/access/useCan.js +12 -0
  118. package/dist/access/useCan.js.map +1 -0
  119. package/dist/account/AccountProvider.js +58 -0
  120. package/dist/account/AccountProvider.js.map +1 -0
  121. package/dist/account/AccountSecuritySection.js +81 -0
  122. package/dist/account/AccountSecuritySection.js.map +1 -0
  123. package/dist/account/DemoTotpCodeButton.js +26 -0
  124. package/dist/account/DemoTotpCodeButton.js.map +1 -0
  125. package/dist/account/ForgotPasswordScreen.js +27 -0
  126. package/dist/account/ForgotPasswordScreen.js.map +1 -0
  127. package/dist/account/ProfileScreen.js +134 -0
  128. package/dist/account/ProfileScreen.js.map +1 -0
  129. package/dist/account/ResetPasswordScreen.js +58 -0
  130. package/dist/account/ResetPasswordScreen.js.map +1 -0
  131. package/dist/account/SignInScreen.js +102 -0
  132. package/dist/account/SignInScreen.js.map +1 -0
  133. package/dist/account/accountConnector.js +31 -0
  134. package/dist/account/accountConnector.js.map +1 -0
  135. package/dist/account/demo/createDemoAccountConnector.js +368 -0
  136. package/dist/account/demo/createDemoAccountConnector.js.map +1 -0
  137. package/dist/account/demo/totp.js +61 -0
  138. package/dist/account/demo/totp.js.map +1 -0
  139. package/dist/account/restAccountConnector.js +118 -0
  140. package/dist/account/restAccountConnector.js.map +1 -0
  141. package/dist/account-demo.js +12 -0
  142. package/dist/account-demo.js.map +1 -0
  143. package/dist/account.js +25 -0
  144. package/dist/account.js.map +1 -0
  145. package/dist/adapters/i18next.js +7 -0
  146. package/dist/adapters/i18next.js.map +1 -0
  147. package/dist/adapters/nextNavigation.js +36 -0
  148. package/dist/adapters/nextNavigation.js.map +1 -0
  149. package/dist/adapters/reactRouter.js +7 -0
  150. package/dist/adapters/reactRouter.js.map +1 -0
  151. package/dist/adapters/reactRouterRoutes.js +49 -0
  152. package/dist/adapters/reactRouterRoutes.js.map +1 -0
  153. package/dist/api/ApiError.js +58 -0
  154. package/dist/api/ApiError.js.map +1 -0
  155. package/dist/api/createApiClient.js +256 -0
  156. package/dist/api/createApiClient.js.map +1 -0
  157. package/dist/api/staleChunks.js +47 -0
  158. package/dist/api/staleChunks.js.map +1 -0
  159. package/dist/appShell/AccountMenu.js +86 -0
  160. package/dist/appShell/AccountMenu.js.map +1 -0
  161. package/dist/appShell/AppLayout.js +513 -0
  162. package/dist/appShell/AppLayout.js.map +1 -0
  163. package/dist/appShell/AppearanceSettings.js +116 -0
  164. package/dist/appShell/AppearanceSettings.js.map +1 -0
  165. package/dist/appShell/AuthLayout.js +46 -0
  166. package/dist/appShell/AuthLayout.js.map +1 -0
  167. package/dist/appShell/BarActionButton.js +31 -0
  168. package/dist/appShell/BarActionButton.js.map +1 -0
  169. package/dist/appShell/BarActions.js +105 -0
  170. package/dist/appShell/BarActions.js.map +1 -0
  171. package/dist/appShell/BarCapsule.js +50 -0
  172. package/dist/appShell/BarCapsule.js.map +1 -0
  173. package/dist/appShell/BarSearch.js +92 -0
  174. package/dist/appShell/BarSearch.js.map +1 -0
  175. package/dist/appShell/HeaderTools.js +53 -0
  176. package/dist/appShell/HeaderTools.js.map +1 -0
  177. package/dist/appShell/MobileTabBar.js +348 -0
  178. package/dist/appShell/MobileTabBar.js.map +1 -0
  179. package/dist/appShell/SettingsMenu.js +41 -0
  180. package/dist/appShell/SettingsMenu.js.map +1 -0
  181. package/dist/appShell/SideMenu.js +217 -0
  182. package/dist/appShell/SideMenu.js.map +1 -0
  183. package/dist/appShell/SideMenuEntry.js +140 -0
  184. package/dist/appShell/SideMenuEntry.js.map +1 -0
  185. package/dist/appShell/SubmenuActionsMenu.js +71 -0
  186. package/dist/appShell/SubmenuActionsMenu.js.map +1 -0
  187. package/dist/appShell/TabBarEditor.js +55 -0
  188. package/dist/appShell/TabBarEditor.js.map +1 -0
  189. package/dist/appShell/TopMenu.js +80 -0
  190. package/dist/appShell/TopMenu.js.map +1 -0
  191. package/dist/appShell/appMenuContext.js +11 -0
  192. package/dist/appShell/appMenuContext.js.map +1 -0
  193. package/dist/appShell/barActionsSlot.js +26 -0
  194. package/dist/appShell/barActionsSlot.js.map +1 -0
  195. package/dist/appShell/barMenuPlacement.js +33 -0
  196. package/dist/appShell/barMenuPlacement.js.map +1 -0
  197. package/dist/appShell/menuItemText.js +33 -0
  198. package/dist/appShell/menuItemText.js.map +1 -0
  199. package/dist/appShell/pageTitle.js +45 -0
  200. package/dist/appShell/pageTitle.js.map +1 -0
  201. package/dist/appShell/shellSizes.js +40 -0
  202. package/dist/appShell/shellSizes.js.map +1 -0
  203. package/dist/appShell/tabBarRule.js +12 -0
  204. package/dist/appShell/tabBarRule.js.map +1 -0
  205. package/dist/appShell/tabBarScroll.js +23 -0
  206. package/dist/appShell/tabBarScroll.js.map +1 -0
  207. package/dist/appShell/useDrawerCollapsed.js +29 -0
  208. package/dist/appShell/useDrawerCollapsed.js.map +1 -0
  209. package/dist/appShell/useFittingActionCount.js +45 -0
  210. package/dist/appShell/useFittingActionCount.js.map +1 -0
  211. package/dist/appShell/usePinnedMobileTabs.js +32 -0
  212. package/dist/appShell/usePinnedMobileTabs.js.map +1 -0
  213. package/dist/appShell/useTabBarMinimized.js +33 -0
  214. package/dist/appShell/useTabBarMinimized.js.map +1 -0
  215. package/dist/auth/PasswordChecklist.js +44 -0
  216. package/dist/auth/PasswordChecklist.js.map +1 -0
  217. package/dist/auth/passwordRules.js +43 -0
  218. package/dist/auth/passwordRules.js.map +1 -0
  219. package/dist/calendar/EventCalendar.js +149 -0
  220. package/dist/calendar/EventCalendar.js.map +1 -0
  221. package/dist/calendar/EventDetails.js +74 -0
  222. package/dist/calendar/EventDetails.js.map +1 -0
  223. package/dist/calendar/calendarEvents.js +31 -0
  224. package/dist/calendar/calendarEvents.js.map +1 -0
  225. package/dist/calendar.js +13 -0
  226. package/dist/calendar.js.map +1 -0
  227. package/dist/charts.js +16 -0
  228. package/dist/charts.js.map +1 -0
  229. package/dist/date-pickers.js +8 -0
  230. package/dist/date-pickers.js.map +1 -0
  231. package/dist/datePickers/DateInput.js +76 -0
  232. package/dist/datePickers/DateInput.js.map +1 -0
  233. package/dist/datePickers/FormDateField.js +12 -0
  234. package/dist/datePickers/FormDateField.js.map +1 -0
  235. package/dist/dates.js +25 -0
  236. package/dist/dates.js.map +1 -0
  237. package/dist/dictionaries/dictionaries.js +48 -0
  238. package/dist/dictionaries/dictionaries.js.map +1 -0
  239. package/dist/downloads/DownloadManager.js +195 -0
  240. package/dist/downloads/DownloadManager.js.map +1 -0
  241. package/dist/downloads/downloadQueue.js +56 -0
  242. package/dist/downloads/downloadQueue.js.map +1 -0
  243. package/dist/downloads/downloadsMachine.js +80 -0
  244. package/dist/downloads/downloadsMachine.js.map +1 -0
  245. package/dist/downloads/fileTypes.js +22 -0
  246. package/dist/downloads/fileTypes.js.map +1 -0
  247. package/dist/excel/reportWorkbook.js +299 -0
  248. package/dist/excel/reportWorkbook.js.map +1 -0
  249. package/dist/excel.js +13 -0
  250. package/dist/excel.js.map +1 -0
  251. package/dist/feedback/ConfirmDialog.js +73 -0
  252. package/dist/feedback/ConfirmDialog.js.map +1 -0
  253. package/dist/feedback/ModalWaiting.js +23 -0
  254. package/dist/feedback/ModalWaiting.js.map +1 -0
  255. package/dist/feedback/NewBuildNotice.js +79 -0
  256. package/dist/feedback/NewBuildNotice.js.map +1 -0
  257. package/dist/feedback/StaleBuildBoundary.js +36 -0
  258. package/dist/feedback/StaleBuildBoundary.js.map +1 -0
  259. package/dist/feedback/Toaster.js +20 -0
  260. package/dist/feedback/Toaster.js.map +1 -0
  261. package/dist/feedback/confirmActionMachine.js +67 -0
  262. package/dist/feedback/confirmActionMachine.js.map +1 -0
  263. package/dist/feedback/toast.js +88 -0
  264. package/dist/feedback/toast.js.map +1 -0
  265. package/dist/feedback/useConfirmAction.js +40 -0
  266. package/dist/feedback/useConfirmAction.js.map +1 -0
  267. package/dist/filepond/FileDropzone.js +256 -0
  268. package/dist/filepond/FileDropzone.js.map +1 -0
  269. package/dist/filepond/pondServer.js +48 -0
  270. package/dist/filepond/pondServer.js.map +1 -0
  271. package/dist/filepond.js +10 -0
  272. package/dist/filepond.js.map +1 -0
  273. package/dist/files.js +43 -0
  274. package/dist/files.js.map +1 -0
  275. package/dist/formatting.js +205 -0
  276. package/dist/formatting.js.map +1 -0
  277. package/dist/forms/FormCatalogField.js +12 -0
  278. package/dist/forms/FormCatalogField.js.map +1 -0
  279. package/dist/forms/FormColorField.js +12 -0
  280. package/dist/forms/FormColorField.js.map +1 -0
  281. package/dist/forms/FormNumberField.js +12 -0
  282. package/dist/forms/FormNumberField.js.map +1 -0
  283. package/dist/forms/FormProblemAlert.js +15 -0
  284. package/dist/forms/FormProblemAlert.js.map +1 -0
  285. package/dist/forms/FormSelectField.js +12 -0
  286. package/dist/forms/FormSelectField.js.map +1 -0
  287. package/dist/forms/FormServerProblem.js +23 -0
  288. package/dist/forms/FormServerProblem.js.map +1 -0
  289. package/dist/forms/FormTextField.js +12 -0
  290. package/dist/forms/FormTextField.js.map +1 -0
  291. package/dist/forms/FormWizard.js +63 -0
  292. package/dist/forms/FormWizard.js.map +1 -0
  293. package/dist/forms/SubmitButton.js +14 -0
  294. package/dist/forms/SubmitButton.js.map +1 -0
  295. package/dist/forms/applyServerProblem.js +15 -0
  296. package/dist/forms/applyServerProblem.js.map +1 -0
  297. package/dist/forms/auth/ChangePasswordForm.js +47 -0
  298. package/dist/forms/auth/ChangePasswordForm.js.map +1 -0
  299. package/dist/forms/auth/ForgotPasswordForm.js +50 -0
  300. package/dist/forms/auth/ForgotPasswordForm.js.map +1 -0
  301. package/dist/forms/auth/SignInForm.js +48 -0
  302. package/dist/forms/auth/SignInForm.js.map +1 -0
  303. package/dist/forms/security/SecondStepForm.js +122 -0
  304. package/dist/forms/security/SecondStepForm.js.map +1 -0
  305. package/dist/forms/security/TwoStepVerificationCard.js +338 -0
  306. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -0
  307. package/dist/forms/security/securityRules.js +28 -0
  308. package/dist/forms/security/securityRules.js.map +1 -0
  309. package/dist/forms/serverProblemFields.js +25 -0
  310. package/dist/forms/serverProblemFields.js.map +1 -0
  311. package/dist/forms/useFormikField.js +16 -0
  312. package/dist/forms/useFormikField.js.map +1 -0
  313. package/dist/forms/validation.js +55 -0
  314. package/dist/forms/validation.js.map +1 -0
  315. package/dist/forms/validationMessages.js +16 -0
  316. package/dist/forms/validationMessages.js.map +1 -0
  317. package/dist/forms.js +57 -0
  318. package/dist/forms.js.map +1 -0
  319. package/dist/hookForm/FormCatalogField.js +12 -0
  320. package/dist/hookForm/FormCatalogField.js.map +1 -0
  321. package/dist/hookForm/FormColorField.js +12 -0
  322. package/dist/hookForm/FormColorField.js.map +1 -0
  323. package/dist/hookForm/FormNumberField.js +12 -0
  324. package/dist/hookForm/FormNumberField.js.map +1 -0
  325. package/dist/hookForm/FormProblemAlert.js +17 -0
  326. package/dist/hookForm/FormProblemAlert.js.map +1 -0
  327. package/dist/hookForm/FormSelectField.js +12 -0
  328. package/dist/hookForm/FormSelectField.js.map +1 -0
  329. package/dist/hookForm/FormTextField.js +12 -0
  330. package/dist/hookForm/FormTextField.js.map +1 -0
  331. package/dist/hookForm/FormWizard.js +59 -0
  332. package/dist/hookForm/FormWizard.js.map +1 -0
  333. package/dist/hookForm/SubmitButton.js +15 -0
  334. package/dist/hookForm/SubmitButton.js.map +1 -0
  335. package/dist/hookForm/applyServerProblem.js +21 -0
  336. package/dist/hookForm/applyServerProblem.js.map +1 -0
  337. package/dist/hookForm/useHookFormField.js +19 -0
  338. package/dist/hookForm/useHookFormField.js.map +1 -0
  339. package/dist/i18next.js +5 -0
  340. package/dist/i18next.js.map +1 -0
  341. package/dist/identifiers.js +8 -0
  342. package/dist/identifiers.js.map +1 -0
  343. package/dist/inbox/InboxLayout.js +104 -0
  344. package/dist/inbox/InboxLayout.js.map +1 -0
  345. package/dist/inbox/MessageList.js +114 -0
  346. package/dist/inbox/MessageList.js.map +1 -0
  347. package/dist/inbox/MessageView.js +104 -0
  348. package/dist/inbox/MessageView.js.map +1 -0
  349. package/dist/inbox/inboxDates.js +9 -0
  350. package/dist/inbox/inboxDates.js.map +1 -0
  351. package/dist/index.js +407 -0
  352. package/dist/index.js.map +1 -0
  353. package/dist/inputs/CatalogInput.js +66 -0
  354. package/dist/inputs/CatalogInput.js.map +1 -0
  355. package/dist/inputs/ColorInput.js +109 -0
  356. package/dist/inputs/ColorInput.js.map +1 -0
  357. package/dist/inputs/FieldFrame.js +20 -0
  358. package/dist/inputs/FieldFrame.js.map +1 -0
  359. package/dist/inputs/FormSection.js +105 -0
  360. package/dist/inputs/FormSection.js.map +1 -0
  361. package/dist/inputs/NumberInput.js +70 -0
  362. package/dist/inputs/NumberInput.js.map +1 -0
  363. package/dist/inputs/SelectInput.js +84 -0
  364. package/dist/inputs/SelectInput.js.map +1 -0
  365. package/dist/inputs/TextInput.js +101 -0
  366. package/dist/inputs/TextInput.js.map +1 -0
  367. package/dist/inputs/WizardLayout.js +54 -0
  368. package/dist/inputs/WizardLayout.js.map +1 -0
  369. package/dist/inputs/colorContrast.js +46 -0
  370. package/dist/inputs/colorContrast.js.map +1 -0
  371. package/dist/inputs/formLayoutContext.js +9 -0
  372. package/dist/inputs/formLayoutContext.js.map +1 -0
  373. package/dist/inputs/numberText.js +48 -0
  374. package/dist/inputs/numberText.js.map +1 -0
  375. package/dist/kanban/KanbanBoard.js +338 -0
  376. package/dist/kanban/KanbanBoard.js.map +1 -0
  377. package/dist/kanban/kanbanCards.js +19 -0
  378. package/dist/kanban/kanbanCards.js.map +1 -0
  379. package/dist/kanban/kanbanMoves.js +29 -0
  380. package/dist/kanban/kanbanMoves.js.map +1 -0
  381. package/dist/kanban.js +15 -0
  382. package/dist/kanban.js.map +1 -0
  383. package/dist/laravel/csrfRetry.js +18 -0
  384. package/dist/laravel/csrfRetry.js.map +1 -0
  385. package/dist/laravel.js +6 -0
  386. package/dist/laravel.js.map +1 -0
  387. package/dist/lastListUrl.js +35 -0
  388. package/dist/lastListUrl.js.map +1 -0
  389. package/dist/locales/en.js +787 -0
  390. package/dist/locales/en.js.map +1 -0
  391. package/dist/locales/es.js +787 -0
  392. package/dist/locales/es.js.map +1 -0
  393. package/dist/maps/MapView.js +116 -0
  394. package/dist/maps/MapView.js.map +1 -0
  395. package/dist/maps/mapMarkers.js +19 -0
  396. package/dist/maps/mapMarkers.js.map +1 -0
  397. package/dist/maps.js +10 -0
  398. package/dist/maps.js.map +1 -0
  399. package/dist/money/money.js +380 -0
  400. package/dist/money/money.js.map +1 -0
  401. package/dist/money.js +6 -0
  402. package/dist/money.js.map +1 -0
  403. package/dist/navigation/appMenu.js +93 -0
  404. package/dist/navigation/appMenu.js.map +1 -0
  405. package/dist/navigation/useMenuBadges.js +45 -0
  406. package/dist/navigation/useMenuBadges.js.map +1 -0
  407. package/dist/navigation.js +30 -0
  408. package/dist/navigation.js.map +1 -0
  409. package/dist/navigationTrail.js +82 -0
  410. package/dist/navigationTrail.js.map +1 -0
  411. package/dist/next.js +5 -0
  412. package/dist/next.js.map +1 -0
  413. package/dist/observability/buildWatch.js +19 -0
  414. package/dist/observability/buildWatch.js.map +1 -0
  415. package/dist/observability/logger.js +43 -0
  416. package/dist/observability/logger.js.map +1 -0
  417. package/dist/observability/publishedBuild.js +39 -0
  418. package/dist/observability/publishedBuild.js.map +1 -0
  419. package/dist/observability/usePublishedBuildWatch.js +77 -0
  420. package/dist/observability/usePublishedBuildWatch.js.map +1 -0
  421. package/dist/passkeys.js +7 -0
  422. package/dist/passkeys.js.map +1 -0
  423. package/dist/periodRanges.js +33 -0
  424. package/dist/periodRanges.js.map +1 -0
  425. package/dist/problems.js +51 -0
  426. package/dist/problems.js.map +1 -0
  427. package/dist/pwa/InstallAppSetting.js +34 -0
  428. package/dist/pwa/InstallAppSetting.js.map +1 -0
  429. package/dist/pwa/InstallInstructionsDialog.js +35 -0
  430. package/dist/pwa/InstallInstructionsDialog.js.map +1 -0
  431. package/dist/pwa/InstallPromptBanner.js +70 -0
  432. package/dist/pwa/InstallPromptBanner.js.map +1 -0
  433. package/dist/pwa/installInstructions.js +60 -0
  434. package/dist/pwa/installInstructions.js.map +1 -0
  435. package/dist/pwa/useInstallPrompt.js +71 -0
  436. package/dist/pwa/useInstallPrompt.js.map +1 -0
  437. package/dist/react-hook-form.js +32 -0
  438. package/dist/react-hook-form.js.map +1 -0
  439. package/dist/react-router.js +10 -0
  440. package/dist/react-router.js.map +1 -0
  441. package/dist/security/ActivityLog.js +80 -0
  442. package/dist/security/ActivityLog.js.map +1 -0
  443. package/dist/security/RecoveryCodesDialog.js +85 -0
  444. package/dist/security/RecoveryCodesDialog.js.map +1 -0
  445. package/dist/security/SessionsCard.js +83 -0
  446. package/dist/security/SessionsCard.js.map +1 -0
  447. package/dist/security/passkeys.js +39 -0
  448. package/dist/security/passkeys.js.map +1 -0
  449. package/dist/table.js +37 -0
  450. package/dist/table.js.map +1 -0
  451. package/dist/theme/androidDevice.js +16 -0
  452. package/dist/theme/androidDevice.js.map +1 -0
  453. package/dist/theme/appleTracking.js +34 -0
  454. package/dist/theme/appleTracking.js.map +1 -0
  455. package/dist/theme/components/MuiAppBar.js +27 -0
  456. package/dist/theme/components/MuiAppBar.js.map +1 -0
  457. package/dist/theme/components/MuiBackdrop.js +13 -0
  458. package/dist/theme/components/MuiBackdrop.js.map +1 -0
  459. package/dist/theme/components/MuiButton.js +25 -0
  460. package/dist/theme/components/MuiButton.js.map +1 -0
  461. package/dist/theme/components/MuiButtonBase.js +16 -0
  462. package/dist/theme/components/MuiButtonBase.js.map +1 -0
  463. package/dist/theme/components/MuiChip.js +30 -0
  464. package/dist/theme/components/MuiChip.js.map +1 -0
  465. package/dist/theme/components/MuiDataGrid.js +30 -0
  466. package/dist/theme/components/MuiDataGrid.js.map +1 -0
  467. package/dist/theme/components/MuiDialog.js +13 -0
  468. package/dist/theme/components/MuiDialog.js.map +1 -0
  469. package/dist/theme/components/MuiDrawer.js +18 -0
  470. package/dist/theme/components/MuiDrawer.js.map +1 -0
  471. package/dist/theme/components/MuiMenuItem.js +17 -0
  472. package/dist/theme/components/MuiMenuItem.js.map +1 -0
  473. package/dist/theme/components/MuiTypography.js +22 -0
  474. package/dist/theme/components/MuiTypography.js.map +1 -0
  475. package/dist/theme/components/glassComponents.js +885 -0
  476. package/dist/theme/components/glassComponents.js.map +1 -0
  477. package/dist/theme/components/minimalComponents.js +146 -0
  478. package/dist/theme/components/minimalComponents.js.map +1 -0
  479. package/dist/theme/components/paletteOf.js +7 -0
  480. package/dist/theme/components/paletteOf.js.map +1 -0
  481. package/dist/theme/createToolkitTheme.js +100 -0
  482. package/dist/theme/createToolkitTheme.js.map +1 -0
  483. package/dist/theme/glassSurface.js +328 -0
  484. package/dist/theme/glassSurface.js.map +1 -0
  485. package/dist/theme/glassToasterStyles.js +50 -0
  486. package/dist/theme/glassToasterStyles.js.map +1 -0
  487. package/dist/theme/mergeComponents.js +42 -0
  488. package/dist/theme/mergeComponents.js.map +1 -0
  489. package/dist/theme/stackcraftPalette.js +59 -0
  490. package/dist/theme/stackcraftPalette.js.map +1 -0
  491. package/dist/theme/toolkitComponents.js +28 -0
  492. package/dist/theme/toolkitComponents.js.map +1 -0
  493. package/dist/timeline.js +8 -0
  494. package/dist/timeline.js.map +1 -0
  495. package/dist/toolkit/ComponentTexts.js +13 -0
  496. package/dist/toolkit/ComponentTexts.js.map +1 -0
  497. package/dist/toolkit/ToolkitProvider.js +57 -0
  498. package/dist/toolkit/ToolkitProvider.js.map +1 -0
  499. package/dist/toolkit/browserNavigation.js +33 -0
  500. package/dist/toolkit/browserNavigation.js.map +1 -0
  501. package/dist/toolkit/componentTextsContext.js +15 -0
  502. package/dist/toolkit/componentTextsContext.js.map +1 -0
  503. package/dist/toolkit/hashNavigation.js +40 -0
  504. package/dist/toolkit/hashNavigation.js.map +1 -0
  505. package/dist/toolkit/navigationPaths.js +49 -0
  506. package/dist/toolkit/navigationPaths.js.map +1 -0
  507. package/dist/toolkit/toolkitContext.js +19 -0
  508. package/dist/toolkit/toolkitContext.js.map +1 -0
  509. package/dist/toolkit/toolkitSettings.js +107 -0
  510. package/dist/toolkit/toolkitSettings.js.map +1 -0
  511. package/dist/toolkit/useFormatters.js +12 -0
  512. package/dist/toolkit/useFormatters.js.map +1 -0
  513. package/dist/toolkit/useToolkitTranslation.js +22 -0
  514. package/dist/toolkit/useToolkitTranslation.js.map +1 -0
  515. package/dist/types/DataTable/AuditTrailDialog.d.ts +32 -0
  516. package/dist/types/DataTable/AuditTrailTable.d.ts +30 -0
  517. package/dist/types/DataTable/ColumnFilters/HeaderFilterPopover.d.ts +8 -0
  518. package/dist/types/DataTable/ColumnFilters/MultiSelectColumnFilter.d.ts +16 -0
  519. package/dist/types/DataTable/ColumnFilters/SortableFilterHeader.d.ts +26 -0
  520. package/dist/types/DataTable/ColumnFilters/TextColumnFilter.d.ts +8 -0
  521. package/dist/types/DataTable/ColumnFilters/index.d.ts +4 -0
  522. package/dist/types/DataTable/EmptyState.d.ts +13 -0
  523. package/dist/types/DataTable/FilterChips.d.ts +17 -0
  524. package/dist/types/DataTable/GoToPage.d.ts +13 -0
  525. package/dist/types/DataTable/SelectionBar.d.ts +32 -0
  526. package/dist/types/DataTable/ServerTable.d.ts +171 -0
  527. package/dist/types/DataTable/buildChipConfig.d.ts +22 -0
  528. package/dist/types/DataTable/columns.d.ts +93 -0
  529. package/dist/types/DataTable/filterContext.d.ts +13 -0
  530. package/dist/types/DataTable/index.d.ts +13 -0
  531. package/dist/types/DataTable/rowSelection.d.ts +113 -0
  532. package/dist/types/DataTable/serverTableParams.d.ts +16 -0
  533. package/dist/types/DataTable/tableMachine.d.ts +41 -0
  534. package/dist/types/DataTable/useDebouncedFilter.d.ts +8 -0
  535. package/dist/types/DataTable/useTableState.d.ts +93 -0
  536. package/dist/types/access/Can.d.ts +11 -0
  537. package/dist/types/access/PermissionMatrix.d.ts +23 -0
  538. package/dist/types/access/RequireAccess.d.ts +11 -0
  539. package/dist/types/access/accessRules.d.ts +24 -0
  540. package/dist/types/access/permissionGroups.d.ts +56 -0
  541. package/dist/types/access/useCan.d.ts +11 -0
  542. package/dist/types/account/AccountProvider.d.ts +27 -0
  543. package/dist/types/account/AccountSecuritySection.d.ts +9 -0
  544. package/dist/types/account/DemoTotpCodeButton.d.ts +6 -0
  545. package/dist/types/account/ForgotPasswordScreen.d.ts +17 -0
  546. package/dist/types/account/ProfileScreen.d.ts +43 -0
  547. package/dist/types/account/ResetPasswordScreen.d.ts +21 -0
  548. package/dist/types/account/SignInScreen.d.ts +27 -0
  549. package/dist/types/account/accountConnector.d.ts +268 -0
  550. package/dist/types/account/demo/createDemoAccountConnector.d.ts +30 -0
  551. package/dist/types/account/demo/totp.d.ts +45 -0
  552. package/dist/types/account/restAccountConnector.d.ts +49 -0
  553. package/dist/types/account-demo.d.ts +2 -0
  554. package/dist/types/account.d.ts +16 -0
  555. package/dist/types/adapters/i18next.d.ts +11 -0
  556. package/dist/types/adapters/nextNavigation.d.ts +33 -0
  557. package/dist/types/adapters/reactRouter.d.ts +6 -0
  558. package/dist/types/adapters/reactRouterRoutes.d.ts +42 -0
  559. package/dist/types/api/ApiError.d.ts +42 -0
  560. package/dist/types/api/createApiClient.d.ts +174 -0
  561. package/dist/types/api/staleChunks.d.ts +15 -0
  562. package/dist/types/appShell/AccountMenu.d.ts +28 -0
  563. package/dist/types/appShell/AppLayout.d.ts +76 -0
  564. package/dist/types/appShell/AppearanceSettings.d.ts +41 -0
  565. package/dist/types/appShell/AuthLayout.d.ts +21 -0
  566. package/dist/types/appShell/BarActionButton.d.ts +15 -0
  567. package/dist/types/appShell/BarActions.d.ts +23 -0
  568. package/dist/types/appShell/BarCapsule.d.ts +20 -0
  569. package/dist/types/appShell/BarSearch.d.ts +24 -0
  570. package/dist/types/appShell/HeaderTools.d.ts +27 -0
  571. package/dist/types/appShell/MobileTabBar.d.ts +20 -0
  572. package/dist/types/appShell/SettingsMenu.d.ts +13 -0
  573. package/dist/types/appShell/SideMenu.d.ts +31 -0
  574. package/dist/types/appShell/SideMenuEntry.d.ts +17 -0
  575. package/dist/types/appShell/SubmenuActionsMenu.d.ts +24 -0
  576. package/dist/types/appShell/TabBarEditor.d.ts +13 -0
  577. package/dist/types/appShell/TopMenu.d.ts +7 -0
  578. package/dist/types/appShell/appMenuContext.d.ts +9 -0
  579. package/dist/types/appShell/barActionsSlot.d.ts +35 -0
  580. package/dist/types/appShell/barMenuPlacement.d.ts +9 -0
  581. package/dist/types/appShell/menuItemText.d.ts +55 -0
  582. package/dist/types/appShell/pageTitle.d.ts +26 -0
  583. package/dist/types/appShell/shellSizes.d.ts +46 -0
  584. package/dist/types/appShell/tabBarRule.d.ts +5 -0
  585. package/dist/types/appShell/tabBarScroll.d.ts +26 -0
  586. package/dist/types/appShell/useDrawerCollapsed.d.ts +8 -0
  587. package/dist/types/appShell/useFittingActionCount.d.ts +7 -0
  588. package/dist/types/appShell/usePinnedMobileTabs.d.ts +7 -0
  589. package/dist/types/appShell/useTabBarMinimized.d.ts +8 -0
  590. package/dist/types/auth/PasswordChecklist.d.ts +13 -0
  591. package/dist/types/auth/passwordRules.d.ts +34 -0
  592. package/dist/types/calendar/EventCalendar.d.ts +63 -0
  593. package/dist/types/calendar/EventDetails.d.ts +36 -0
  594. package/dist/types/calendar/calendarEvents.d.ts +27 -0
  595. package/dist/types/calendar.d.ts +3 -0
  596. package/dist/types/charts.d.ts +6 -0
  597. package/dist/types/date-pickers.d.ts +2 -0
  598. package/dist/types/datePickers/DateInput.d.ts +41 -0
  599. package/dist/types/datePickers/FormDateField.d.ts +7 -0
  600. package/dist/types/dates.d.ts +18 -0
  601. package/dist/types/dictionaries/dictionaries.d.ts +54 -0
  602. package/dist/types/downloads/DownloadManager.d.ts +7 -0
  603. package/dist/types/downloads/downloadQueue.d.ts +50 -0
  604. package/dist/types/downloads/downloadsMachine.d.ts +10 -0
  605. package/dist/types/downloads/fileTypes.d.ts +39 -0
  606. package/dist/types/downloads/index.d.ts +4 -0
  607. package/dist/types/excel/reportWorkbook.d.ts +157 -0
  608. package/dist/types/excel.d.ts +1 -0
  609. package/dist/types/feedback/ConfirmDialog.d.ts +31 -0
  610. package/dist/types/feedback/ModalWaiting.d.ts +13 -0
  611. package/dist/types/feedback/NewBuildNotice.d.ts +20 -0
  612. package/dist/types/feedback/StaleBuildBoundary.d.ts +21 -0
  613. package/dist/types/feedback/Toaster.d.ts +1 -0
  614. package/dist/types/feedback/confirmActionMachine.d.ts +19 -0
  615. package/dist/types/feedback/index.d.ts +8 -0
  616. package/dist/types/feedback/toast.d.ts +100 -0
  617. package/dist/types/feedback/useConfirmAction.d.ts +33 -0
  618. package/dist/types/filepond/FileDropzone.d.ts +61 -0
  619. package/dist/types/filepond/pondServer.d.ts +17 -0
  620. package/dist/types/filepond.d.ts +3 -0
  621. package/dist/types/files.d.ts +29 -0
  622. package/dist/types/formatting.d.ts +61 -0
  623. package/dist/types/forms/FormCatalogField.d.ts +6 -0
  624. package/dist/types/forms/FormColorField.d.ts +6 -0
  625. package/dist/types/forms/FormNumberField.d.ts +6 -0
  626. package/dist/types/forms/FormProblemAlert.d.ts +6 -0
  627. package/dist/types/forms/FormSelectField.d.ts +6 -0
  628. package/dist/types/forms/FormServerProblem.d.ts +8 -0
  629. package/dist/types/forms/FormTextField.d.ts +6 -0
  630. package/dist/types/forms/FormWizard.d.ts +22 -0
  631. package/dist/types/forms/SubmitButton.d.ts +9 -0
  632. package/dist/types/forms/applyServerProblem.d.ts +9 -0
  633. package/dist/types/forms/auth/ChangePasswordForm.d.ts +17 -0
  634. package/dist/types/forms/auth/ForgotPasswordForm.d.ts +14 -0
  635. package/dist/types/forms/auth/SignInForm.d.ts +20 -0
  636. package/dist/types/forms/index.d.ts +19 -0
  637. package/dist/types/forms/security/SecondStepForm.d.ts +30 -0
  638. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +83 -0
  639. package/dist/types/forms/security/securityRules.d.ts +24 -0
  640. package/dist/types/forms/serverProblemFields.d.ts +19 -0
  641. package/dist/types/forms/useFormikField.d.ts +11 -0
  642. package/dist/types/forms/validation.d.ts +251 -0
  643. package/dist/types/forms/validationMessages.d.ts +12 -0
  644. package/dist/types/forms.d.ts +2 -0
  645. package/dist/types/hookForm/FormCatalogField.d.ts +8 -0
  646. package/dist/types/hookForm/FormColorField.d.ts +8 -0
  647. package/dist/types/hookForm/FormNumberField.d.ts +8 -0
  648. package/dist/types/hookForm/FormProblemAlert.d.ts +7 -0
  649. package/dist/types/hookForm/FormSelectField.d.ts +8 -0
  650. package/dist/types/hookForm/FormTextField.d.ts +8 -0
  651. package/dist/types/hookForm/FormWizard.d.ts +22 -0
  652. package/dist/types/hookForm/SubmitButton.d.ts +21 -0
  653. package/dist/types/hookForm/applyServerProblem.d.ts +10 -0
  654. package/dist/types/hookForm/useHookFormField.d.ts +13 -0
  655. package/dist/types/i18next.d.ts +1 -0
  656. package/dist/types/identifiers.d.ts +2 -0
  657. package/dist/types/inbox/InboxLayout.d.ts +38 -0
  658. package/dist/types/inbox/MessageList.d.ts +52 -0
  659. package/dist/types/inbox/MessageView.d.ts +55 -0
  660. package/dist/types/inbox/inboxDates.d.ts +11 -0
  661. package/dist/types/index.d.ts +91 -0
  662. package/dist/types/inputs/CatalogInput.d.ts +45 -0
  663. package/dist/types/inputs/ColorInput.d.ts +30 -0
  664. package/dist/types/inputs/FieldFrame.d.ts +14 -0
  665. package/dist/types/inputs/FormSection.d.ts +29 -0
  666. package/dist/types/inputs/NumberInput.d.ts +38 -0
  667. package/dist/types/inputs/SelectInput.d.ts +38 -0
  668. package/dist/types/inputs/TextInput.d.ts +62 -0
  669. package/dist/types/inputs/WizardLayout.d.ts +34 -0
  670. package/dist/types/inputs/colorContrast.d.ts +18 -0
  671. package/dist/types/inputs/formLayoutContext.d.ts +3 -0
  672. package/dist/types/inputs/numberText.d.ts +25 -0
  673. package/dist/types/kanban/KanbanBoard.d.ts +88 -0
  674. package/dist/types/kanban/kanbanCards.d.ts +22 -0
  675. package/dist/types/kanban/kanbanMoves.d.ts +38 -0
  676. package/dist/types/kanban.d.ts +3 -0
  677. package/dist/types/laravel/csrfRetry.d.ts +21 -0
  678. package/dist/types/laravel.d.ts +1 -0
  679. package/dist/types/lastListUrl.d.ts +20 -0
  680. package/dist/types/locales/en.d.ts +788 -0
  681. package/dist/types/locales/es.d.ts +788 -0
  682. package/dist/types/maps/MapView.d.ts +41 -0
  683. package/dist/types/maps/mapMarkers.d.ts +23 -0
  684. package/dist/types/maps.d.ts +2 -0
  685. package/dist/types/money/money.d.ts +203 -0
  686. package/dist/types/money.d.ts +1 -0
  687. package/dist/types/navigation/appMenu.d.ts +92 -0
  688. package/dist/types/navigation/useMenuBadges.d.ts +16 -0
  689. package/dist/types/navigation.d.ts +22 -0
  690. package/dist/types/navigationTrail.d.ts +49 -0
  691. package/dist/types/next.d.ts +1 -0
  692. package/dist/types/observability/buildWatch.d.ts +28 -0
  693. package/dist/types/observability/logger.d.ts +19 -0
  694. package/dist/types/observability/publishedBuild.d.ts +35 -0
  695. package/dist/types/observability/usePublishedBuildWatch.d.ts +18 -0
  696. package/dist/types/passkeys.d.ts +1 -0
  697. package/dist/types/periodRanges.d.ts +32 -0
  698. package/dist/types/problems.d.ts +31 -0
  699. package/dist/types/pwa/InstallAppSetting.d.ts +7 -0
  700. package/dist/types/pwa/InstallInstructionsDialog.d.ts +20 -0
  701. package/dist/types/pwa/InstallPromptBanner.d.ts +16 -0
  702. package/dist/types/pwa/installInstructions.d.ts +52 -0
  703. package/dist/types/pwa/useInstallPrompt.d.ts +13 -0
  704. package/dist/types/react-hook-form.d.ts +12 -0
  705. package/dist/types/react-router.d.ts +2 -0
  706. package/dist/types/security/ActivityLog.d.ts +33 -0
  707. package/dist/types/security/RecoveryCodesDialog.d.ts +16 -0
  708. package/dist/types/security/SessionsCard.d.ts +24 -0
  709. package/dist/types/security/passkeys.d.ts +18 -0
  710. package/dist/types/table.d.ts +3 -0
  711. package/dist/types/theme/androidDevice.d.ts +11 -0
  712. package/dist/types/theme/appleTracking.d.ts +17 -0
  713. package/dist/types/theme/components/MuiAppBar.d.ts +13 -0
  714. package/dist/types/theme/components/MuiBackdrop.d.ts +11 -0
  715. package/dist/types/theme/components/MuiButton.d.ts +27 -0
  716. package/dist/types/theme/components/MuiButtonBase.d.ts +14 -0
  717. package/dist/types/theme/components/MuiChip.d.ts +29 -0
  718. package/dist/types/theme/components/MuiDataGrid.d.ts +45 -0
  719. package/dist/types/theme/components/MuiDialog.d.ts +9 -0
  720. package/dist/types/theme/components/MuiDrawer.d.ts +13 -0
  721. package/dist/types/theme/components/MuiMenuItem.d.ts +17 -0
  722. package/dist/types/theme/components/MuiTypography.d.ts +20 -0
  723. package/dist/types/theme/components/glassComponents.d.ts +8 -0
  724. package/dist/types/theme/components/minimalComponents.d.ts +22 -0
  725. package/dist/types/theme/components/paletteOf.d.ts +5 -0
  726. package/dist/types/theme/createToolkitTheme.d.ts +48 -0
  727. package/dist/types/theme/glassSurface.d.ts +247 -0
  728. package/dist/types/theme/glassToasterStyles.d.ts +7 -0
  729. package/dist/types/theme/mergeComponents.d.ts +15 -0
  730. package/dist/types/theme/stackcraftPalette.d.ts +142 -0
  731. package/dist/types/theme/toolkitComponents.d.ts +4 -0
  732. package/dist/types/timeline.d.ts +2 -0
  733. package/dist/types/toolkit/ComponentTexts.d.ts +11 -0
  734. package/dist/types/toolkit/ToolkitProvider.d.ts +47 -0
  735. package/dist/types/toolkit/browserNavigation.d.ts +27 -0
  736. package/dist/types/toolkit/componentTextsContext.d.ts +20 -0
  737. package/dist/types/toolkit/hashNavigation.d.ts +12 -0
  738. package/dist/types/toolkit/navigationPaths.d.ts +43 -0
  739. package/dist/types/toolkit/toolkitContext.d.ts +28 -0
  740. package/dist/types/toolkit/toolkitSettings.d.ts +113 -0
  741. package/dist/types/toolkit/useFormatters.d.ts +6 -0
  742. package/dist/types/toolkit/useToolkitTranslation.d.ts +11 -0
  743. package/dist/types/ui/actions/ActionsMenu.d.ts +20 -0
  744. package/dist/types/ui/actions/CopyButton.d.ts +15 -0
  745. package/dist/types/ui/actions/DownloadMenu.d.ts +55 -0
  746. package/dist/types/ui/actions/SecretField.d.ts +17 -0
  747. package/dist/types/ui/actions/SelectionActions.d.ts +39 -0
  748. package/dist/types/ui/filters/DateRangeFilter.d.ts +18 -0
  749. package/dist/types/ui/filters/PeriodRangeSelector.d.ts +28 -0
  750. package/dist/types/ui/filters/QuickFilters.d.ts +23 -0
  751. package/dist/types/ui/filters/SegmentedControl.d.ts +44 -0
  752. package/dist/types/ui/index.d.ts +33 -0
  753. package/dist/types/ui/labels/DictionaryText.d.ts +7 -0
  754. package/dist/types/ui/labels/StatusChip.d.ts +21 -0
  755. package/dist/types/ui/labels/Tag.d.ts +19 -0
  756. package/dist/types/ui/labels/tagOf.d.ts +13 -0
  757. package/dist/types/ui/layout/CollapsibleSection.d.ts +18 -0
  758. package/dist/types/ui/layout/ContentDialog.d.ts +15 -0
  759. package/dist/types/ui/layout/DefinitionList.d.ts +15 -0
  760. package/dist/types/ui/layout/DetailHeader.d.ts +15 -0
  761. package/dist/types/ui/layout/ErrorPage.d.ts +35 -0
  762. package/dist/types/ui/layout/FullPageLoader.d.ts +7 -0
  763. package/dist/types/ui/layout/GlassLensFilter.d.ts +1 -0
  764. package/dist/types/ui/layout/GlassPanel.d.ts +11 -0
  765. package/dist/types/ui/layout/PageHeader.d.ts +15 -0
  766. package/dist/types/ui/layout/PageHeading.d.ts +20 -0
  767. package/dist/types/ui/layout/ProfileHeader.d.ts +17 -0
  768. package/dist/types/ui/layout/ScrollableRow.d.ts +33 -0
  769. package/dist/types/ui/layout/SectionCard.d.ts +11 -0
  770. package/dist/types/ui/layout/appBarHeight.d.ts +13 -0
  771. package/dist/types/ui/metrics/BarList.d.ts +25 -0
  772. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +34 -0
  773. package/dist/types/ui/metrics/ChartTooltip.d.ts +11 -0
  774. package/dist/types/ui/metrics/ColumnChart.d.ts +47 -0
  775. package/dist/types/ui/metrics/LineChart.d.ts +41 -0
  776. package/dist/types/ui/metrics/MetricCard.d.ts +39 -0
  777. package/dist/types/ui/metrics/TableToggle.d.ts +14 -0
  778. package/dist/types/ui/metrics/barListLabels.d.ts +17 -0
  779. package/dist/types/ui/metrics/chartParts.d.ts +112 -0
  780. package/dist/types/ui/metrics/heatmapScale.d.ts +45 -0
  781. package/dist/types/ui/navigation/BackButton.d.ts +13 -0
  782. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +13 -0
  783. package/dist/types/ui/navigation/DocumentTitle.d.ts +6 -0
  784. package/dist/types/ui/navigation/FontSizeToggle.d.ts +11 -0
  785. package/dist/types/ui/navigation/LanguageToggle.d.ts +13 -0
  786. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +12 -0
  787. package/dist/types/ui/navigation/colorMode.d.ts +18 -0
  788. package/dist/types/ui/navigation/fontSizeLevels.d.ts +25 -0
  789. package/dist/types/ui/navigation/useFontSize.d.ts +10 -0
  790. package/dist/types/ui/timeline/GroupedTimeline.d.ts +41 -0
  791. package/dist/types/ui/timeline/timelineDot.d.ts +19 -0
  792. package/dist/types/upload/FileDropzone.d.ts +36 -0
  793. package/dist/types/upload/fileRules.d.ts +51 -0
  794. package/dist/types/upload/uploadMachine.d.ts +23 -0
  795. package/dist/types/upload/uploadWithProgress.d.ts +16 -0
  796. package/dist/ui/actions/ActionsMenu.js +51 -0
  797. package/dist/ui/actions/ActionsMenu.js.map +1 -0
  798. package/dist/ui/actions/CopyButton.js +28 -0
  799. package/dist/ui/actions/CopyButton.js.map +1 -0
  800. package/dist/ui/actions/DownloadMenu.js +162 -0
  801. package/dist/ui/actions/DownloadMenu.js.map +1 -0
  802. package/dist/ui/actions/SecretField.js +61 -0
  803. package/dist/ui/actions/SecretField.js.map +1 -0
  804. package/dist/ui/actions/SelectionActions.js +142 -0
  805. package/dist/ui/actions/SelectionActions.js.map +1 -0
  806. package/dist/ui/filters/DateRangeFilter.js +87 -0
  807. package/dist/ui/filters/DateRangeFilter.js.map +1 -0
  808. package/dist/ui/filters/PeriodRangeSelector.js +56 -0
  809. package/dist/ui/filters/PeriodRangeSelector.js.map +1 -0
  810. package/dist/ui/filters/QuickFilters.js +91 -0
  811. package/dist/ui/filters/QuickFilters.js.map +1 -0
  812. package/dist/ui/filters/SegmentedControl.js +80 -0
  813. package/dist/ui/filters/SegmentedControl.js.map +1 -0
  814. package/dist/ui/labels/DictionaryText.js +11 -0
  815. package/dist/ui/labels/DictionaryText.js.map +1 -0
  816. package/dist/ui/labels/StatusChip.js +52 -0
  817. package/dist/ui/labels/StatusChip.js.map +1 -0
  818. package/dist/ui/labels/Tag.js +26 -0
  819. package/dist/ui/labels/Tag.js.map +1 -0
  820. package/dist/ui/labels/tagOf.js +7 -0
  821. package/dist/ui/labels/tagOf.js.map +1 -0
  822. package/dist/ui/layout/CollapsibleSection.js +52 -0
  823. package/dist/ui/layout/CollapsibleSection.js.map +1 -0
  824. package/dist/ui/layout/ContentDialog.js +97 -0
  825. package/dist/ui/layout/ContentDialog.js.map +1 -0
  826. package/dist/ui/layout/DefinitionList.js +30 -0
  827. package/dist/ui/layout/DefinitionList.js.map +1 -0
  828. package/dist/ui/layout/DetailHeader.js +27 -0
  829. package/dist/ui/layout/DetailHeader.js.map +1 -0
  830. package/dist/ui/layout/ErrorPage.js +54 -0
  831. package/dist/ui/layout/ErrorPage.js.map +1 -0
  832. package/dist/ui/layout/FullPageLoader.js +13 -0
  833. package/dist/ui/layout/FullPageLoader.js.map +1 -0
  834. package/dist/ui/layout/GlassLensFilter.js +53 -0
  835. package/dist/ui/layout/GlassLensFilter.js.map +1 -0
  836. package/dist/ui/layout/GlassPanel.js +18 -0
  837. package/dist/ui/layout/GlassPanel.js.map +1 -0
  838. package/dist/ui/layout/PageHeader.js +23 -0
  839. package/dist/ui/layout/PageHeader.js.map +1 -0
  840. package/dist/ui/layout/PageHeading.js +51 -0
  841. package/dist/ui/layout/PageHeading.js.map +1 -0
  842. package/dist/ui/layout/ProfileHeader.js +64 -0
  843. package/dist/ui/layout/ProfileHeader.js.map +1 -0
  844. package/dist/ui/layout/ScrollableRow.js +156 -0
  845. package/dist/ui/layout/ScrollableRow.js.map +1 -0
  846. package/dist/ui/layout/SectionCard.js +18 -0
  847. package/dist/ui/layout/SectionCard.js.map +1 -0
  848. package/dist/ui/layout/appBarHeight.js +42 -0
  849. package/dist/ui/layout/appBarHeight.js.map +1 -0
  850. package/dist/ui/metrics/BarList.js +94 -0
  851. package/dist/ui/metrics/BarList.js.map +1 -0
  852. package/dist/ui/metrics/CalendarHeatmap.js +136 -0
  853. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -0
  854. package/dist/ui/metrics/ChartTooltip.js +16 -0
  855. package/dist/ui/metrics/ChartTooltip.js.map +1 -0
  856. package/dist/ui/metrics/ColumnChart.js +106 -0
  857. package/dist/ui/metrics/ColumnChart.js.map +1 -0
  858. package/dist/ui/metrics/LineChart.js +117 -0
  859. package/dist/ui/metrics/LineChart.js.map +1 -0
  860. package/dist/ui/metrics/MetricCard.js +97 -0
  861. package/dist/ui/metrics/MetricCard.js.map +1 -0
  862. package/dist/ui/metrics/TableToggle.js +15 -0
  863. package/dist/ui/metrics/TableToggle.js.map +1 -0
  864. package/dist/ui/metrics/barListLabels.js +9 -0
  865. package/dist/ui/metrics/barListLabels.js.map +1 -0
  866. package/dist/ui/metrics/chartParts.js +93 -0
  867. package/dist/ui/metrics/chartParts.js.map +1 -0
  868. package/dist/ui/metrics/heatmapScale.js +67 -0
  869. package/dist/ui/metrics/heatmapScale.js.map +1 -0
  870. package/dist/ui/navigation/BackButton.js +28 -0
  871. package/dist/ui/navigation/BackButton.js.map +1 -0
  872. package/dist/ui/navigation/ColorSchemeToggle.js +40 -0
  873. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -0
  874. package/dist/ui/navigation/DocumentTitle.js +11 -0
  875. package/dist/ui/navigation/DocumentTitle.js.map +1 -0
  876. package/dist/ui/navigation/FontSizeToggle.js +41 -0
  877. package/dist/ui/navigation/FontSizeToggle.js.map +1 -0
  878. package/dist/ui/navigation/LanguageToggle.js +48 -0
  879. package/dist/ui/navigation/LanguageToggle.js.map +1 -0
  880. package/dist/ui/navigation/PageBreadcrumbs.js +51 -0
  881. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -0
  882. package/dist/ui/navigation/colorMode.js +13 -0
  883. package/dist/ui/navigation/colorMode.js.map +1 -0
  884. package/dist/ui/navigation/fontSizeLevels.js +24 -0
  885. package/dist/ui/navigation/fontSizeLevels.js.map +1 -0
  886. package/dist/ui/navigation/useFontSize.js +44 -0
  887. package/dist/ui/navigation/useFontSize.js.map +1 -0
  888. package/dist/ui/timeline/GroupedTimeline.js +106 -0
  889. package/dist/ui/timeline/GroupedTimeline.js.map +1 -0
  890. package/dist/ui/timeline/timelineDot.js +20 -0
  891. package/dist/ui/timeline/timelineDot.js.map +1 -0
  892. package/dist/upload/FileDropzone.js +145 -0
  893. package/dist/upload/FileDropzone.js.map +1 -0
  894. package/dist/upload/fileRules.js +62 -0
  895. package/dist/upload/fileRules.js.map +1 -0
  896. package/dist/upload/uploadMachine.js +73 -0
  897. package/dist/upload/uploadMachine.js.map +1 -0
  898. package/dist/upload/uploadWithProgress.js +45 -0
  899. package/dist/upload/uploadWithProgress.js.map +1 -0
  900. package/package.json +311 -5
@@ -0,0 +1,107 @@
1
+ // La raíz de la app: el ÚNICO lugar donde se conecta el framework. ToolkitProvider recibe el idioma, los textos, la zona, la
2
+ // moneda y el router; los avisos (Toaster) se montan aquí una vez, para todas las pantallas. Aquí también se vigila si ya se
3
+ // publicó otra versión (usePublishedBuildWatch): una pestaña abierta desde ayer, o la app anclada al inicio del iPhone, se
4
+ // actualiza sola si estuvo fuera 15 minutos o más; si no, sale el aviso «Versión nueva» con su botón.
5
+ //#if auth
6
+ //
7
+ // AccountProvider carga la sesión con el conector de la cuenta (core/accountConnector.js) y le pasa a ToolkitProvider la regla
8
+ // de permisos de quien está dentro.
9
+ //#endif
10
+ //
11
+ // Va como elemento de la ruta raíz y no afuera del router porque usa sus hooks (useNavigate, useLocation).
12
+ //
13
+ // Lo renderiza la app: arrow (regla de la casa).
14
+ import {useEffect, useState} from 'react';
15
+ import {Outlet} from 'react-router';
16
+ import {
17
+ //#if pwa
18
+ InstallPromptBanner,
19
+ //#endif
20
+ Toaster,
21
+ ToolkitProvider,
22
+ usePublishedBuildWatch,
23
+ } from '@stackcraftmx/calcita';
24
+ //#if auth
25
+ import {AccountProvider} from '@stackcraftmx/calcita/account';
26
+ //#endif
27
+ //#if i18next
28
+ import {translateWithI18next} from '@stackcraftmx/calcita/i18next';
29
+ //#endif
30
+ import {reactRouterNavigation} from '@stackcraftmx/calcita/react-router';
31
+
32
+ import {APP_BUILD_ID, APP_LANGUAGES, APP_NAME, BUILD_VERSION_URL, PRODUCT_CURRENCY, PRODUCT_TIME_ZONE} from '@/app/appSettings.js';
33
+ //#if !i18next
34
+ import {APP_TEXTS} from '@/app/appTexts.js';
35
+ //#endif
36
+ //#if i18next
37
+ import {i18n} from '@/app/i18n.js';
38
+ //#endif
39
+ //#if auth
40
+ import {accountConnector} from '@/core';
41
+ //#endif
42
+ //#if i18next
43
+
44
+ // se arma una sola vez: lee de la instancia de i18next, no de una copia
45
+ const translate = translateWithI18next(i18n);
46
+ //#endif
47
+
48
+ export const AppProviders = () => {
49
+ const [language, setLanguage] = useState(APP_LANGUAGES.spanish);
50
+ usePublishedBuildWatch({url: BUILD_VERSION_URL, buildId: APP_BUILD_ID});
51
+
52
+ // el idioma de la página, para el lector de pantalla y el corrector del navegador
53
+ useEffect(() => {
54
+ document.documentElement.lang = language;
55
+ }, [language]);
56
+ //#if i18next
57
+
58
+ // primero i18next y luego la app: así la pantalla se vuelve a pintar ya con los textos del idioma nuevo
59
+ const changeLanguage = async (nextLanguage) => {
60
+ await i18n.changeLanguage(nextLanguage);
61
+ setLanguage(nextLanguage);
62
+ };
63
+ //#endif
64
+
65
+ //#if auth
66
+ return (
67
+ <AccountProvider connector={accountConnector}>
68
+ {(canAccess) => (
69
+ <ToolkitProvider language={language}
70
+ //#if !i18next
71
+ onLanguageChange={setLanguage} texts={APP_TEXTS}
72
+ //#endif
73
+ //#if i18next
74
+ onLanguageChange={changeLanguage} translate={translate}
75
+ //#endif
76
+ timeZone={PRODUCT_TIME_ZONE} currency={PRODUCT_CURRENCY} appName={APP_NAME} navigation={reactRouterNavigation}
77
+ buildId={APP_BUILD_ID} canAccess={canAccess}>
78
+ <Outlet />
79
+ <Toaster />
80
+ //#if pwa
81
+ <InstallPromptBanner />
82
+ //#endif
83
+ </ToolkitProvider>
84
+ )}
85
+ </AccountProvider>
86
+ );
87
+ //#endif
88
+ //#if !auth
89
+ return (
90
+ <ToolkitProvider language={language}
91
+ //#if !i18next
92
+ onLanguageChange={setLanguage} texts={APP_TEXTS}
93
+ //#endif
94
+ //#if i18next
95
+ onLanguageChange={changeLanguage} translate={translate}
96
+ //#endif
97
+ timeZone={PRODUCT_TIME_ZONE} currency={PRODUCT_CURRENCY} appName={APP_NAME} navigation={reactRouterNavigation}
98
+ buildId={APP_BUILD_ID}>
99
+ <Outlet />
100
+ <Toaster />
101
+ //#if pwa
102
+ <InstallPromptBanner />
103
+ //#endif
104
+ </ToolkitProvider>
105
+ );
106
+ //#endif
107
+ };
@@ -0,0 +1,87 @@
1
+ // El marco de las pantallas: AppLayout del framework (la barra con el logo, el menú por secciones y la cuenta) con el menú
2
+ // compuesto con el menu.js de cada módulo.
3
+ //
4
+ // El menú no se escribe aquí: composeMenu descubre los menu.js de los módulos y deja solo los que se pueden ver.
5
+ //#if auth
6
+ //
7
+ // Sin sesión no se entra: lleva a iniciar sesión, y de regreso a la pantalla que se quería abrir.
8
+ //#endif
9
+ //
10
+ // Lo renderiza la app: arrow (regla de la casa).
11
+ //#if auth
12
+ import {useMemo, useState} from 'react';
13
+ import {Navigate, Outlet, useLocation, useNavigate} from 'react-router';
14
+ //#endif
15
+ //#if !auth
16
+ import {useMemo} from 'react';
17
+ import {Outlet} from 'react-router';
18
+ //#endif
19
+ import {
20
+ AppLayout,
21
+ //#if pwa
22
+ InstallAppSetting,
23
+ //#endif
24
+ MENU_POSITION,
25
+ composeMenu,
26
+ useAccessChecker,
27
+ useToolkitTranslation,
28
+ //#if auth
29
+ withRedirect,
30
+ //#endif
31
+ } from '@stackcraftmx/calcita';
32
+ //#if auth
33
+ import {useAccount} from '@stackcraftmx/calcita/account';
34
+ //#endif
35
+ import {useIsNavigating} from '@stackcraftmx/calcita/react-router';
36
+
37
+ //#if auth
38
+ import {APP_PATHS, AppLogo} from '@/core';
39
+ //#endif
40
+ //#if !auth
41
+ import {AppLogo} from '@/core';
42
+ //#endif
43
+
44
+ // cada módulo declara su entrada en su menu.js (orden, permiso, sección, texto e ícono)
45
+ const MENU_MODULES = import.meta.glob('@/modules/*/menu.js', {eager: true});
46
+
47
+ export const AppShell = () => {
48
+ const {t} = useToolkitTranslation('shell');
49
+ const canAccess = useAccessChecker();
50
+ const isNavigating = useIsNavigating();
51
+ const menuItems = useMemo(() => composeMenu(MENU_MODULES, {canAccess}), [canAccess]);
52
+ //#if auth
53
+ const {session, signOut} = useAccount();
54
+ const {pathname, search} = useLocation();
55
+ const navigate = useNavigate();
56
+ const [isSigningOut, setIsSigningOut] = useState(false);
57
+
58
+ // salir a propósito: a iniciar sesión sin «regresar a», y luego se cierra la sesión
59
+ const leave = async () => {
60
+ setIsSigningOut(true);
61
+ navigate(APP_PATHS.signIn);
62
+ await signOut();
63
+ };
64
+
65
+ // guard clause: sin sesión, a iniciar sesión con la pantalla que se quería abrir
66
+ if (!session) {
67
+ return <Navigate to={withRedirect(APP_PATHS.signIn, `${pathname}${search}`)} replace />;
68
+ }
69
+ //#endif
70
+
71
+ return (
72
+ <AppLayout logo={<AppLogo />} brandCaption={t('caption')} menuItems={menuItems} menuPosition={MENU_POSITION.__MENU_POSITION__}
73
+ isNavigating={isNavigating}
74
+ //#if auth
75
+ user={session.user} profilePath={APP_PATHS.profile} onSignOut={leave} isSigningOut={isSigningOut}
76
+ //#endif
77
+ //#if !darkMode
78
+ showColorSchemeToggle={false}
79
+ //#endif
80
+ //#if pwa
81
+ accountSettings={<InstallAppSetting />}
82
+ //#endif
83
+ >
84
+ <Outlet />
85
+ </AppLayout>
86
+ );
87
+ };
@@ -0,0 +1,51 @@
1
+ // Las rutas de la app: AppProviders por fuera (conecta el framework), las pantallas sin marco (publicRoutes: entrar, «¿olvidó
2
+ // su contraseña?») y las de cada módulo dentro del marco (AppShell).
3
+ //
4
+ // Las rutas no se escriben aquí: cada módulo las declara en su routes.js y se descubren solas, cada grupo con el permiso del
5
+ // menu.js de su módulo (withAccess: quien no puede ve la página de «sin permiso»). Módulo nuevo = cero ediciones aquí.
6
+ //
7
+ // Cada pantalla viaja en su propio archivo (lazy): si se publicó otra versión con la pestaña abierta, withChunkRecovery
8
+ // recarga una vez, y si una pantalla truena RouteErrorScreen dice qué pasó, con su botón para recargar.
9
+ import {createBrowserRouter} from 'react-router';
10
+ import {ERROR_PAGE_KIND, ErrorPage, FullPageLoader} from '@stackcraftmx/calcita';
11
+ import {RouteErrorScreen, withAccess, withChunkRecovery} from '@stackcraftmx/calcita/react-router';
12
+
13
+ import {AppProviders} from '@/app/AppProviders.jsx';
14
+ import {AppShell} from '@/app/AppShell.jsx';
15
+ import {APP_PATHS, ROUTER_BASENAME} from '@/core';
16
+
17
+ const ROUTE_MODULES = import.meta.glob('@/modules/*/routes.js', {eager: true});
18
+ const MENU_MODULES = import.meta.glob('@/modules/*/menu.js', {eager: true});
19
+
20
+ // el grupo de rutas de cada módulo, con la regla de su menu.js (el que está junto a su routes.js)
21
+ const moduleRouteGroups = Object.entries(ROUTE_MODULES)
22
+ .filter(([, routeModule]) => routeModule.routes?.length)
23
+ .map(([routesPath, routeModule]) => {
24
+ const menuModule = MENU_MODULES[routesPath.replace(/routes\.js$/, 'menu.js')];
25
+ return withAccess(menuModule?.access, routeModule.routes);
26
+ });
27
+
28
+ // las pantallas sin el marco (entrar…)
29
+ const publicRoutes = Object.values(ROUTE_MODULES).flatMap((routeModule) => routeModule.publicRoutes ?? []);
30
+
31
+ export const appRouter = createBrowserRouter([
32
+ {
33
+ path: APP_PATHS.home,
34
+ element: <AppProviders />,
35
+ // lo que se ve al abrir la app directo en una pantalla, mientras se descarga (las rutas son lazy)
36
+ HydrateFallback: FullPageLoader,
37
+ ErrorBoundary: RouteErrorScreen,
38
+ children: withChunkRecovery([
39
+ ...publicRoutes,
40
+ {
41
+ element: <AppShell />,
42
+ children: [
43
+ ...moduleRouteGroups,
44
+ {path: '*', element: <ErrorPage kind={ERROR_PAGE_KIND.notFound} />},
45
+ ],
46
+ },
47
+ ]),
48
+ },
49
+ // detrás de un proxy con prefijo (ASSET_URL), el router lo quita al leer la dirección y lo pone en cada liga: las pantallas
50
+ // siguen escribiendo sus rutas desde la raíz ('/contacts')
51
+ ], {basename: ROUTER_BASENAME});
@@ -0,0 +1,27 @@
1
+ // Lo que la app le pasa a ToolkitProvider y que no cambia mientras corre.
2
+ import {publicUrlOf} from '@/core';
3
+
4
+ /** El nombre de la app: en la barra y en la pestaña, después del título de cada pantalla («Contactos | __APP_TITLE__»). */
5
+ export const APP_NAME = '__APP_TITLE__';
6
+
7
+ /** La zona del producto: las fechas y horas se pintan en la hora de la Ciudad de México, se vean desde donde se vean. */
8
+ export const PRODUCT_TIME_ZONE = 'America/Mexico_City';
9
+
10
+ /** La moneda de los montos (ISO 4217). */
11
+ export const PRODUCT_CURRENCY = 'MXN';
12
+
13
+ /**
14
+ * La versión del front que corre en esta pestaña: la pone el build (VITE_BUILD_ID, de vite.config.js, la misma que escribe
15
+ * en version.json). En desarrollo no hay build: queda vacía y no se compara nada.
16
+ */
17
+ export const APP_BUILD_ID = import.meta.env.VITE_BUILD_ID ?? '';
18
+
19
+ /**
20
+ * Dónde está el archivo con la versión publicada: la app lo vuelve a leer al abrirla y cada tanto (usePublishedBuildWatch).
21
+ * Solo en lo construido, con el prefijo si la app vive detrás de un proxy. OJO: el servidor no debe guardarlo (Cache-Control:
22
+ * no-cache, como el index.html).
23
+ */
24
+ export const BUILD_VERSION_URL = import.meta.env.PROD ? publicUrlOf('version.json') : null;
25
+
26
+ /** Los idiomas que ofrece la app; el primero es el de arranque. */
27
+ export const APP_LANGUAGES = Object.freeze({spanish: 'es', english: 'en'});
@@ -0,0 +1,15 @@
1
+ // Todos los textos de la app: los de la barra y los de cada módulo, juntos por idioma.
2
+ //
3
+ // Los de los módulos se descubren solos (modules/<módulo>/*Texts.js): módulo nuevo = cero ediciones aquí.
4
+ //
5
+ // OJO: constante de módulo. ToolkitProvider vuelve a configurar todo cuando cambian sus textos; un objeto nuevo en cada
6
+ // pintada lo haría en cada pintada.
7
+ import {combineTexts} from '@/app/combineTexts.js';
8
+ import {shellTexts} from '@/app/shellTexts.js';
9
+
10
+ const MODULE_TEXT_FILES = import.meta.glob('@/modules/*/*Texts.js', {eager: true});
11
+
12
+ // cada archivo de textos exporta un solo objeto {es, en}
13
+ const moduleTexts = Object.values(MODULE_TEXT_FILES).flatMap((textFile) => Object.values(textFile));
14
+
15
+ export const APP_TEXTS = combineTexts([shellTexts, ...moduleTexts]);
@@ -0,0 +1,31 @@
1
+ // Junta los textos de cada módulo en el objeto `texts` que recibe ToolkitProvider: {es: {namespace: {...}}, en: {...}}.
2
+ //
3
+ // Cada módulo trae sus archivos de textos (*Texts.js) con su namespace. Aquí se juntan por idioma y por namespace; dos
4
+ // archivos con el mismo namespace suman sus llaves, y si repiten una llave truena: un texto pisado en silencio saldría en
5
+ // la pantalla equivocada.
6
+ //
7
+ // Funciones puras, sin React: function (regla de la casa).
8
+
9
+ /**
10
+ * @param {Array<Record<string, Record<string, object>>>} textFiles los textos de cada archivo, por idioma
11
+ * @returns {Record<string, Record<string, object>>} todos los textos, por idioma y namespace
12
+ */
13
+ export function combineTexts(textFiles) {
14
+ const combined = {};
15
+
16
+ for (const fileTexts of textFiles) {
17
+ for (const [language, namespaces] of Object.entries(fileTexts)) {
18
+ combined[language] ??= {};
19
+ for (const [namespace, keys] of Object.entries(namespaces)) {
20
+ const currentKeys = combined[language][namespace] ?? {};
21
+ const repeatedKey = Object.keys(keys).find((key) => Object.hasOwn(currentKeys, key));
22
+ if (repeatedKey) {
23
+ throw new Error(`Dos archivos definen el texto «${namespace}:${repeatedKey}» en «${language}»`);
24
+ }
25
+ combined[language][namespace] = {...currentKeys, ...keys};
26
+ }
27
+ }
28
+ }
29
+
30
+ return combined;
31
+ }
@@ -0,0 +1,19 @@
1
+ // i18next con los textos de la app (los de cada módulo, juntos en APP_TEXTS) como sus recursos: los textos se escriben en
2
+ // los *Texts.js de cada módulo, como siempre, y Calcita los lee de esta instancia (translateWithI18next en AppProviders).
3
+ // Lo que la app no tenga (los textos de las tablas, de los diálogos, de las validaciones) sale de los textos de Calcita.
4
+ import i18next from 'i18next';
5
+
6
+ import {APP_LANGUAGES} from '@/app/appSettings.js';
7
+ import {APP_TEXTS} from '@/app/appTexts.js';
8
+
9
+ export const i18n = i18next.createInstance();
10
+
11
+ // sin esperar: con los recursos ya en memoria (initAsync: false) queda lista al terminar init
12
+ i18n.init({
13
+ resources: APP_TEXTS,
14
+ lng: APP_LANGUAGES.spanish,
15
+ fallbackLng: APP_LANGUAGES.spanish,
16
+ // React ya escapa lo que pinta: si i18next también, un «<» saldría como «&lt;»
17
+ interpolation: {escapeValue: false},
18
+ initAsync: false,
19
+ });
@@ -0,0 +1,16 @@
1
+ // Los textos del marco de la app (namespace shell): el renglón bajo el nombre y los títulos de las secciones del menú.
2
+ // Un módulo elige su sección en su menu.js (sectionKey: 'shell:sections.operation').
3
+ export const shellTexts = {
4
+ es: {
5
+ shell: {
6
+ caption: 'Panel de administración',
7
+ sections: {operation: 'Operación'},
8
+ },
9
+ },
10
+ en: {
11
+ shell: {
12
+ caption: 'Admin panel',
13
+ sections: {operation: 'Operation'},
14
+ },
15
+ },
16
+ };
@@ -0,0 +1,14 @@
1
+ // El logo de la app (public/favicon.svg) en la barra y en las pantallas de entrar: cámbielo por el suyo aquí, en un solo
2
+ // lugar.
3
+ //
4
+ // Genérico, sin estado: function (regla de la casa).
5
+ import Box from '@mui/material/Box';
6
+
7
+ import {publicUrlOf} from '@/core/publicPaths.js';
8
+
9
+ // el tamaño que piden la barra y la tarjeta de entrar
10
+ const LOGO_SIZE_PIXELS = 28;
11
+
12
+ export function AppLogo() {
13
+ return <Box component="img" src={publicUrlOf('favicon.svg')} alt="" sx={{width: LOGO_SIZE_PIXELS, height: LOGO_SIZE_PIXELS}} />;
14
+ }
@@ -0,0 +1,36 @@
1
+ // La cuenta de la app: entrar (con su segundo paso), «¿Olvidó su contraseña?», elegir una contraseña nueva, Mi perfil y su
2
+ // seguridad ya vienen hechos en Calcita (@stackcraftmx/calcita/account). Lo ÚNICO de la app es este conector: las llamadas
3
+ // a su backend.
4
+ //
5
+ // - Sin VITE_API_URL (en .env.local): la DEMOSTRACIÓN, todo en este navegador, para trabajar sin backend.
6
+ // - Con VITE_API_URL: el backend de verdad. Si sigue el contrato REST de Calcita (las rutas y las respuestas están en el
7
+ // README de Calcita, «La cuenta completa: conectar su backend»), no hay nada más que hacer. Si alguna ruta o respuesta es
8
+ // distinta, se cambia solo esa función:
9
+ //
10
+ // const restConnector = createRestAccountConnector(apiClient, {paths: {session: '/me'}});
11
+ // export const accountConnector = {...restConnector, signIn: async (credentials) => …};
12
+ import {createRestAccountConnector} from '@stackcraftmx/calcita/account';
13
+ import {createDemoAccountConnector} from '@stackcraftmx/calcita/account-demo';
14
+ import QRCode from 'qrcode';
15
+
16
+ import {apiClient} from '@/core/apiClient.js';
17
+
18
+ /** La persona de la demostración (datos inventados): con su correo y cualquier contraseña se entra. */
19
+ export const DEMO_USER = Object.freeze({
20
+ id: 'user-demo', name: 'Ana Martínez Ruiz', email: 'ana.martinez@ejemplo.com', subtitle: 'Administración', phone: '',
21
+ });
22
+
23
+ /** Sin dirección del API, la app trabaja con la demostración. */
24
+ export const USES_DEMO_ACCOUNT = !import.meta.env.VITE_API_URL;
25
+
26
+ export const accountConnector = USES_DEMO_ACCOUNT
27
+ ? createDemoAccountConnector({
28
+ user: DEMO_USER,
29
+ labels: ['Administración'],
30
+ // la sesión de la demostración se recuerda en este navegador, con el nombre de la app para no chocar con otra
31
+ storageKey: '__APP_SLUG__:session',
32
+ issuer: '__APP_TITLE__',
33
+ // el QR que escanea la app autenticadora
34
+ toQrImageUrl: (otpauthUrl) => QRCode.toDataURL(otpauthUrl, {margin: 1}),
35
+ })
36
+ : createRestAccountConnector(apiClient);
@@ -0,0 +1,15 @@
1
+ // La petición de la casa para hablar con el backend de verdad (createApiClient de Calcita): manda el idioma, convierte los
2
+ // errores en ApiError (RFC 9457) con su mensaje en el idioma de la persona y reconoce la sesión vencida, en un solo lugar.
3
+ //
4
+ // Hoy los *Api.js de los módulos llaman al servidor de mentira (src/fakeServer). Para conectar el de verdad, cada uno
5
+ // cambia su llamada por una de estas, sin tocar la pantalla:
6
+ //
7
+ // export const loadContacts = (signal) => apiClient.get('/contacts', {signal});
8
+ // export const addContact = (values) => apiClient.post('/contacts', values);
9
+ //
10
+ // La dirección del API sale de VITE_API_URL (en .env.local, que no se sube al repo); sin ella, /api del mismo servidor.
11
+ import {createApiClient} from '@stackcraftmx/calcita';
12
+
13
+ const DEFAULT_API_URL = '/api';
14
+
15
+ export const apiClient = createApiClient({baseUrl: import.meta.env.VITE_API_URL ?? DEFAULT_API_URL});
@@ -0,0 +1,11 @@
1
+ // Las rutas que conocen varios módulos (la barra, la guardia de la sesión, «Mi perfil»). Las de un solo módulo viven en su
2
+ // routes.js.
3
+ export const APP_PATHS = Object.freeze({
4
+ home: '/',
5
+ //#if auth
6
+ signIn: '/sign-in',
7
+ forgotPassword: '/forgot-password',
8
+ resetPassword: '/reset-password',
9
+ profile: '/profile',
10
+ //#endif
11
+ });
@@ -0,0 +1,9 @@
1
+ // La puerta de core: lo que comparten dos o más módulos. Desde afuera se importa de aquí (@/core); adentro de core, por
2
+ // ruta. Core no importa módulos ni app/: si algo lo usan dos módulos, sube aquí.
3
+ export {APP_PATHS} from '@/core/appPaths.js';
4
+ export {AppLogo} from '@/core/AppLogo.jsx';
5
+ export {ROUTER_BASENAME, publicUrlOf} from '@/core/publicPaths.js';
6
+ export {apiClient} from '@/core/apiClient.js';
7
+ //#if auth
8
+ export {DEMO_USER, USES_DEMO_ACCOUNT, accountConnector} from '@/core/accountConnector.js';
9
+ //#endif
@@ -0,0 +1,24 @@
1
+ // Dónde vive la app: en la raíz o detrás de un proxy con prefijo (miempresa.com/ventas/, sin subdominio). El prefijo se da UNA
2
+ // vez, al construir, con ASSET_URL=/ventas (vite.config.js), la misma línea que lleva el .env del servidor. Vite lo deja en
3
+ // import.meta.env.BASE_URL ('/' o '/ventas/') y de aquí lo toman el router (basename), las imágenes de public/ y version.json.
4
+ //
5
+ // OJO: una dirección escrita a mano desde la raíz ('/favicon.svg', '/version.json') funciona en la raíz y se rompe detrás del
6
+ // proxy: se arma con publicUrlOf.
7
+ //
8
+ // Funciones puras, no renderizan: function (regla de la casa).
9
+
10
+ // en las pruebas de node no hay import.meta.env (es de Vite): ahí, la raíz
11
+ const APP_BASE_URL = import.meta.env?.BASE_URL ?? '/';
12
+
13
+ /** El prefijo como lo pide el router: '/ventas' (sin la diagonal del final) o '/'. */
14
+ export const ROUTER_BASENAME = APP_BASE_URL.replace(/\/$/, '') || '/';
15
+
16
+ /**
17
+ * La dirección de un archivo de public/ con el prefijo: 'favicon.svg' → '/ventas/favicon.svg'.
18
+ *
19
+ * @param {string} path la ruta dentro de public/, sin la diagonal del inicio
20
+ * @returns {string}
21
+ */
22
+ export function publicUrlOf(path) {
23
+ return `${APP_BASE_URL}${path}`;
24
+ }
@@ -0,0 +1,40 @@
1
+ // La espera de una petición de verdad: sin ella, todo llega al instante y no se ven los estados de carga (el esqueleto de
2
+ // la lista, el botón ocupado).
3
+ //
4
+ // Respeta la cancelación (AbortSignal) igual que fetch: si la pantalla se cierra a media carga y cancela su consulta, la
5
+ // espera se corta con un AbortError.
6
+ //
7
+ // Funciones puras, sin React: function (regla de la casa).
8
+
9
+ /** Lo que tarda una consulta normal del servidor de mentira. */
10
+ export const NETWORK_DELAY_MILLISECONDS = 400;
11
+
12
+ /**
13
+ * Espera como si la respuesta viniera de la red.
14
+ *
15
+ * @param {number} milliseconds
16
+ * @param {AbortSignal} [signal]
17
+ * @returns {Promise<void>} se cumple al terminar la espera; falla con AbortError si la cancelan
18
+ */
19
+ export function waitLikeNetwork(milliseconds, signal) {
20
+ return new Promise((resolve, reject) => {
21
+ const abortError = () => new DOMException('La pantalla canceló la petición', 'AbortError');
22
+ // guard clause: ya venía cancelada
23
+ if (signal?.aborted) {
24
+ reject(abortError());
25
+ return;
26
+ }
27
+
28
+ const timer = setTimeout(() => {
29
+ signal?.removeEventListener('abort', cancel);
30
+ resolve();
31
+ }, milliseconds);
32
+
33
+ function cancel() {
34
+ clearTimeout(timer);
35
+ reject(abortError());
36
+ }
37
+
38
+ signal?.addEventListener('abort', cancel, {once: true});
39
+ });
40
+ }
@@ -0,0 +1,20 @@
1
+ // Los mensajes del servidor de mentira en el idioma de la app, como los mandaría un backend que lee el idioma de la
2
+ // petición (Accept-Language). Cada servidor de mentira trae sus mensajes junto a su código ({es, en}): no hay una lista
3
+ // central que todos editen.
4
+ //
5
+ // Funciones puras, sin React: function (regla de la casa).
6
+ import {toolkitSettings} from '@stackcraftmx/calcita';
7
+
8
+ const DEFAULT_LANGUAGE = 'es';
9
+
10
+ /**
11
+ * Un mensaje en el idioma activo, con sus {{variables}} puestas.
12
+ *
13
+ * @param {Record<string, string>} texts el mismo mensaje en cada idioma: {es: 'Se agregó «{{name}}».', en: '…'}
14
+ * @param {Record<string, string|number>} [values]
15
+ * @returns {string}
16
+ */
17
+ export function serverTextOf(texts, values = {}) {
18
+ const text = texts[toolkitSettings().language] ?? texts[DEFAULT_LANGUAGE];
19
+ return text.replace(/\{\{(\w+)\}\}/g, (placeholder, name) => String(values[name] ?? placeholder));
20
+ }
@@ -0,0 +1,24 @@
1
+ // La entrada de la app: el tema por fuera de todo y el router adentro. Lo demás del framework se conecta en AppProviders
2
+ // (la ruta raíz), porque necesita estar dentro del router.
3
+ import {StrictMode} from 'react';
4
+ import {createRoot} from 'react-dom/client';
5
+ import {RouterProvider} from 'react-router/dom';
6
+ import CssBaseline from '@mui/material/CssBaseline';
7
+ import {ThemeProvider} from '@mui/material/styles';
8
+ import {buildYupLocale} from '@stackcraftmx/calcita/forms';
9
+
10
+ import {appRouter} from '@/app/appRouter.jsx';
11
+ import {appTheme} from '@/app/appTheme.js';
12
+
13
+ // los mensajes de yup como llaves de texto, para que salgan en el idioma activo. Una sola vez y antes de armar el primer
14
+ // esquema (por eso los esquemas de los formularios se arman dentro de una función y no al importar su archivo)
15
+ buildYupLocale();
16
+
17
+ createRoot(document.getElementById('root')).render(
18
+ <StrictMode>
19
+ <ThemeProvider theme={appTheme}>
20
+ <CssBaseline />
21
+ <RouterProvider router={appRouter} />
22
+ </ThemeProvider>
23
+ </StrictMode>,
24
+ );
@@ -0,0 +1,14 @@
1
+ // «¿Olvidó su contraseña?»: ForgotPasswordScreen de Calcita; lo del servidor sale del conector de la cuenta.
2
+ //
3
+ // Lo renderiza la app: arrow (regla de la casa).
4
+ import {ForgotPasswordScreen} from '@stackcraftmx/calcita/account';
5
+
6
+ import {APP_PATHS, AppLogo} from '@/core';
7
+
8
+ export const ForgotPasswordPage = () => (
9
+ <ForgotPasswordScreen logo={<AppLogo />} signInPath={APP_PATHS.signIn}
10
+ //#if !darkMode
11
+ showColorSchemeToggle={false}
12
+ //#endif
13
+ />
14
+ );
@@ -0,0 +1,15 @@
1
+ // Elegir una contraseña nueva desde el enlace del correo (/reset-password?token=…): ResetPasswordScreen de Calcita; lo del
2
+ // servidor sale del conector de la cuenta. El backend manda en el correo la liga a esta pantalla con su clave.
3
+ //
4
+ // Lo renderiza la app: arrow (regla de la casa).
5
+ import {ResetPasswordScreen} from '@stackcraftmx/calcita/account';
6
+
7
+ import {APP_PATHS, AppLogo} from '@/core';
8
+
9
+ export const ResetPasswordPage = () => (
10
+ <ResetPasswordScreen logo={<AppLogo />} signInPath={APP_PATHS.signIn} forgotPasswordPath={APP_PATHS.forgotPassword}
11
+ //#if !darkMode
12
+ showColorSchemeToggle={false}
13
+ //#endif
14
+ />
15
+ );
@@ -0,0 +1,29 @@
1
+ // Iniciar sesión: SignInScreen de Calcita (la contraseña y, si la cuenta tiene verificación en dos pasos, el segundo paso).
2
+ // Lo del servidor sale del conector de la cuenta (core/accountConnector.js).
3
+ //
4
+ // Mientras la app use la demostración, abajo sale «Entrar con la cuenta de ejemplo»: entra sin escribir nada. Con el
5
+ // backend de verdad (VITE_API_URL) ya no sale.
6
+ //
7
+ // Lo renderiza la app: arrow (regla de la casa).
8
+ import Button from '@mui/material/Button';
9
+ import {useToolkitTranslation} from '@stackcraftmx/calcita';
10
+ import {SignInScreen} from '@stackcraftmx/calcita/account';
11
+
12
+ import {APP_PATHS, AppLogo, DEMO_USER, USES_DEMO_ACCOUNT} from '@/core';
13
+
14
+ // la demostración no revisa contraseñas: cualquiera sirve para la persona de ejemplo
15
+ const DEMO_PASSWORD = 'demo';
16
+
17
+ /** El botón de la demostración: entra por el mismo camino del formulario (y el mismo segundo paso). */
18
+ const DemoSignInButton = ({signIn}) => {
19
+ const {t} = useToolkitTranslation('authScreens');
20
+ return <Button variant="outlined" fullWidth onClick={() => signIn({email: DEMO_USER.email, password: DEMO_PASSWORD})}>{t('demo')}</Button>;
21
+ };
22
+
23
+ export const SignInPage = () => (
24
+ <SignInScreen logo={<AppLogo />} forgotPasswordPath={APP_PATHS.forgotPassword}
25
+ //#if !darkMode
26
+ showColorSchemeToggle={false}
27
+ //#endif
28
+ footer={USES_DEMO_ACCOUNT ? ({signIn}) => <DemoSignInButton signIn={signIn} /> : undefined} />
29
+ );
@@ -0,0 +1,6 @@
1
+ // Los textos propios de las pantallas de entrar (namespace authScreens). Los de las pantallas (títulos, campos, segundo
2
+ // paso) ya vienen en Calcita; para cambiar uno, se escribe aquí con su misma llave en su namespace (auth, account…).
3
+ export const authTexts = {
4
+ es: {authScreens: {demo: 'Entrar con la cuenta de ejemplo'}},
5
+ en: {authScreens: {demo: 'Sign in with the sample account'}},
6
+ };
@@ -0,0 +1,11 @@
1
+ // Las pantallas de entrar: van FUERA del marco (publicRoutes), porque quien llega aquí todavía no tiene sesión.
2
+ import {APP_PATHS} from '@/core';
3
+
4
+ export const routes = [];
5
+
6
+ // lazy: cada pantalla se descarga hasta que alguien la abre
7
+ export const publicRoutes = [
8
+ {path: APP_PATHS.signIn, lazy: async () => ({Component: (await import('@/modules/auth/SignInPage.jsx')).SignInPage})},
9
+ {path: APP_PATHS.forgotPassword, lazy: async () => ({Component: (await import('@/modules/auth/ForgotPasswordPage.jsx')).ForgotPasswordPage})},
10
+ {path: APP_PATHS.resetPassword, lazy: async () => ({Component: (await import('@/modules/auth/ResetPasswordPage.jsx')).ResetPasswordPage})},
11
+ ];