@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,50 @@
1
+ // __FormName__ (formik + yup): las reglas en __formName__Schema.js y los textos en __formName__Texts.js.
2
+ //
3
+ // La pantalla dice qué hacer con los datos (onSubmit). Si el servidor dice que no (RFC 9457), el aviso sale arriba del
4
+ // formulario y lo de cada campo, en su campo (applyServerProblem). Al guardar, el formulario se vacía y avisa (onSaved).
5
+ //
6
+ // Lo renderiza la app: arrow (regla de la casa).
7
+ import {useMemo} from 'react';
8
+ import Stack from '@mui/material/Stack';
9
+ import {useToolkitTranslation} from '@stackcraftmx/calcita';
10
+ import {Form, FormProblemAlert, FormTextField, Formik, SubmitButton, applyServerProblem} from '@stackcraftmx/calcita/forms';
11
+
12
+ import {__FORM_NAME___INITIAL_VALUES, build__FormName__Schema} from '@/modules/__module__/__formName__Schema.js';
13
+
14
+ // los renglones de las notas al abrir
15
+ const NOTES_MIN_ROWS = 3;
16
+
17
+ /**
18
+ * @param {object} props
19
+ * @param {(values: {name: string, notes: string}) => Promise<{message: string}>} props.onSubmit guarda; truena con el
20
+ * ApiError si el servidor dice que no
21
+ * @param {(message: string) => void} [props.onSaved] ya se guardó: el aviso del servidor
22
+ */
23
+ export const __FormName__ = ({onSubmit, onSaved}) => {
24
+ const {t} = useToolkitTranslation('__module__');
25
+ // el esquema se arma al pintar: yup toma sus mensajes al armarlo
26
+ const schema = useMemo(() => build__FormName__Schema(), []);
27
+
28
+ const submit = async (values, formikHelpers) => {
29
+ try {
30
+ const response = await onSubmit(values);
31
+ formikHelpers.resetForm();
32
+ onSaved?.(response.message);
33
+ } catch (error) {
34
+ applyServerProblem(error, {...formikHelpers, values});
35
+ }
36
+ };
37
+
38
+ return (
39
+ <Formik initialValues={__FORM_NAME___INITIAL_VALUES} validationSchema={schema} onSubmit={submit}>
40
+ <Form noValidate>
41
+ <Stack spacing={2}>
42
+ <FormProblemAlert />
43
+ <FormTextField name="name" label={t('__formName__.name')} />
44
+ <FormTextField name="notes" label={t('__formName__.notes')} helperText={t('__formName__.notesHelp')} multiline minRows={NOTES_MIN_ROWS} />
45
+ <SubmitButton sx={{alignSelf: 'flex-start'}}>{t('__formName__.submit')}</SubmitButton>
46
+ </Stack>
47
+ </Form>
48
+ </Formik>
49
+ );
50
+ };
@@ -0,0 +1,53 @@
1
+ // __FormName__ (react-hook-form + yup): las reglas en __formName__Schema.js y los textos en __formName__Texts.js.
2
+ //
3
+ // La pantalla dice qué hacer con los datos (onSubmit). Si el servidor dice que no (RFC 9457), el aviso sale arriba del
4
+ // formulario y lo de cada campo, en su campo (applyServerProblem). Al guardar, el formulario se vacía y avisa (onSaved).
5
+ //
6
+ // Lo renderiza la app: arrow (regla de la casa).
7
+ import {useMemo} from 'react';
8
+ import Stack from '@mui/material/Stack';
9
+ import {useToolkitTranslation} from '@stackcraftmx/calcita';
10
+ import {
11
+ FormProblemAlert, FormProvider, FormTextField, SubmitButton, applyServerProblem, useForm, yupResolver,
12
+ } from '@stackcraftmx/calcita/react-hook-form';
13
+
14
+ import {__FORM_NAME___INITIAL_VALUES, build__FormName__Schema} from '@/modules/__module__/__formName__Schema.js';
15
+
16
+ // los renglones de las notas al abrir
17
+ const NOTES_MIN_ROWS = 3;
18
+
19
+ /**
20
+ * @param {object} props
21
+ * @param {(values: {name: string, notes: string}) => Promise<{message: string}>} props.onSubmit guarda; truena con el
22
+ * ApiError si el servidor dice que no
23
+ * @param {(message: string) => void} [props.onSaved] ya se guardó: el aviso del servidor
24
+ */
25
+ export const __FormName__ = ({onSubmit, onSaved}) => {
26
+ const {t} = useToolkitTranslation('__module__');
27
+ // el esquema se arma al pintar: yup toma sus mensajes al armarlo
28
+ const resolver = useMemo(() => yupResolver(build__FormName__Schema()), []);
29
+ const form = useForm({resolver, defaultValues: __FORM_NAME___INITIAL_VALUES});
30
+
31
+ const submit = form.handleSubmit(async (values) => {
32
+ try {
33
+ const response = await onSubmit(values);
34
+ form.reset();
35
+ onSaved?.(response.message);
36
+ } catch (error) {
37
+ applyServerProblem(error, form);
38
+ }
39
+ });
40
+
41
+ return (
42
+ <FormProvider {...form}>
43
+ <form onSubmit={submit} noValidate>
44
+ <Stack spacing={2}>
45
+ <FormProblemAlert />
46
+ <FormTextField name="name" label={t('__formName__.name')} />
47
+ <FormTextField name="notes" label={t('__formName__.notes')} helperText={t('__formName__.notesHelp')} multiline minRows={NOTES_MIN_ROWS} />
48
+ <SubmitButton sx={{alignSelf: 'flex-start'}}>{t('__formName__.submit')}</SubmitButton>
49
+ </Stack>
50
+ </form>
51
+ </FormProvider>
52
+ );
53
+ };
@@ -0,0 +1,20 @@
1
+ // Las reglas de __FormName__ del lado del navegador (yup). La que protege es la del servidor; esta es para no gastar un
2
+ // viaje en lo obvio.
3
+ //
4
+ // OJO: el esquema es una función y no una constante: yup toma sus mensajes al armarlo, y armado al importar el archivo se
5
+ // adelantaría a buildYupLocale (main.jsx) y saldría en inglés.
6
+ import {Yup} from '@stackcraftmx/calcita/forms';
7
+
8
+ // lo más largo que acepta el servidor
9
+ const NAME_MAX_LENGTH = 120;
10
+ const NOTES_MAX_LENGTH = 500;
11
+
12
+ /** Cómo empieza el formulario: vacío. */
13
+ export const __FORM_NAME___INITIAL_VALUES = Object.freeze({name: '', notes: ''});
14
+
15
+ export function build__FormName__Schema() {
16
+ return Yup.object({
17
+ name: Yup.string().trim().required().max(NAME_MAX_LENGTH),
18
+ notes: Yup.string().trim().max(NOTES_MAX_LENGTH),
19
+ });
20
+ }
@@ -0,0 +1,6 @@
1
+ // Los textos de __FormName__ (namespace __module__, llave __formName__). Los mensajes de las reglas («Escriba…», «Máximo…»)
2
+ // vienen de Calcita.
3
+ export const __formName__Texts = {
4
+ es: {__module__: {__formName__: {name: 'Nombre', notes: 'Notas', notesHelp: 'Opcional.', submit: 'Guardar'}}},
5
+ en: {__module__: {__formName__: {name: 'Name', notes: 'Notes', notesHelp: 'Optional.', submit: 'Save'}}},
6
+ };
@@ -0,0 +1,75 @@
1
+ // __LABEL_ES__: la lista que manda el servidor y el formulario para agregar uno. Es el esqueleto que armó el CLI de Calcita
2
+ // (make:module): cámbielo a lo que pida su pantalla.
3
+ //
4
+ // La pantalla no sabe del servidor: llama a __name__Api.js (hoy el servidor de mentira; mañana el de verdad).
5
+ //
6
+ // Lo renderiza la app: arrow (regla de la casa).
7
+ import {useCallback, useEffect, useState} from 'react';
8
+ import Alert from '@mui/material/Alert';
9
+ import List from '@mui/material/List';
10
+ import ListItem from '@mui/material/ListItem';
11
+ import ListItemText from '@mui/material/ListItemText';
12
+ import Skeleton from '@mui/material/Skeleton';
13
+ import Stack from '@mui/material/Stack';
14
+ import Typography from '@mui/material/Typography';
15
+ import {PageHeading, SectionCard, formatDateTime, toastSuccess, useToolkitTranslation} from '@stackcraftmx/calcita';
16
+
17
+ import {__Name__Form} from '@/modules/__name__/__Name__Form.jsx';
18
+ import {addRecord, loadRecords} from '@/modules/__name__/__name__Api.js';
19
+
20
+ // lo alto del esqueleto mientras llega la lista
21
+ const LOADING_HEIGHT_PIXELS = 160;
22
+ // lo ancho del formulario: un renglón cómodo, no toda la pantalla
23
+ const FORM_MAX_WIDTH = 520;
24
+
25
+ export const __Name__Page = () => {
26
+ const {t} = useToolkitTranslation('__name__');
27
+ // null: todavía no llega
28
+ const [records, setRecords] = useState(null);
29
+ const [loadError, setLoadError] = useState(null);
30
+
31
+ const reload = useCallback((signal) => loadRecords(signal)
32
+ .then((loadedRecords) => {
33
+ setRecords(loadedRecords);
34
+ setLoadError(null);
35
+ })
36
+ // cancelar (la pantalla se cerró a media carga) no es un error que enseñar
37
+ .catch((error) => error.name !== 'AbortError' && setLoadError(error.message)), []);
38
+
39
+ useEffect(() => {
40
+ const controller = new AbortController();
41
+ reload(controller.signal);
42
+ return () => controller.abort();
43
+ }, [reload]);
44
+
45
+ // el formulario ya guardó: el aviso del servidor y la lista al día
46
+ const showSaved = (message) => {
47
+ toastSuccess(message);
48
+ reload();
49
+ };
50
+
51
+ return (
52
+ <Stack spacing={3}>
53
+ <PageHeading title={t('page.title')} description={t('page.description')} />
54
+ <SectionCard title={t('page.formTitle')}>
55
+ <Stack sx={{maxWidth: FORM_MAX_WIDTH}}>
56
+ <__Name__Form onSubmit={addRecord} onSaved={showSaved} />
57
+ </Stack>
58
+ </SectionCard>
59
+ <SectionCard title={t('page.listTitle')}>
60
+ {loadError && <Alert severity="error">{loadError}</Alert>}
61
+ {!records && !loadError && <Skeleton variant="rounded" height={LOADING_HEIGHT_PIXELS} />}
62
+ {records?.length === 0 && <Typography variant="body2" color="text.secondary">{t('page.empty')}</Typography>}
63
+ {records?.length > 0 && (
64
+ <List disablePadding aria-label={t('page.listTitle')}>
65
+ {records.map((record) => (
66
+ <ListItem key={record.id} divider disableGutters>
67
+ <ListItemText primary={record.name} secondary={record.notes || formatDateTime(record.createdAt)} />
68
+ </ListItem>
69
+ ))}
70
+ </List>
71
+ )}
72
+ </SectionCard>
73
+ </Stack>
74
+ );
75
+ };
@@ -0,0 +1,39 @@
1
+ // Las llamadas de __LABEL_ES__: la ÚNICA puerta de sus pantallas al servidor. Hoy van al servidor de mentira
2
+ // (src/fakeServer/__name__Server.js); con backend, cada una cambia por su petición con apiClient (core) sin tocar las
3
+ // pantallas:
4
+ //
5
+ // export const loadRecords = async (signal) => (await apiClient.get('/__kebab__', {signal})).map(recordOf);
6
+ //
7
+ // Aquí también se cambia la forma de los datos: el API manda snake_case (created_at) y las pantallas usan camelCase.
8
+ //
9
+ // Funciones que no renderizan: function (regla de la casa).
10
+ import {newIdentifier} from '@stackcraftmx/calcita';
11
+
12
+ import {createRecord, listRecords} from '@/fakeServer/__name__Server.js';
13
+
14
+ /** Un registro como lo usan las pantallas. */
15
+ function recordOf(record) {
16
+ return {id: record.id, name: record.name, notes: record.notes, createdAt: record.created_at};
17
+ }
18
+
19
+ /**
20
+ * La lista, del más nuevo al más viejo.
21
+ *
22
+ * @param {AbortSignal} [signal]
23
+ * @returns {Promise<Array<{id: string, name: string, notes: string, createdAt: string}>>}
24
+ */
25
+ export async function loadRecords(signal) {
26
+ return (await listRecords(signal)).map(recordOf);
27
+ }
28
+
29
+ /**
30
+ * Agrega uno. El id lo pone el navegador (newIdentifier: UUID v7, se ordena por fecha). Truena con el ApiError si el
31
+ * servidor dice que no.
32
+ *
33
+ * @param {{name: string, notes: string}} values
34
+ * @returns {Promise<{message: string}>} el aviso del servidor, ya en el idioma de la persona
35
+ */
36
+ export async function addRecord(values) {
37
+ const response = await createRecord({id: newIdentifier(), ...values});
38
+ return {message: response.message};
39
+ }
@@ -0,0 +1,27 @@
1
+ // Los textos de __LABEL_ES__ (namespace __name__). Los de su formulario van en __name__FormTexts.js, en el mismo namespace.
2
+ export const __name__Texts = {
3
+ es: {
4
+ __name__: {
5
+ menu: {label: '__LABEL_ES__', description: 'La lista y el formulario para agregar.'},
6
+ page: {
7
+ title: '__LABEL_ES__',
8
+ description: 'El esqueleto que armó el CLI de Calcita: la lista que manda el servidor y el formulario para agregar.',
9
+ formTitle: 'Agregar',
10
+ listTitle: 'Lista',
11
+ empty: 'Todavía no hay nada: agregue el primero.',
12
+ },
13
+ },
14
+ },
15
+ en: {
16
+ __name__: {
17
+ menu: {label: '__LABEL_EN__', description: 'The list and the form to add.'},
18
+ page: {
19
+ title: '__LABEL_EN__',
20
+ description: 'The skeleton made by the Calcita CLI: the list sent by the server and the form to add.',
21
+ formTitle: 'Add',
22
+ listTitle: 'List',
23
+ empty: 'Nothing here yet: add the first one.',
24
+ },
25
+ },
26
+ },
27
+ };
@@ -0,0 +1,21 @@
1
+ // La entrada de __LABEL_ES__ en el menú (composeMenu la descubre sola: no hay una lista central que editar).
2
+ //
3
+ // access es la regla de quién lo ve; la misma protege sus rutas (withAccess en app/appRouter.jsx). Sin access, lo ve
4
+ // cualquiera que entre. Por ejemplo, solo con el permiso de verlo: export const access = {ability: '__name__.view'};
5
+ import FolderOutlinedIcon from '@mui/icons-material/FolderOutlined';
6
+
7
+ import {__NAME___PATH} from '@/modules/__name__/routes.js';
8
+
9
+ // el lugar en el menú: los números más chicos van arriba
10
+ export const order = __ORDER__;
11
+
12
+ export function buildMenuItem() {
13
+ return {
14
+ to: __NAME___PATH,
15
+ labelKey: '__name__:menu.label',
16
+ descriptionKey: '__name__:menu.description',
17
+ // el título de su sección en el menú (en app/shellTexts.js); sin sectionKey va arriba, sin sección
18
+ sectionKey: 'shell:sections.operation',
19
+ Icon: FolderOutlinedIcon,
20
+ };
21
+ }
@@ -0,0 +1,7 @@
1
+ // Las rutas de __LABEL_ES__. Cada pantalla viaja en su propio archivo (lazy): se descarga hasta que alguien la abre.
2
+ // «calcita make:page __kebab__ <Pantalla>» agrega aquí la suya.
3
+ export const __NAME___PATH = '/__kebab__';
4
+
5
+ export const routes = [
6
+ {path: __NAME___PATH, lazy: async () => ({Component: (await import('@/modules/__name__/__Name__Page.jsx')).__Name__Page})},
7
+ ];
@@ -0,0 +1,68 @@
1
+ // Lo que respondería el API de __LABEL_ES__: la lista y agregar uno. Datos de mentira en memoria: se pierden al recargar
2
+ // la página. Cada respuesta tiene la forma que tendría el API de verdad (llaves en snake_case y errores RFC 9457 con el
3
+ // mensaje en el idioma de la persona).
4
+ //
5
+ // Funciones del servidor de mentira, sin React: function (regla de la casa).
6
+ import {ApiError} from '@stackcraftmx/calcita';
7
+
8
+ import {NETWORK_DELAY_MILLISECONDS, waitLikeNetwork} from '@/fakeServer/networkDelay.js';
9
+ import {serverTextOf} from '@/fakeServer/serverText.js';
10
+
11
+ const HTTP_STATUS = Object.freeze({conflict: 409, unprocessable: 422});
12
+ const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
13
+ const MESSAGES = Object.freeze({
14
+ validationTitle: {es: 'Revise los datos', en: 'Check the data'},
15
+ validationDetail: {es: 'Hay campos por corregir.', en: 'Some fields need to be fixed.'},
16
+ nameRequired: {es: 'Escriba el nombre.', en: 'Enter the name.'},
17
+ repeatedTitle: {es: 'Ya está en la lista', en: 'Already on the list'},
18
+ repeated: {es: '«{{name}}» ya está en la lista.', en: '“{{name}}” is already on the list.'},
19
+ created: {es: 'Se agregó «{{name}}».', en: '“{{name}}” was added.'},
20
+ });
21
+
22
+ /** La fecha de hace unos días, como texto ISO (UTC): los ejemplos siempre se ven recientes. */
23
+ function daysAgo(days) {
24
+ return new Date(Date.now() - days * MILLISECONDS_PER_DAY).toISOString();
25
+ }
26
+
27
+ let records = [
28
+ {id: '__name__-sample-1', name: 'Primer ejemplo', notes: 'Viene de src/fakeServer/__name__Server.js', created_at: daysAgo(2)},
29
+ {id: '__name__-sample-2', name: 'Segundo ejemplo', notes: '', created_at: daysAgo(1)},
30
+ ];
31
+
32
+ /**
33
+ * GET __kebab__: la lista, del más nuevo al más viejo.
34
+ *
35
+ * @param {AbortSignal} [signal]
36
+ */
37
+ export async function listRecords(signal) {
38
+ await waitLikeNetwork(NETWORK_DELAY_MILLISECONDS, signal);
39
+ return [...records].sort((first, second) => second.created_at.localeCompare(first.created_at));
40
+ }
41
+
42
+ /**
43
+ * POST __kebab__: agrega uno. Sin nombre responde 422 (con el error en su campo); con un nombre que ya está, 409.
44
+ *
45
+ * @param {{id: string, name: string, notes?: string}} input
46
+ */
47
+ export async function createRecord({id, name, notes}) {
48
+ await waitLikeNetwork(NETWORK_DELAY_MILLISECONDS);
49
+ const cleanName = name?.trim() ?? '';
50
+ if (!cleanName) {
51
+ throw new ApiError({
52
+ status: HTTP_STATUS.unprocessable,
53
+ problem: {
54
+ title: serverTextOf(MESSAGES.validationTitle), detail: serverTextOf(MESSAGES.validationDetail),
55
+ errors: {name: [serverTextOf(MESSAGES.nameRequired)]},
56
+ },
57
+ });
58
+ }
59
+ if (records.some((record) => record.name.toLowerCase() === cleanName.toLowerCase())) {
60
+ throw new ApiError({
61
+ status: HTTP_STATUS.conflict,
62
+ problem: {title: serverTextOf(MESSAGES.repeatedTitle), detail: serverTextOf(MESSAGES.repeated, {name: cleanName})},
63
+ });
64
+ }
65
+ const record = {id, name: cleanName, notes: notes?.trim() ?? '', created_at: new Date().toISOString()};
66
+ records = [...records, record];
67
+ return {record, message: serverTextOf(MESSAGES.created, {name: cleanName})};
68
+ }
@@ -0,0 +1,22 @@
1
+ // __PAGE_LABEL_ES__ (en __module__): la pantalla que armó el CLI de Calcita (make:page). Su ruta está en routes.js del
2
+ // módulo (__PAGE_NAME___PATH) y sus textos en __pageName__PageTexts.js.
3
+ //
4
+ // Para hablar con el servidor, la pantalla llama a __module__Api.js (la única puerta del módulo), nunca directo.
5
+ //
6
+ // Lo renderiza la app: arrow (regla de la casa).
7
+ import Stack from '@mui/material/Stack';
8
+ import Typography from '@mui/material/Typography';
9
+ import {PageHeading, SectionCard, useToolkitTranslation} from '@stackcraftmx/calcita';
10
+
11
+ export const __PageName__Page = () => {
12
+ const {t} = useToolkitTranslation('__module__');
13
+
14
+ return (
15
+ <Stack spacing={3}>
16
+ <PageHeading title={t('__pageName__Page.title')} description={t('__pageName__Page.description')} />
17
+ <SectionCard title={t('__pageName__Page.sectionTitle')}>
18
+ <Typography variant="body2" color="text.secondary">{t('__pageName__Page.empty')}</Typography>
19
+ </SectionCard>
20
+ </Stack>
21
+ );
22
+ };
@@ -0,0 +1,23 @@
1
+ // Los textos de __PAGE_LABEL_ES__ (namespace __module__, llave __pageName__Page).
2
+ export const __pageName__PageTexts = {
3
+ es: {
4
+ __module__: {
5
+ __pageName__Page: {
6
+ title: '__PAGE_LABEL_ES__',
7
+ description: 'La pantalla que armó el CLI de Calcita.',
8
+ sectionTitle: 'Contenido',
9
+ empty: 'Aquí va lo de esta pantalla.',
10
+ },
11
+ },
12
+ },
13
+ en: {
14
+ __module__: {
15
+ __pageName__Page: {
16
+ title: '__PAGE_LABEL_EN__',
17
+ description: 'The screen made by the Calcita CLI.',
18
+ sectionTitle: 'Content',
19
+ empty: 'What this screen shows goes here.',
20
+ },
21
+ },
22
+ },
23
+ };
@@ -0,0 +1,83 @@
1
+ # __APP_TITLE__
2
+
3
+ App de React + MUI armada con [Calcita](https://www.npmjs.com/package/@stackcraftmx/calcita) (`calcita new`).
4
+
5
+ ## Arrancar
6
+
7
+ ```bash
8
+ pnpm install
9
+ pnpm dev
10
+ ```
11
+
12
+ //#if auth
13
+ Para entrar: «Entrar con la cuenta de ejemplo» (la cuenta de demostración no pide contraseña).
14
+
15
+ ## Conectar la cuenta a su backend
16
+
17
+ Entrar (con su segundo paso), «¿Olvidó su contraseña?», elegir una contraseña nueva, Mi perfil y su seguridad ya vienen
18
+ hechos en Calcita. Lo único de la app es `src/core/accountConnector.js`:
19
+
20
+ - Sin `VITE_API_URL` trabaja con la cuenta de demostración, en este navegador.
21
+ - Con la dirección del API en `.env.local` (`VITE_API_URL=https://api.mi-tienda.com`) usa el backend de verdad. Si el
22
+ backend sigue el contrato REST de Calcita (README de Calcita, «La cuenta completa: conectar su backend»), no hay nada más que
23
+ hacer; si alguna ruta o respuesta es distinta, se cambia solo esa función en `accountConnector.js`.
24
+
25
+ //#endif
26
+ ## Cómo está armado
27
+
28
+ ```
29
+ src/
30
+ main.jsx el tema y el router
31
+ app/ el único lugar donde se conecta el framework: proveedores, marco, rutas, tema y textos
32
+ core/ lo que comparten dos o más módulos (se importa de '@/core')
33
+ fakeServer/ el servidor de mentira: datos en memoria con la forma del API de verdad
34
+ modules/<módulo>/ cada módulo en su carpeta: menu.js, routes.js, sus pantallas, su *Api.js y sus *Texts.js
35
+ ```
36
+
37
+ - **Un módulo nuevo no edita nada fuera de su carpeta**: el menú, las rutas y los textos se descubren solos.
38
+ - **Una pantalla solo habla con el servidor por el `*Api.js` de su módulo.** Hoy esas llamadas van a `src/fakeServer`;
39
+ para conectar el backend de verdad, cada una cambia por su petición con `apiClient` (`src/core/apiClient.js`) y la
40
+ pantalla no se toca.
41
+ - **Textos en español e inglés** en los `*Texts.js` de cada módulo; los de los componentes de Calcita (tablas, diálogos,
42
+ validaciones) ya vienen.
43
+ - **Imports con el alias `@/`** (= `src/`), declarado en `vite.config.js` y en `jsconfig.json`.
44
+
45
+ ## Publicar una versión nueva
46
+
47
+ `pnpm build` deja la app en `dist/`, con `version.json` (la versión de esa compilación). La app publicada lo vuelve a leer al
48
+ abrirla y cada tanto: si ya hay otra, se recarga sola cuando estuvo fuera 15 minutos o más (una pestaña de ayer, la app
49
+ anclada al inicio del iPhone) y, si no, enseña el aviso «Versión nueva» con su botón. Para que funcione, el servidor no
50
+ debe guardar `index.html` ni `version.json` (`Cache-Control: no-cache`); los archivos de `dist/assets/` sí, un año.
51
+
52
+ ## Detrás de un proxy con prefijo
53
+
54
+ Para publicarla en una ruta y no en un subdominio (`miempresa.com/ventas/`), el prefijo se da una vez al construir:
55
+
56
+ ```bash
57
+ ASSET_URL=/ventas pnpm build
58
+ ```
59
+
60
+ Vite le pone el prefijo a sus archivos y a las rutas de `index.html`, el router lo quita al leer la dirección y las pantallas
61
+ siguen escribiendo sus rutas desde la raíz (`/contacts`). Lo de `public/` se pide con `publicUrlOf('favicon.svg')`
62
+ (`src/core/publicPaths.js`), nunca escrito desde la raíz. En el servidor, cada dirección bajo el prefijo que no sea un archivo
63
+ regresa su `index.html`:
64
+
65
+ ```nginx
66
+ location /ventas/ {
67
+ try_files $uri $uri/ /ventas/index.html;
68
+ }
69
+ ```
70
+
71
+ Con otro prefijo se vuelve a construir.
72
+
73
+ ## Crecer la app con el CLI
74
+
75
+ ```bash
76
+ pnpm exec calcita make:module purchase-orders --label-es "Órdenes de compra" --label-en "Purchase orders"
77
+ pnpm exec calcita make:page purchase-orders OrderDetail
78
+ pnpm exec calcita make:form purchase-orders OrderForm
79
+ pnpm exec calcita make:component StatusBadge # en src/core
80
+ pnpm exec calcita make:component OrderTotals --module purchase-orders
81
+ ```
82
+
83
+ Los formularios salen con __FORMS_LIBRARY__ (lo dice `calcita.json`, que guarda lo que se eligió al crear el proyecto).
@@ -0,0 +1,11 @@
1
+ node_modules
2
+ dist
3
+
4
+ # lo del editor y del sistema de cada quien
5
+ .idea
6
+ .vscode
7
+ .DS_Store
8
+
9
+ # las variables de cada quien (la dirección del API, llaves): nunca al repo
10
+ .env.local
11
+ .env.*.local
@@ -0,0 +1,20 @@
1
+ <!doctype html>
2
+ <html lang="es">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
+ //#if pwa
8
+ <!-- para instalarla como app (PWA): el nombre, los íconos y los colores van en el manifiesto; el nombre corto, bajo el
9
+ ícono del iPhone -->
10
+ <link rel="manifest" href="/manifest.webmanifest" />
11
+ <link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
12
+ <meta name="apple-mobile-web-app-title" content="__APP_TITLE__" />
13
+ //#endif
14
+ <title>__APP_TITLE__</title>
15
+ </head>
16
+ <body>
17
+ <div id="root"></div>
18
+ <script type="module" src="/src/main.jsx"></script>
19
+ </body>
20
+ </html>
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@/*": [
5
+ "./src/*"
6
+ ]
7
+ },
8
+ "jsx": "react-jsx",
9
+ "module": "ESNext",
10
+ "moduleResolution": "Bundler",
11
+ "target": "ES2022"
12
+ },
13
+ "include": [
14
+ "src"
15
+ ]
16
+ }
@@ -0,0 +1,5 @@
1
+ # La configuración de pnpm para este proyecto (no es un workspace con varios paquetes).
2
+ # pnpm no deja correr el script de instalación de ningún paquete sin permiso. esbuild sí lo necesita: baja el binario del
3
+ # sistema operativo de quien instala, y Vite construye con él.
4
+ allowBuilds:
5
+ esbuild: true
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><rect width="64" height="64" rx="14" fill="#1E293B"/><path d="M32 14 45 32 32 50 19 32Z" fill="#FFFFFF"/></svg>
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "__APP_TITLE__",
3
+ "short_name": "__APP_TITLE__",
4
+ "id": "./",
5
+ "start_url": "./",
6
+ "scope": "./",
7
+ "display": "standalone",
8
+ "background_color": "#FFFFFF",
9
+ "theme_color": "__PRIMARY_COLOR__",
10
+ "lang": "es-MX",
11
+ "dir": "ltr",
12
+ "icons": [
13
+ {"src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any"},
14
+ {"src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any"},
15
+ {"src": "icons/icon-512-maskable.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable"}
16
+ ]
17
+ }