@stackcraftmx/calcita 0.0.0-stage → 0.23.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.
- package/LICENSE +110 -0
- package/README.md +611 -2
- package/cli/askQuestions.js +63 -0
- package/cli/calcita.js +150 -0
- package/cli/makeComponent.js +50 -0
- package/cli/makeForm.js +68 -0
- package/cli/makeModule.js +78 -0
- package/cli/makePage.js +62 -0
- package/cli/names.js +64 -0
- package/cli/newProject.js +103 -0
- package/cli/packageVersions.js +38 -0
- package/cli/projectAnswers.js +145 -0
- package/cli/projectConfig.js +38 -0
- package/cli/projectFiles.js +126 -0
- package/cli/screenLabels.js +41 -0
- package/cli/templateFiles.js +186 -0
- package/cli/templates/component/core/__ComponentName__.jsx.tpl +23 -0
- package/cli/templates/component/module/__ComponentName__.jsx.tpl +21 -0
- package/cli/templates/form/formik/__FormName__.jsx.tpl +50 -0
- package/cli/templates/form/hookForm/__FormName__.jsx.tpl +53 -0
- package/cli/templates/form/shared/__formName__Schema.js.tpl +20 -0
- package/cli/templates/form/shared/__formName__Texts.js.tpl +6 -0
- package/cli/templates/module/__Name__Page.jsx.tpl +75 -0
- package/cli/templates/module/__name__Api.js.tpl +39 -0
- package/cli/templates/module/__name__Texts.js.tpl +27 -0
- package/cli/templates/module/menu.js.tpl +21 -0
- package/cli/templates/module/routes.js.tpl +7 -0
- package/cli/templates/moduleServer/__name__Server.js.tpl +68 -0
- package/cli/templates/page/__PageName__Page.jsx.tpl +22 -0
- package/cli/templates/page/__pageName__PageTexts.js.tpl +23 -0
- package/cli/templates/project/README.md.tpl +55 -0
- package/cli/templates/project/dot-gitignore.tpl +11 -0
- package/cli/templates/project/index.html.tpl +20 -0
- package/cli/templates/project/jsconfig.json.tpl +16 -0
- package/cli/templates/project/pnpm-workspace.yaml.tpl +5 -0
- package/cli/templates/project/public/favicon.svg +1 -0
- package/cli/templates/project/public/icons/apple-touch-icon.png +0 -0
- package/cli/templates/project/public/icons/icon-192.png +0 -0
- package/cli/templates/project/public/icons/icon-512-maskable.png +0 -0
- package/cli/templates/project/public/icons/icon-512.png +0 -0
- package/cli/templates/project/public/manifest.webmanifest.tpl +17 -0
- package/cli/templates/project/src/app/AppProviders.jsx.tpl +102 -0
- package/cli/templates/project/src/app/AppShell.jsx.tpl +87 -0
- package/cli/templates/project/src/app/appRouter.jsx.tpl +49 -0
- package/cli/templates/project/src/app/appSettings.js.tpl +13 -0
- package/cli/templates/project/src/app/appTexts.js.tpl +15 -0
- package/cli/templates/project/src/app/combineTexts.js.tpl +31 -0
- package/cli/templates/project/src/app/i18n.js.tpl +19 -0
- package/cli/templates/project/src/app/shellTexts.js.tpl +16 -0
- package/cli/templates/project/src/core/AppLogo.jsx.tpl +12 -0
- package/cli/templates/project/src/core/accountConnector.js.tpl +36 -0
- package/cli/templates/project/src/core/apiClient.js.tpl +15 -0
- package/cli/templates/project/src/core/appPaths.js.tpl +11 -0
- package/cli/templates/project/src/core/index.js.tpl +8 -0
- package/cli/templates/project/src/fakeServer/networkDelay.js.tpl +40 -0
- package/cli/templates/project/src/fakeServer/serverText.js.tpl +20 -0
- package/cli/templates/project/src/main.jsx.tpl +24 -0
- package/cli/templates/project/src/modules/auth/ForgotPasswordPage.jsx.tpl +14 -0
- package/cli/templates/project/src/modules/auth/ResetPasswordPage.jsx.tpl +15 -0
- package/cli/templates/project/src/modules/auth/SignInPage.jsx.tpl +29 -0
- package/cli/templates/project/src/modules/auth/authTexts.js.tpl +6 -0
- package/cli/templates/project/src/modules/auth/routes.js.tpl +11 -0
- package/cli/templates/project/src/modules/home/HomePage.jsx.tpl +38 -0
- package/cli/templates/project/src/modules/home/homeTexts.js.tpl +29 -0
- package/cli/templates/project/src/modules/home/menu.js.tpl +17 -0
- package/cli/templates/project/src/modules/home/routes.js.tpl +4 -0
- package/cli/templates/project/src/modules/profile/ProfilePage.jsx.tpl +13 -0
- package/cli/templates/project/src/modules/profile/routes.js.tpl +6 -0
- package/cli/templates/project/vite.config.js.tpl +27 -0
- package/dist/DataTable/AuditTrailDialog.js +40 -0
- package/dist/DataTable/AuditTrailDialog.js.map +1 -0
- package/dist/DataTable/AuditTrailTable.js +87 -0
- package/dist/DataTable/AuditTrailTable.js.map +1 -0
- package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js +71 -0
- package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js.map +1 -0
- package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +50 -0
- package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -0
- package/dist/DataTable/ColumnFilters/SortableFilterHeader.js +54 -0
- package/dist/DataTable/ColumnFilters/SortableFilterHeader.js.map +1 -0
- package/dist/DataTable/ColumnFilters/TextColumnFilter.js +24 -0
- package/dist/DataTable/ColumnFilters/TextColumnFilter.js.map +1 -0
- package/dist/DataTable/EmptyState.js +22 -0
- package/dist/DataTable/EmptyState.js.map +1 -0
- package/dist/DataTable/FilterChips.js +39 -0
- package/dist/DataTable/FilterChips.js.map +1 -0
- package/dist/DataTable/GoToPage.js +62 -0
- package/dist/DataTable/GoToPage.js.map +1 -0
- package/dist/DataTable/ServerTable.js +407 -0
- package/dist/DataTable/ServerTable.js.map +1 -0
- package/dist/DataTable/buildChipConfig.js +27 -0
- package/dist/DataTable/buildChipConfig.js.map +1 -0
- package/dist/DataTable/columns.js +122 -0
- package/dist/DataTable/columns.js.map +1 -0
- package/dist/DataTable/filterContext.js +15 -0
- package/dist/DataTable/filterContext.js.map +1 -0
- package/dist/DataTable/serverTableParams.js +19 -0
- package/dist/DataTable/serverTableParams.js.map +1 -0
- package/dist/DataTable/tableMachine.js +87 -0
- package/dist/DataTable/tableMachine.js.map +1 -0
- package/dist/DataTable/useDebouncedFilter.js +29 -0
- package/dist/DataTable/useDebouncedFilter.js.map +1 -0
- package/dist/DataTable/useTableState.js +132 -0
- package/dist/DataTable/useTableState.js.map +1 -0
- package/dist/access/Can.js +9 -0
- package/dist/access/Can.js.map +1 -0
- package/dist/access/PermissionMatrix.js +83 -0
- package/dist/access/PermissionMatrix.js.map +1 -0
- package/dist/access/RequireAccess.js +14 -0
- package/dist/access/RequireAccess.js.map +1 -0
- package/dist/access/accessRules.js +49 -0
- package/dist/access/accessRules.js.map +1 -0
- package/dist/access/permissionGroups.js +43 -0
- package/dist/access/permissionGroups.js.map +1 -0
- package/dist/access/useCan.js +12 -0
- package/dist/access/useCan.js.map +1 -0
- package/dist/account/AccountProvider.js +58 -0
- package/dist/account/AccountProvider.js.map +1 -0
- package/dist/account/AccountSecuritySection.js +81 -0
- package/dist/account/AccountSecuritySection.js.map +1 -0
- package/dist/account/DemoTotpCodeButton.js +26 -0
- package/dist/account/DemoTotpCodeButton.js.map +1 -0
- package/dist/account/ForgotPasswordScreen.js +26 -0
- package/dist/account/ForgotPasswordScreen.js.map +1 -0
- package/dist/account/ProfileScreen.js +108 -0
- package/dist/account/ProfileScreen.js.map +1 -0
- package/dist/account/ResetPasswordScreen.js +57 -0
- package/dist/account/ResetPasswordScreen.js.map +1 -0
- package/dist/account/SignInScreen.js +101 -0
- package/dist/account/SignInScreen.js.map +1 -0
- package/dist/account/accountConnector.js +31 -0
- package/dist/account/accountConnector.js.map +1 -0
- package/dist/account/demo/createDemoAccountConnector.js +368 -0
- package/dist/account/demo/createDemoAccountConnector.js.map +1 -0
- package/dist/account/demo/totp.js +61 -0
- package/dist/account/demo/totp.js.map +1 -0
- package/dist/account/restAccountConnector.js +117 -0
- package/dist/account/restAccountConnector.js.map +1 -0
- package/dist/account-demo.js +12 -0
- package/dist/account-demo.js.map +1 -0
- package/dist/account.js +25 -0
- package/dist/account.js.map +1 -0
- package/dist/adapters/i18next.js +7 -0
- package/dist/adapters/i18next.js.map +1 -0
- package/dist/adapters/nextNavigation.js +36 -0
- package/dist/adapters/nextNavigation.js.map +1 -0
- package/dist/adapters/reactRouter.js +7 -0
- package/dist/adapters/reactRouter.js.map +1 -0
- package/dist/adapters/reactRouterRoutes.js +48 -0
- package/dist/adapters/reactRouterRoutes.js.map +1 -0
- package/dist/api/ApiError.js +58 -0
- package/dist/api/ApiError.js.map +1 -0
- package/dist/api/createApiClient.js +226 -0
- package/dist/api/createApiClient.js.map +1 -0
- package/dist/api/staleChunks.js +47 -0
- package/dist/api/staleChunks.js.map +1 -0
- package/dist/appShell/AccountMenu.js +86 -0
- package/dist/appShell/AccountMenu.js.map +1 -0
- package/dist/appShell/AppLayout.js +493 -0
- package/dist/appShell/AppLayout.js.map +1 -0
- package/dist/appShell/AppearanceSettings.js +93 -0
- package/dist/appShell/AppearanceSettings.js.map +1 -0
- package/dist/appShell/AuthLayout.js +44 -0
- package/dist/appShell/AuthLayout.js.map +1 -0
- package/dist/appShell/BarActionButton.js +31 -0
- package/dist/appShell/BarActionButton.js.map +1 -0
- package/dist/appShell/BarActions.js +94 -0
- package/dist/appShell/BarActions.js.map +1 -0
- package/dist/appShell/BarCapsule.js +35 -0
- package/dist/appShell/BarCapsule.js.map +1 -0
- package/dist/appShell/HeaderTools.js +53 -0
- package/dist/appShell/HeaderTools.js.map +1 -0
- package/dist/appShell/MobileTabBar.js +346 -0
- package/dist/appShell/MobileTabBar.js.map +1 -0
- package/dist/appShell/SettingsMenu.js +41 -0
- package/dist/appShell/SettingsMenu.js.map +1 -0
- package/dist/appShell/SideMenu.js +217 -0
- package/dist/appShell/SideMenu.js.map +1 -0
- package/dist/appShell/SideMenuEntry.js +140 -0
- package/dist/appShell/SideMenuEntry.js.map +1 -0
- package/dist/appShell/SubmenuActionsMenu.js +71 -0
- package/dist/appShell/SubmenuActionsMenu.js.map +1 -0
- package/dist/appShell/TabBarEditor.js +55 -0
- package/dist/appShell/TabBarEditor.js.map +1 -0
- package/dist/appShell/TopMenu.js +80 -0
- package/dist/appShell/TopMenu.js.map +1 -0
- package/dist/appShell/appMenuContext.js +11 -0
- package/dist/appShell/appMenuContext.js.map +1 -0
- package/dist/appShell/barActionsSlot.js +26 -0
- package/dist/appShell/barActionsSlot.js.map +1 -0
- package/dist/appShell/barMenuPlacement.js +33 -0
- package/dist/appShell/barMenuPlacement.js.map +1 -0
- package/dist/appShell/menuItemText.js +33 -0
- package/dist/appShell/menuItemText.js.map +1 -0
- package/dist/appShell/pageTitle.js +45 -0
- package/dist/appShell/pageTitle.js.map +1 -0
- package/dist/appShell/shellSizes.js +38 -0
- package/dist/appShell/shellSizes.js.map +1 -0
- package/dist/appShell/tabBarRule.js +12 -0
- package/dist/appShell/tabBarRule.js.map +1 -0
- package/dist/appShell/tabBarScroll.js +23 -0
- package/dist/appShell/tabBarScroll.js.map +1 -0
- package/dist/appShell/useDrawerCollapsed.js +29 -0
- package/dist/appShell/useDrawerCollapsed.js.map +1 -0
- package/dist/appShell/useFittingActionCount.js +45 -0
- package/dist/appShell/useFittingActionCount.js.map +1 -0
- package/dist/appShell/usePinnedMobileTabs.js +32 -0
- package/dist/appShell/usePinnedMobileTabs.js.map +1 -0
- package/dist/appShell/useTabBarMinimized.js +33 -0
- package/dist/appShell/useTabBarMinimized.js.map +1 -0
- package/dist/auth/PasswordChecklist.js +44 -0
- package/dist/auth/PasswordChecklist.js.map +1 -0
- package/dist/auth/passwordRules.js +43 -0
- package/dist/auth/passwordRules.js.map +1 -0
- package/dist/calendar/EventCalendar.js +138 -0
- package/dist/calendar/EventCalendar.js.map +1 -0
- package/dist/calendar.js +6 -0
- package/dist/calendar.js.map +1 -0
- package/dist/charts.js +7 -0
- package/dist/charts.js.map +1 -0
- package/dist/date-pickers.js +8 -0
- package/dist/date-pickers.js.map +1 -0
- package/dist/datePickers/DateInput.js +75 -0
- package/dist/datePickers/DateInput.js.map +1 -0
- package/dist/datePickers/FormDateField.js +12 -0
- package/dist/datePickers/FormDateField.js.map +1 -0
- package/dist/dates.js +25 -0
- package/dist/dates.js.map +1 -0
- package/dist/dictionaries/dictionaries.js +48 -0
- package/dist/dictionaries/dictionaries.js.map +1 -0
- package/dist/downloads/DownloadManager.js +201 -0
- package/dist/downloads/DownloadManager.js.map +1 -0
- package/dist/downloads/downloadQueue.js +54 -0
- package/dist/downloads/downloadQueue.js.map +1 -0
- package/dist/downloads/downloadsMachine.js +77 -0
- package/dist/downloads/downloadsMachine.js.map +1 -0
- package/dist/excel/reportWorkbook.js +299 -0
- package/dist/excel/reportWorkbook.js.map +1 -0
- package/dist/excel.js +13 -0
- package/dist/excel.js.map +1 -0
- package/dist/feedback/ConfirmDialog.js +72 -0
- package/dist/feedback/ConfirmDialog.js.map +1 -0
- package/dist/feedback/ModalWaiting.js +23 -0
- package/dist/feedback/ModalWaiting.js.map +1 -0
- package/dist/feedback/NewBuildNotice.js +79 -0
- package/dist/feedback/NewBuildNotice.js.map +1 -0
- package/dist/feedback/StaleBuildBoundary.js +36 -0
- package/dist/feedback/StaleBuildBoundary.js.map +1 -0
- package/dist/feedback/Toaster.js +20 -0
- package/dist/feedback/Toaster.js.map +1 -0
- package/dist/feedback/confirmActionMachine.js +67 -0
- package/dist/feedback/confirmActionMachine.js.map +1 -0
- package/dist/feedback/toast.js +88 -0
- package/dist/feedback/toast.js.map +1 -0
- package/dist/feedback/useConfirmAction.js +40 -0
- package/dist/feedback/useConfirmAction.js.map +1 -0
- package/dist/filepond/FileDropzone.js +254 -0
- package/dist/filepond/FileDropzone.js.map +1 -0
- package/dist/filepond/pondServer.js +48 -0
- package/dist/filepond/pondServer.js.map +1 -0
- package/dist/filepond.js +10 -0
- package/dist/filepond.js.map +1 -0
- package/dist/files.js +43 -0
- package/dist/files.js.map +1 -0
- package/dist/formatting.js +177 -0
- package/dist/formatting.js.map +1 -0
- package/dist/forms/FormCatalogField.js +12 -0
- package/dist/forms/FormCatalogField.js.map +1 -0
- package/dist/forms/FormColorField.js +12 -0
- package/dist/forms/FormColorField.js.map +1 -0
- package/dist/forms/FormNumberField.js +12 -0
- package/dist/forms/FormNumberField.js.map +1 -0
- package/dist/forms/FormProblemAlert.js +15 -0
- package/dist/forms/FormProblemAlert.js.map +1 -0
- package/dist/forms/FormSelectField.js +12 -0
- package/dist/forms/FormSelectField.js.map +1 -0
- package/dist/forms/FormServerProblem.js +23 -0
- package/dist/forms/FormServerProblem.js.map +1 -0
- package/dist/forms/FormTextField.js +12 -0
- package/dist/forms/FormTextField.js.map +1 -0
- package/dist/forms/FormWizard.js +90 -0
- package/dist/forms/FormWizard.js.map +1 -0
- package/dist/forms/SubmitButton.js +14 -0
- package/dist/forms/SubmitButton.js.map +1 -0
- package/dist/forms/applyServerProblem.js +15 -0
- package/dist/forms/applyServerProblem.js.map +1 -0
- package/dist/forms/auth/ChangePasswordForm.js +46 -0
- package/dist/forms/auth/ChangePasswordForm.js.map +1 -0
- package/dist/forms/auth/ForgotPasswordForm.js +50 -0
- package/dist/forms/auth/ForgotPasswordForm.js.map +1 -0
- package/dist/forms/auth/SignInForm.js +48 -0
- package/dist/forms/auth/SignInForm.js.map +1 -0
- package/dist/forms/security/SecondStepForm.js +122 -0
- package/dist/forms/security/SecondStepForm.js.map +1 -0
- package/dist/forms/security/TwoStepVerificationCard.js +336 -0
- package/dist/forms/security/TwoStepVerificationCard.js.map +1 -0
- package/dist/forms/security/securityRules.js +28 -0
- package/dist/forms/security/securityRules.js.map +1 -0
- package/dist/forms/serverProblemFields.js +25 -0
- package/dist/forms/serverProblemFields.js.map +1 -0
- package/dist/forms/useFormikField.js +16 -0
- package/dist/forms/useFormikField.js.map +1 -0
- package/dist/forms/validation.js +55 -0
- package/dist/forms/validation.js.map +1 -0
- package/dist/forms/validationMessages.js +16 -0
- package/dist/forms/validationMessages.js.map +1 -0
- package/dist/forms.js +57 -0
- package/dist/forms.js.map +1 -0
- package/dist/hookForm/FormCatalogField.js +12 -0
- package/dist/hookForm/FormCatalogField.js.map +1 -0
- package/dist/hookForm/FormColorField.js +12 -0
- package/dist/hookForm/FormColorField.js.map +1 -0
- package/dist/hookForm/FormNumberField.js +12 -0
- package/dist/hookForm/FormNumberField.js.map +1 -0
- package/dist/hookForm/FormProblemAlert.js +17 -0
- package/dist/hookForm/FormProblemAlert.js.map +1 -0
- package/dist/hookForm/FormSelectField.js +12 -0
- package/dist/hookForm/FormSelectField.js.map +1 -0
- package/dist/hookForm/FormTextField.js +12 -0
- package/dist/hookForm/FormTextField.js.map +1 -0
- package/dist/hookForm/SubmitButton.js +15 -0
- package/dist/hookForm/SubmitButton.js.map +1 -0
- package/dist/hookForm/applyServerProblem.js +21 -0
- package/dist/hookForm/applyServerProblem.js.map +1 -0
- package/dist/hookForm/useHookFormField.js +19 -0
- package/dist/hookForm/useHookFormField.js.map +1 -0
- package/dist/i18next.js +5 -0
- package/dist/i18next.js.map +1 -0
- package/dist/identifiers.js +8 -0
- package/dist/identifiers.js.map +1 -0
- package/dist/inbox/InboxLayout.js +68 -0
- package/dist/inbox/InboxLayout.js.map +1 -0
- package/dist/inbox/MessageList.js +64 -0
- package/dist/inbox/MessageList.js.map +1 -0
- package/dist/inbox/MessageView.js +53 -0
- package/dist/inbox/MessageView.js.map +1 -0
- package/dist/inbox/inboxDates.js +8 -0
- package/dist/inbox/inboxDates.js.map +1 -0
- package/dist/index.js +383 -0
- package/dist/index.js.map +1 -0
- package/dist/inputs/CatalogInput.js +62 -0
- package/dist/inputs/CatalogInput.js.map +1 -0
- package/dist/inputs/ColorInput.js +108 -0
- package/dist/inputs/ColorInput.js.map +1 -0
- package/dist/inputs/FieldFrame.js +20 -0
- package/dist/inputs/FieldFrame.js.map +1 -0
- package/dist/inputs/FormSection.js +105 -0
- package/dist/inputs/FormSection.js.map +1 -0
- package/dist/inputs/NumberInput.js +69 -0
- package/dist/inputs/NumberInput.js.map +1 -0
- package/dist/inputs/SelectInput.js +66 -0
- package/dist/inputs/SelectInput.js.map +1 -0
- package/dist/inputs/TextInput.js +97 -0
- package/dist/inputs/TextInput.js.map +1 -0
- package/dist/inputs/colorContrast.js +46 -0
- package/dist/inputs/colorContrast.js.map +1 -0
- package/dist/inputs/formLayoutContext.js +9 -0
- package/dist/inputs/formLayoutContext.js.map +1 -0
- package/dist/inputs/numberText.js +48 -0
- package/dist/inputs/numberText.js.map +1 -0
- package/dist/kanban/KanbanBoard.js +113 -0
- package/dist/kanban/KanbanBoard.js.map +1 -0
- package/dist/kanban/kanbanMoves.js +29 -0
- package/dist/kanban/kanbanMoves.js.map +1 -0
- package/dist/kanban.js +9 -0
- package/dist/kanban.js.map +1 -0
- package/dist/laravel/csrfRetry.js +18 -0
- package/dist/laravel/csrfRetry.js.map +1 -0
- package/dist/laravel.js +6 -0
- package/dist/laravel.js.map +1 -0
- package/dist/lastListUrl.js +35 -0
- package/dist/lastListUrl.js.map +1 -0
- package/dist/locales/en.js +714 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/locales/es.js +714 -0
- package/dist/locales/es.js.map +1 -0
- package/dist/maps/MapView.js +96 -0
- package/dist/maps/MapView.js.map +1 -0
- package/dist/maps/mapMarkers.js +19 -0
- package/dist/maps/mapMarkers.js.map +1 -0
- package/dist/maps.js +10 -0
- package/dist/maps.js.map +1 -0
- package/dist/money/money.js +380 -0
- package/dist/money/money.js.map +1 -0
- package/dist/money.js +6 -0
- package/dist/money.js.map +1 -0
- package/dist/navigation/appMenu.js +93 -0
- package/dist/navigation/appMenu.js.map +1 -0
- package/dist/navigation/useMenuBadges.js +45 -0
- package/dist/navigation/useMenuBadges.js.map +1 -0
- package/dist/navigation.js +30 -0
- package/dist/navigation.js.map +1 -0
- package/dist/navigationTrail.js +82 -0
- package/dist/navigationTrail.js.map +1 -0
- package/dist/next.js +5 -0
- package/dist/next.js.map +1 -0
- package/dist/observability/buildWatch.js +19 -0
- package/dist/observability/buildWatch.js.map +1 -0
- package/dist/observability/logger.js +43 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/publishedBuild.js +39 -0
- package/dist/observability/publishedBuild.js.map +1 -0
- package/dist/observability/usePublishedBuildWatch.js +76 -0
- package/dist/observability/usePublishedBuildWatch.js.map +1 -0
- package/dist/passkeys.js +7 -0
- package/dist/passkeys.js.map +1 -0
- package/dist/periodRanges.js +33 -0
- package/dist/periodRanges.js.map +1 -0
- package/dist/problems.js +51 -0
- package/dist/problems.js.map +1 -0
- package/dist/pwa/InstallAppSetting.js +33 -0
- package/dist/pwa/InstallAppSetting.js.map +1 -0
- package/dist/pwa/InstallInstructionsDialog.js +35 -0
- package/dist/pwa/InstallInstructionsDialog.js.map +1 -0
- package/dist/pwa/InstallPromptBanner.js +64 -0
- package/dist/pwa/InstallPromptBanner.js.map +1 -0
- package/dist/pwa/installInstructions.js +60 -0
- package/dist/pwa/installInstructions.js.map +1 -0
- package/dist/pwa/useInstallPrompt.js +70 -0
- package/dist/pwa/useInstallPrompt.js.map +1 -0
- package/dist/react-hook-form.js +30 -0
- package/dist/react-hook-form.js.map +1 -0
- package/dist/react-router.js +10 -0
- package/dist/react-router.js.map +1 -0
- package/dist/security/ActivityLog.js +79 -0
- package/dist/security/ActivityLog.js.map +1 -0
- package/dist/security/RecoveryCodesDialog.js +84 -0
- package/dist/security/RecoveryCodesDialog.js.map +1 -0
- package/dist/security/SessionsCard.js +81 -0
- package/dist/security/SessionsCard.js.map +1 -0
- package/dist/security/passkeys.js +39 -0
- package/dist/security/passkeys.js.map +1 -0
- package/dist/table.js +35 -0
- package/dist/table.js.map +1 -0
- package/dist/theme/androidDevice.js +16 -0
- package/dist/theme/androidDevice.js.map +1 -0
- package/dist/theme/appleTracking.js +34 -0
- package/dist/theme/appleTracking.js.map +1 -0
- package/dist/theme/components/MuiAppBar.js +27 -0
- package/dist/theme/components/MuiAppBar.js.map +1 -0
- package/dist/theme/components/MuiBackdrop.js +13 -0
- package/dist/theme/components/MuiBackdrop.js.map +1 -0
- package/dist/theme/components/MuiButton.js +25 -0
- package/dist/theme/components/MuiButton.js.map +1 -0
- package/dist/theme/components/MuiButtonBase.js +16 -0
- package/dist/theme/components/MuiButtonBase.js.map +1 -0
- package/dist/theme/components/MuiChip.js +30 -0
- package/dist/theme/components/MuiChip.js.map +1 -0
- package/dist/theme/components/MuiDataGrid.js +30 -0
- package/dist/theme/components/MuiDataGrid.js.map +1 -0
- package/dist/theme/components/MuiDrawer.js +18 -0
- package/dist/theme/components/MuiDrawer.js.map +1 -0
- package/dist/theme/components/MuiMenuItem.js +17 -0
- package/dist/theme/components/MuiMenuItem.js.map +1 -0
- package/dist/theme/components/MuiTypography.js +22 -0
- package/dist/theme/components/MuiTypography.js.map +1 -0
- package/dist/theme/components/glassComponents.js +885 -0
- package/dist/theme/components/glassComponents.js.map +1 -0
- package/dist/theme/components/minimalComponents.js +146 -0
- package/dist/theme/components/minimalComponents.js.map +1 -0
- package/dist/theme/components/paletteOf.js +7 -0
- package/dist/theme/components/paletteOf.js.map +1 -0
- package/dist/theme/createToolkitTheme.js +100 -0
- package/dist/theme/createToolkitTheme.js.map +1 -0
- package/dist/theme/glassSurface.js +328 -0
- package/dist/theme/glassSurface.js.map +1 -0
- package/dist/theme/glassToasterStyles.js +50 -0
- package/dist/theme/glassToasterStyles.js.map +1 -0
- package/dist/theme/mergeComponents.js +42 -0
- package/dist/theme/mergeComponents.js.map +1 -0
- package/dist/theme/stackcraftPalette.js +59 -0
- package/dist/theme/stackcraftPalette.js.map +1 -0
- package/dist/theme/toolkitComponents.js +26 -0
- package/dist/theme/toolkitComponents.js.map +1 -0
- package/dist/timeline.js +8 -0
- package/dist/timeline.js.map +1 -0
- package/dist/toolkit/ToolkitProvider.js +49 -0
- package/dist/toolkit/ToolkitProvider.js.map +1 -0
- package/dist/toolkit/browserNavigation.js +34 -0
- package/dist/toolkit/browserNavigation.js.map +1 -0
- package/dist/toolkit/toolkitContext.js +19 -0
- package/dist/toolkit/toolkitContext.js.map +1 -0
- package/dist/toolkit/toolkitSettings.js +87 -0
- package/dist/toolkit/toolkitSettings.js.map +1 -0
- package/dist/toolkit/useToolkitTranslation.js +18 -0
- package/dist/toolkit/useToolkitTranslation.js.map +1 -0
- package/dist/types/DataTable/AuditTrailDialog.d.ts +32 -0
- package/dist/types/DataTable/AuditTrailTable.d.ts +28 -0
- package/dist/types/DataTable/ColumnFilters/HeaderFilterPopover.d.ts +8 -0
- package/dist/types/DataTable/ColumnFilters/MultiSelectColumnFilter.d.ts +16 -0
- package/dist/types/DataTable/ColumnFilters/SortableFilterHeader.d.ts +26 -0
- package/dist/types/DataTable/ColumnFilters/TextColumnFilter.d.ts +8 -0
- package/dist/types/DataTable/ColumnFilters/index.d.ts +4 -0
- package/dist/types/DataTable/EmptyState.d.ts +8 -0
- package/dist/types/DataTable/FilterChips.d.ts +15 -0
- package/dist/types/DataTable/GoToPage.d.ts +8 -0
- package/dist/types/DataTable/ServerTable.d.ts +110 -0
- package/dist/types/DataTable/buildChipConfig.d.ts +22 -0
- package/dist/types/DataTable/columns.d.ts +93 -0
- package/dist/types/DataTable/filterContext.d.ts +13 -0
- package/dist/types/DataTable/index.d.ts +13 -0
- package/dist/types/DataTable/serverTableParams.d.ts +16 -0
- package/dist/types/DataTable/tableMachine.d.ts +41 -0
- package/dist/types/DataTable/useDebouncedFilter.d.ts +8 -0
- package/dist/types/DataTable/useTableState.d.ts +93 -0
- package/dist/types/access/Can.d.ts +11 -0
- package/dist/types/access/PermissionMatrix.d.ts +21 -0
- package/dist/types/access/RequireAccess.d.ts +11 -0
- package/dist/types/access/accessRules.d.ts +24 -0
- package/dist/types/access/permissionGroups.d.ts +56 -0
- package/dist/types/access/useCan.d.ts +11 -0
- package/dist/types/account/AccountProvider.d.ts +27 -0
- package/dist/types/account/AccountSecuritySection.d.ts +7 -0
- package/dist/types/account/DemoTotpCodeButton.d.ts +6 -0
- package/dist/types/account/ForgotPasswordScreen.d.ts +15 -0
- package/dist/types/account/ProfileScreen.d.ts +13 -0
- package/dist/types/account/ResetPasswordScreen.d.ts +19 -0
- package/dist/types/account/SignInScreen.d.ts +25 -0
- package/dist/types/account/accountConnector.d.ts +263 -0
- package/dist/types/account/demo/createDemoAccountConnector.d.ts +30 -0
- package/dist/types/account/demo/totp.d.ts +45 -0
- package/dist/types/account/restAccountConnector.d.ts +49 -0
- package/dist/types/account-demo.d.ts +2 -0
- package/dist/types/account.d.ts +16 -0
- package/dist/types/adapters/i18next.d.ts +11 -0
- package/dist/types/adapters/nextNavigation.d.ts +33 -0
- package/dist/types/adapters/reactRouter.d.ts +6 -0
- package/dist/types/adapters/reactRouterRoutes.d.ts +30 -0
- package/dist/types/api/ApiError.d.ts +42 -0
- package/dist/types/api/createApiClient.d.ts +146 -0
- package/dist/types/api/staleChunks.d.ts +15 -0
- package/dist/types/appShell/AccountMenu.d.ts +28 -0
- package/dist/types/appShell/AppLayout.d.ts +66 -0
- package/dist/types/appShell/AppearanceSettings.d.ts +34 -0
- package/dist/types/appShell/AuthLayout.d.ts +21 -0
- package/dist/types/appShell/BarActionButton.d.ts +15 -0
- package/dist/types/appShell/BarActions.d.ts +18 -0
- package/dist/types/appShell/BarCapsule.d.ts +12 -0
- package/dist/types/appShell/HeaderTools.d.ts +27 -0
- package/dist/types/appShell/MobileTabBar.d.ts +17 -0
- package/dist/types/appShell/SettingsMenu.d.ts +13 -0
- package/dist/types/appShell/SideMenu.d.ts +31 -0
- package/dist/types/appShell/SideMenuEntry.d.ts +17 -0
- package/dist/types/appShell/SubmenuActionsMenu.d.ts +24 -0
- package/dist/types/appShell/TabBarEditor.d.ts +13 -0
- package/dist/types/appShell/TopMenu.d.ts +7 -0
- package/dist/types/appShell/appMenuContext.d.ts +9 -0
- package/dist/types/appShell/barActionsSlot.d.ts +35 -0
- package/dist/types/appShell/barMenuPlacement.d.ts +9 -0
- package/dist/types/appShell/menuItemText.d.ts +55 -0
- package/dist/types/appShell/pageTitle.d.ts +26 -0
- package/dist/types/appShell/shellSizes.d.ts +45 -0
- package/dist/types/appShell/tabBarRule.d.ts +5 -0
- package/dist/types/appShell/tabBarScroll.d.ts +26 -0
- package/dist/types/appShell/useDrawerCollapsed.d.ts +8 -0
- package/dist/types/appShell/useFittingActionCount.d.ts +7 -0
- package/dist/types/appShell/usePinnedMobileTabs.d.ts +7 -0
- package/dist/types/appShell/useTabBarMinimized.d.ts +8 -0
- package/dist/types/auth/PasswordChecklist.d.ts +11 -0
- package/dist/types/auth/passwordRules.d.ts +34 -0
- package/dist/types/calendar/EventCalendar.d.ts +46 -0
- package/dist/types/calendar.d.ts +1 -0
- package/dist/types/charts.d.ts +2 -0
- package/dist/types/date-pickers.d.ts +2 -0
- package/dist/types/datePickers/DateInput.d.ts +39 -0
- package/dist/types/datePickers/FormDateField.d.ts +7 -0
- package/dist/types/dates.d.ts +18 -0
- package/dist/types/dictionaries/dictionaries.d.ts +54 -0
- package/dist/types/downloads/DownloadManager.d.ts +1 -0
- package/dist/types/downloads/downloadQueue.d.ts +45 -0
- package/dist/types/downloads/downloadsMachine.d.ts +10 -0
- package/dist/types/downloads/index.d.ts +3 -0
- package/dist/types/excel/reportWorkbook.d.ts +157 -0
- package/dist/types/excel.d.ts +1 -0
- package/dist/types/feedback/ConfirmDialog.d.ts +29 -0
- package/dist/types/feedback/ModalWaiting.d.ts +8 -0
- package/dist/types/feedback/NewBuildNotice.d.ts +18 -0
- package/dist/types/feedback/StaleBuildBoundary.d.ts +21 -0
- package/dist/types/feedback/Toaster.d.ts +1 -0
- package/dist/types/feedback/confirmActionMachine.d.ts +19 -0
- package/dist/types/feedback/index.d.ts +8 -0
- package/dist/types/feedback/toast.d.ts +100 -0
- package/dist/types/feedback/useConfirmAction.d.ts +33 -0
- package/dist/types/filepond/FileDropzone.d.ts +59 -0
- package/dist/types/filepond/pondServer.d.ts +17 -0
- package/dist/types/filepond.d.ts +3 -0
- package/dist/types/files.d.ts +29 -0
- package/dist/types/formatting.d.ts +106 -0
- package/dist/types/forms/FormCatalogField.d.ts +6 -0
- package/dist/types/forms/FormColorField.d.ts +6 -0
- package/dist/types/forms/FormNumberField.d.ts +6 -0
- package/dist/types/forms/FormProblemAlert.d.ts +6 -0
- package/dist/types/forms/FormSelectField.d.ts +6 -0
- package/dist/types/forms/FormServerProblem.d.ts +8 -0
- package/dist/types/forms/FormTextField.d.ts +6 -0
- package/dist/types/forms/FormWizard.d.ts +20 -0
- package/dist/types/forms/SubmitButton.d.ts +9 -0
- package/dist/types/forms/applyServerProblem.d.ts +9 -0
- package/dist/types/forms/auth/ChangePasswordForm.d.ts +15 -0
- package/dist/types/forms/auth/ForgotPasswordForm.d.ts +12 -0
- package/dist/types/forms/auth/SignInForm.d.ts +18 -0
- package/dist/types/forms/index.d.ts +19 -0
- package/dist/types/forms/security/SecondStepForm.d.ts +28 -0
- package/dist/types/forms/security/TwoStepVerificationCard.d.ts +81 -0
- package/dist/types/forms/security/securityRules.d.ts +24 -0
- package/dist/types/forms/serverProblemFields.d.ts +19 -0
- package/dist/types/forms/useFormikField.d.ts +11 -0
- package/dist/types/forms/validation.d.ts +251 -0
- package/dist/types/forms/validationMessages.d.ts +12 -0
- package/dist/types/forms.d.ts +2 -0
- package/dist/types/hookForm/FormCatalogField.d.ts +8 -0
- package/dist/types/hookForm/FormColorField.d.ts +8 -0
- package/dist/types/hookForm/FormNumberField.d.ts +8 -0
- package/dist/types/hookForm/FormProblemAlert.d.ts +7 -0
- package/dist/types/hookForm/FormSelectField.d.ts +8 -0
- package/dist/types/hookForm/FormTextField.d.ts +8 -0
- package/dist/types/hookForm/SubmitButton.d.ts +21 -0
- package/dist/types/hookForm/applyServerProblem.d.ts +10 -0
- package/dist/types/hookForm/useHookFormField.d.ts +13 -0
- package/dist/types/i18next.d.ts +1 -0
- package/dist/types/identifiers.d.ts +2 -0
- package/dist/types/inbox/InboxLayout.d.ts +26 -0
- package/dist/types/inbox/MessageList.d.ts +27 -0
- package/dist/types/inbox/MessageView.d.ts +23 -0
- package/dist/types/inbox/inboxDates.d.ts +6 -0
- package/dist/types/index.d.ts +84 -0
- package/dist/types/inputs/CatalogInput.d.ts +41 -0
- package/dist/types/inputs/ColorInput.d.ts +28 -0
- package/dist/types/inputs/FieldFrame.d.ts +14 -0
- package/dist/types/inputs/FormSection.d.ts +29 -0
- package/dist/types/inputs/NumberInput.d.ts +36 -0
- package/dist/types/inputs/SelectInput.d.ts +34 -0
- package/dist/types/inputs/TextInput.d.ts +60 -0
- package/dist/types/inputs/colorContrast.d.ts +18 -0
- package/dist/types/inputs/formLayoutContext.d.ts +3 -0
- package/dist/types/inputs/numberText.d.ts +25 -0
- package/dist/types/kanban/KanbanBoard.d.ts +33 -0
- package/dist/types/kanban/kanbanMoves.d.ts +38 -0
- package/dist/types/kanban.d.ts +2 -0
- package/dist/types/laravel/csrfRetry.d.ts +21 -0
- package/dist/types/laravel.d.ts +1 -0
- package/dist/types/lastListUrl.d.ts +20 -0
- package/dist/types/locales/en.d.ts +711 -0
- package/dist/types/locales/es.d.ts +711 -0
- package/dist/types/maps/MapView.d.ts +32 -0
- package/dist/types/maps/mapMarkers.d.ts +23 -0
- package/dist/types/maps.d.ts +2 -0
- package/dist/types/money/money.d.ts +203 -0
- package/dist/types/money.d.ts +1 -0
- package/dist/types/navigation/appMenu.d.ts +92 -0
- package/dist/types/navigation/useMenuBadges.d.ts +16 -0
- package/dist/types/navigation.d.ts +22 -0
- package/dist/types/navigationTrail.d.ts +49 -0
- package/dist/types/next.d.ts +1 -0
- package/dist/types/observability/buildWatch.d.ts +28 -0
- package/dist/types/observability/logger.d.ts +19 -0
- package/dist/types/observability/publishedBuild.d.ts +35 -0
- package/dist/types/observability/usePublishedBuildWatch.d.ts +16 -0
- package/dist/types/passkeys.d.ts +1 -0
- package/dist/types/periodRanges.d.ts +32 -0
- package/dist/types/problems.d.ts +31 -0
- package/dist/types/pwa/InstallAppSetting.d.ts +1 -0
- package/dist/types/pwa/InstallInstructionsDialog.d.ts +18 -0
- package/dist/types/pwa/InstallPromptBanner.d.ts +7 -0
- package/dist/types/pwa/installInstructions.d.ts +52 -0
- package/dist/types/pwa/useInstallPrompt.d.ts +12 -0
- package/dist/types/react-hook-form.d.ts +11 -0
- package/dist/types/react-router.d.ts +2 -0
- package/dist/types/security/ActivityLog.d.ts +31 -0
- package/dist/types/security/RecoveryCodesDialog.d.ts +11 -0
- package/dist/types/security/SessionsCard.d.ts +22 -0
- package/dist/types/security/passkeys.d.ts +18 -0
- package/dist/types/table.d.ts +1 -0
- package/dist/types/theme/androidDevice.d.ts +11 -0
- package/dist/types/theme/appleTracking.d.ts +17 -0
- package/dist/types/theme/components/MuiAppBar.d.ts +13 -0
- package/dist/types/theme/components/MuiBackdrop.d.ts +11 -0
- package/dist/types/theme/components/MuiButton.d.ts +27 -0
- package/dist/types/theme/components/MuiButtonBase.d.ts +14 -0
- package/dist/types/theme/components/MuiChip.d.ts +29 -0
- package/dist/types/theme/components/MuiDataGrid.d.ts +45 -0
- package/dist/types/theme/components/MuiDrawer.d.ts +13 -0
- package/dist/types/theme/components/MuiMenuItem.d.ts +17 -0
- package/dist/types/theme/components/MuiTypography.d.ts +20 -0
- package/dist/types/theme/components/glassComponents.d.ts +8 -0
- package/dist/types/theme/components/minimalComponents.d.ts +22 -0
- package/dist/types/theme/components/paletteOf.d.ts +5 -0
- package/dist/types/theme/createToolkitTheme.d.ts +48 -0
- package/dist/types/theme/glassSurface.d.ts +247 -0
- package/dist/types/theme/glassToasterStyles.d.ts +7 -0
- package/dist/types/theme/mergeComponents.d.ts +15 -0
- package/dist/types/theme/stackcraftPalette.d.ts +142 -0
- package/dist/types/theme/toolkitComponents.d.ts +4 -0
- package/dist/types/timeline.d.ts +2 -0
- package/dist/types/toolkit/ToolkitProvider.d.ts +31 -0
- package/dist/types/toolkit/browserNavigation.d.ts +32 -0
- package/dist/types/toolkit/toolkitContext.d.ts +28 -0
- package/dist/types/toolkit/toolkitSettings.d.ts +68 -0
- package/dist/types/toolkit/useToolkitTranslation.d.ts +10 -0
- package/dist/types/ui/actions/CopyButton.d.ts +13 -0
- package/dist/types/ui/actions/DownloadMenu.d.ts +50 -0
- package/dist/types/ui/actions/SecretField.d.ts +13 -0
- package/dist/types/ui/filters/DateRangeFilter.d.ts +16 -0
- package/dist/types/ui/filters/PeriodRangeSelector.d.ts +28 -0
- package/dist/types/ui/filters/QuickFilters.d.ts +21 -0
- package/dist/types/ui/filters/SegmentedControl.d.ts +44 -0
- package/dist/types/ui/index.d.ts +33 -0
- package/dist/types/ui/labels/DictionaryText.d.ts +7 -0
- package/dist/types/ui/labels/StatusChip.d.ts +21 -0
- package/dist/types/ui/labels/Tag.d.ts +19 -0
- package/dist/types/ui/layout/CollapsibleSection.d.ts +15 -0
- package/dist/types/ui/layout/ContentDialog.d.ts +13 -0
- package/dist/types/ui/layout/DefinitionList.d.ts +15 -0
- package/dist/types/ui/layout/DetailHeader.d.ts +15 -0
- package/dist/types/ui/layout/ErrorPage.d.ts +22 -0
- package/dist/types/ui/layout/FullPageLoader.d.ts +1 -0
- package/dist/types/ui/layout/GlassLensFilter.d.ts +1 -0
- package/dist/types/ui/layout/GlassPanel.d.ts +11 -0
- package/dist/types/ui/layout/PageHeader.d.ts +15 -0
- package/dist/types/ui/layout/PageHeading.d.ts +18 -0
- package/dist/types/ui/layout/ProfileHeader.d.ts +17 -0
- package/dist/types/ui/layout/ScrollableRow.d.ts +33 -0
- package/dist/types/ui/layout/SectionCard.d.ts +11 -0
- package/dist/types/ui/layout/appBarHeight.d.ts +13 -0
- package/dist/types/ui/metrics/BarList.d.ts +19 -0
- package/dist/types/ui/metrics/CalendarHeatmap.d.ts +28 -0
- package/dist/types/ui/metrics/ChartTooltip.d.ts +5 -0
- package/dist/types/ui/metrics/ColumnChart.d.ts +35 -0
- package/dist/types/ui/metrics/MetricCard.d.ts +31 -0
- package/dist/types/ui/metrics/TableToggle.d.ts +7 -0
- package/dist/types/ui/metrics/barListLabels.d.ts +17 -0
- package/dist/types/ui/metrics/heatmapScale.d.ts +45 -0
- package/dist/types/ui/navigation/BackButton.d.ts +11 -0
- package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +7 -0
- package/dist/types/ui/navigation/DocumentTitle.d.ts +6 -0
- package/dist/types/ui/navigation/FontSizeToggle.d.ts +6 -0
- package/dist/types/ui/navigation/LanguageToggle.d.ts +8 -0
- package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +9 -0
- package/dist/types/ui/navigation/colorMode.d.ts +18 -0
- package/dist/types/ui/navigation/fontSizeLevels.d.ts +25 -0
- package/dist/types/ui/navigation/useFontSize.d.ts +10 -0
- package/dist/types/ui/timeline/GroupedTimeline.d.ts +38 -0
- package/dist/types/ui/timeline/timelineDot.d.ts +19 -0
- package/dist/types/upload/FileDropzone.d.ts +34 -0
- package/dist/types/upload/fileRules.d.ts +51 -0
- package/dist/types/upload/uploadMachine.d.ts +23 -0
- package/dist/types/upload/uploadWithProgress.d.ts +16 -0
- package/dist/ui/actions/CopyButton.js +28 -0
- package/dist/ui/actions/CopyButton.js.map +1 -0
- package/dist/ui/actions/DownloadMenu.js +163 -0
- package/dist/ui/actions/DownloadMenu.js.map +1 -0
- package/dist/ui/actions/SecretField.js +57 -0
- package/dist/ui/actions/SecretField.js.map +1 -0
- package/dist/ui/filters/DateRangeFilter.js +86 -0
- package/dist/ui/filters/DateRangeFilter.js.map +1 -0
- package/dist/ui/filters/PeriodRangeSelector.js +56 -0
- package/dist/ui/filters/PeriodRangeSelector.js.map +1 -0
- package/dist/ui/filters/QuickFilters.js +91 -0
- package/dist/ui/filters/QuickFilters.js.map +1 -0
- package/dist/ui/filters/SegmentedControl.js +80 -0
- package/dist/ui/filters/SegmentedControl.js.map +1 -0
- package/dist/ui/labels/DictionaryText.js +11 -0
- package/dist/ui/labels/DictionaryText.js.map +1 -0
- package/dist/ui/labels/StatusChip.js +52 -0
- package/dist/ui/labels/StatusChip.js.map +1 -0
- package/dist/ui/labels/Tag.js +26 -0
- package/dist/ui/labels/Tag.js.map +1 -0
- package/dist/ui/layout/CollapsibleSection.js +48 -0
- package/dist/ui/layout/CollapsibleSection.js.map +1 -0
- package/dist/ui/layout/ContentDialog.js +97 -0
- package/dist/ui/layout/ContentDialog.js.map +1 -0
- package/dist/ui/layout/DefinitionList.js +30 -0
- package/dist/ui/layout/DefinitionList.js.map +1 -0
- package/dist/ui/layout/DetailHeader.js +27 -0
- package/dist/ui/layout/DetailHeader.js.map +1 -0
- package/dist/ui/layout/ErrorPage.js +40 -0
- package/dist/ui/layout/ErrorPage.js.map +1 -0
- package/dist/ui/layout/FullPageLoader.js +13 -0
- package/dist/ui/layout/FullPageLoader.js.map +1 -0
- package/dist/ui/layout/GlassLensFilter.js +53 -0
- package/dist/ui/layout/GlassLensFilter.js.map +1 -0
- package/dist/ui/layout/GlassPanel.js +18 -0
- package/dist/ui/layout/GlassPanel.js.map +1 -0
- package/dist/ui/layout/PageHeader.js +23 -0
- package/dist/ui/layout/PageHeader.js.map +1 -0
- package/dist/ui/layout/PageHeading.js +51 -0
- package/dist/ui/layout/PageHeading.js.map +1 -0
- package/dist/ui/layout/ProfileHeader.js +64 -0
- package/dist/ui/layout/ProfileHeader.js.map +1 -0
- package/dist/ui/layout/ScrollableRow.js +156 -0
- package/dist/ui/layout/ScrollableRow.js.map +1 -0
- package/dist/ui/layout/SectionCard.js +18 -0
- package/dist/ui/layout/SectionCard.js.map +1 -0
- package/dist/ui/layout/appBarHeight.js +42 -0
- package/dist/ui/layout/appBarHeight.js.map +1 -0
- package/dist/ui/metrics/BarList.js +89 -0
- package/dist/ui/metrics/BarList.js.map +1 -0
- package/dist/ui/metrics/CalendarHeatmap.js +131 -0
- package/dist/ui/metrics/CalendarHeatmap.js.map +1 -0
- package/dist/ui/metrics/ChartTooltip.js +16 -0
- package/dist/ui/metrics/ChartTooltip.js.map +1 -0
- package/dist/ui/metrics/ColumnChart.js +110 -0
- package/dist/ui/metrics/ColumnChart.js.map +1 -0
- package/dist/ui/metrics/MetricCard.js +64 -0
- package/dist/ui/metrics/MetricCard.js.map +1 -0
- package/dist/ui/metrics/TableToggle.js +13 -0
- package/dist/ui/metrics/TableToggle.js.map +1 -0
- package/dist/ui/metrics/barListLabels.js +9 -0
- package/dist/ui/metrics/barListLabels.js.map +1 -0
- package/dist/ui/metrics/heatmapScale.js +67 -0
- package/dist/ui/metrics/heatmapScale.js.map +1 -0
- package/dist/ui/navigation/BackButton.js +28 -0
- package/dist/ui/navigation/BackButton.js.map +1 -0
- package/dist/ui/navigation/ColorSchemeToggle.js +37 -0
- package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -0
- package/dist/ui/navigation/DocumentTitle.js +11 -0
- package/dist/ui/navigation/DocumentTitle.js.map +1 -0
- package/dist/ui/navigation/FontSizeToggle.js +40 -0
- package/dist/ui/navigation/FontSizeToggle.js.map +1 -0
- package/dist/ui/navigation/LanguageToggle.js +27 -0
- package/dist/ui/navigation/LanguageToggle.js.map +1 -0
- package/dist/ui/navigation/PageBreadcrumbs.js +51 -0
- package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -0
- package/dist/ui/navigation/colorMode.js +13 -0
- package/dist/ui/navigation/colorMode.js.map +1 -0
- package/dist/ui/navigation/fontSizeLevels.js +24 -0
- package/dist/ui/navigation/fontSizeLevels.js.map +1 -0
- package/dist/ui/navigation/useFontSize.js +44 -0
- package/dist/ui/navigation/useFontSize.js.map +1 -0
- package/dist/ui/timeline/GroupedTimeline.js +104 -0
- package/dist/ui/timeline/GroupedTimeline.js.map +1 -0
- package/dist/ui/timeline/timelineDot.js +20 -0
- package/dist/ui/timeline/timelineDot.js.map +1 -0
- package/dist/upload/FileDropzone.js +143 -0
- package/dist/upload/FileDropzone.js.map +1 -0
- package/dist/upload/fileRules.js +62 -0
- package/dist/upload/fileRules.js.map +1 -0
- package/dist/upload/uploadMachine.js +73 -0
- package/dist/upload/uploadMachine.js.map +1 -0
- package/dist/upload/uploadWithProgress.js +45 -0
- package/dist/upload/uploadWithProgress.js.map +1 -0
- package/package.json +303 -5
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MuiAppBar } from "./components/MuiAppBar.js";
|
|
2
|
+
import { MuiBackdrop } from "./components/MuiBackdrop.js";
|
|
3
|
+
import { MuiButton } from "./components/MuiButton.js";
|
|
4
|
+
import { MuiButtonBase } from "./components/MuiButtonBase.js";
|
|
5
|
+
import { MuiChip } from "./components/MuiChip.js";
|
|
6
|
+
import { MuiDataGrid } from "./components/MuiDataGrid.js";
|
|
7
|
+
import { MuiDrawer } from "./components/MuiDrawer.js";
|
|
8
|
+
import { MuiMenuItem } from "./components/MuiMenuItem.js";
|
|
9
|
+
import { MuiTypography } from "./components/MuiTypography.js";
|
|
10
|
+
function toolkitComponents() {
|
|
11
|
+
return {
|
|
12
|
+
...MuiAppBar(),
|
|
13
|
+
...MuiBackdrop(),
|
|
14
|
+
...MuiButton(),
|
|
15
|
+
...MuiButtonBase(),
|
|
16
|
+
...MuiChip(),
|
|
17
|
+
...MuiDataGrid(),
|
|
18
|
+
...MuiDrawer(),
|
|
19
|
+
...MuiMenuItem(),
|
|
20
|
+
...MuiTypography()
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
toolkitComponents
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=toolkitComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkitComponents.js","sources":["../../src/theme/toolkitComponents.js"],"sourcesContent":["// Los ajustes de componentes de MUI del framework (del tema de walk-ot), juntos. Un archivo por componente en\n// theme/components/: para cambiar cómo se ve un componente se abre el suyo y nada más.\n//\n// createToolkitTheme() ya los trae. Un proyecto con su propio createTheme los puede usar sueltos:\n// createTheme({components: {...toolkitComponents(), ...losMios}})\n//\n// Funciones puras, sin React: function (regla de la casa).\nimport {MuiAppBar} from '@/theme/components/MuiAppBar.js';\nimport {MuiBackdrop} from '@/theme/components/MuiBackdrop.js';\nimport {MuiButton} from '@/theme/components/MuiButton.js';\nimport {MuiButtonBase} from '@/theme/components/MuiButtonBase.js';\nimport {MuiChip} from '@/theme/components/MuiChip.js';\nimport {MuiDataGrid} from '@/theme/components/MuiDataGrid.js';\nimport {MuiDrawer} from '@/theme/components/MuiDrawer.js';\nimport {MuiMenuItem} from '@/theme/components/MuiMenuItem.js';\nimport {MuiTypography} from '@/theme/components/MuiTypography.js';\n\n/**\n * @returns {object} el `components` del tema de MUI\n */\nexport function toolkitComponents() {\n return {\n ...MuiAppBar(),\n ...MuiBackdrop(),\n ...MuiButton(),\n ...MuiButtonBase(),\n ...MuiChip(),\n ...MuiDataGrid(),\n ...MuiDrawer(),\n ...MuiMenuItem(),\n ...MuiTypography(),\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAoBO,SAAS,oBAAoB;AAChC,SAAO;AAAA,IACH,GAAG,UAAS;AAAA,IACZ,GAAG,YAAW;AAAA,IACd,GAAG,UAAS;AAAA,IACZ,GAAG,cAAa;AAAA,IAChB,GAAG,QAAO;AAAA,IACV,GAAG,YAAW;AAAA,IACd,GAAG,UAAS;AAAA,IACZ,GAAG,YAAW;AAAA,IACd,GAAG,cAAa;AAAA,EACxB;AACA;"}
|
package/dist/timeline.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as default2 } from "./ui/timeline/GroupedTimeline.js";
|
|
2
|
+
import { TIMELINE_EMPHASIS, timelineDotOf } from "./ui/timeline/timelineDot.js";
|
|
3
|
+
export {
|
|
4
|
+
default2 as GroupedTimeline,
|
|
5
|
+
TIMELINE_EMPHASIS,
|
|
6
|
+
timelineDotOf
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { allowOnlyUnrestricted } from "../access/accessRules.js";
|
|
5
|
+
import { browserNavigation } from "./browserNavigation.js";
|
|
6
|
+
import { ToolkitContext } from "./toolkitContext.js";
|
|
7
|
+
import { useFontSize } from "../ui/navigation/useFontSize.js";
|
|
8
|
+
import { DEFAULT_CURRENCY, DEFAULT_LANGUAGE, browserTimeZone, configureToolkit } from "./toolkitSettings.js";
|
|
9
|
+
const ToolkitProvider = ({
|
|
10
|
+
language = DEFAULT_LANGUAGE,
|
|
11
|
+
onLanguageChange,
|
|
12
|
+
texts,
|
|
13
|
+
translate,
|
|
14
|
+
timeZone,
|
|
15
|
+
currency = DEFAULT_CURRENCY,
|
|
16
|
+
appName = "",
|
|
17
|
+
navigation = browserNavigation,
|
|
18
|
+
buildId = "",
|
|
19
|
+
canAccess = allowOnlyUnrestricted,
|
|
20
|
+
children
|
|
21
|
+
}) => {
|
|
22
|
+
const settings = useMemo(() => ({
|
|
23
|
+
language,
|
|
24
|
+
onLanguageChange: onLanguageChange ?? null,
|
|
25
|
+
texts: texts ?? {},
|
|
26
|
+
translate: translate ?? null,
|
|
27
|
+
timeZone: timeZone ?? browserTimeZone(),
|
|
28
|
+
currency,
|
|
29
|
+
appName,
|
|
30
|
+
navigation,
|
|
31
|
+
buildId,
|
|
32
|
+
canAccess
|
|
33
|
+
}), [language, onLanguageChange, texts, translate, timeZone, currency, appName, navigation, buildId, canAccess]);
|
|
34
|
+
configureToolkit({
|
|
35
|
+
language: settings.language,
|
|
36
|
+
texts: settings.texts,
|
|
37
|
+
translate: settings.translate,
|
|
38
|
+
timeZone: settings.timeZone,
|
|
39
|
+
currency,
|
|
40
|
+
appName,
|
|
41
|
+
buildId
|
|
42
|
+
});
|
|
43
|
+
useFontSize();
|
|
44
|
+
return /* @__PURE__ */ jsx(ToolkitContext.Provider, { value: settings, children });
|
|
45
|
+
};
|
|
46
|
+
export {
|
|
47
|
+
ToolkitProvider
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=ToolkitProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolkitProvider.js","sources":["../../src/toolkit/ToolkitProvider.jsx"],"sourcesContent":["// El proveedor del paquete: el único lugar donde cada aplicación conecta su idioma, sus textos, su zona horaria y su\n// router. Va por encima de la aplicación, dentro del ThemeProvider de MUI (el tema lo arma cada proyecto; sin tema,\n// los componentes usan los colores por omisión de MUI).\n//\n// <ToolkitProvider language=\"es\" navigation={reactRouterNavigation} texts={{es: {common: {actions: {back: 'Volver'}}}}}>\n//\n// Sin proveedor todo funciona en español, con la zona del navegador y la navegación del navegador.\n//\n// Lo renderiza la app: arrow (regla de la casa).\nimport {useMemo} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {ToolkitContext} from '@/toolkit/toolkitContext.js';\nimport {useFontSize} from '@/ui/navigation/useFontSize.js';\nimport {DEFAULT_CURRENCY, DEFAULT_LANGUAGE, browserTimeZone, configureToolkit} from '@/toolkit/toolkitSettings.js';\n\n/**\n * @param {object} props\n * @param {string} [props.language] idioma activo: es o en (por omisión es)\n * @param {(language: string) => void} [props.onLanguageChange] lo llama LanguageToggle; el proyecto cambia su idioma\n * @param {object} [props.texts] textos propios por idioma, con la forma de locales/ ({es: {table: {...}}})\n * @param {(namespace: string, key: string, values?: object) => string|undefined} [props.translate] traductor del\n * proyecto (por ejemplo i18next); undefined deja el texto del paquete\n * @param {string} [props.timeZone] zona de las fechas (por omisión la del navegador)\n * @param {string} [props.currency] moneda de los montos, código ISO 4217 (por omisión MXN)\n * @param {string} [props.appName] nombre de la aplicación para el título de la pestaña\n * @param {object} [props.navigation] {useNavigate, useLocation, Link}; por omisión la del navegador\n * @param {string} [props.buildId] la compilación del front que corre en esta pestaña; con ella NewBuildNotice sabe si el\n * servidor ya publicó otra (reportPublishedBuild). Vacía (en desarrollo) nunca avisa\n * @param {(access: object|undefined|null) => boolean} [props.canAccess] quién ve qué (menú, rutas, botones): la regla del\n * proyecto, normalmente createAccessChecker({abilities, roles, policies, context}). Sin ella solo se ve lo que no\n * tiene regla\n * @param {import('react').ReactNode} props.children\n */\nexport const ToolkitProvider = ({\n language = DEFAULT_LANGUAGE, onLanguageChange, texts, translate, timeZone, currency = DEFAULT_CURRENCY, appName = '',\n navigation = browserNavigation, buildId = '', canAccess = allowOnlyUnrestricted, children,\n}) => {\n const settings = useMemo(() => ({\n language,\n onLanguageChange: onLanguageChange ?? null,\n texts: texts ?? {},\n translate: translate ?? null,\n timeZone: timeZone ?? browserTimeZone(),\n currency,\n appName,\n navigation,\n buildId,\n canAccess,\n }), [language, onLanguageChange, texts, translate, timeZone, currency, appName, navigation, buildId, canAccess]);\n\n // OJO: se configura durante el render (no en un efecto) para que los formatos y avisos que se llaman en este mismo\n // render ya vean el idioma y la zona nuevos\n configureToolkit({\n language: settings.language, texts: settings.texts, translate: settings.translate, timeZone: settings.timeZone, currency, appName,\n buildId,\n });\n\n // el tamaño de letra que la persona guardó: se aplica aquí, que siempre está montado. Antes lo aplicaba su botón en la\n // barra; al pasar los ajustes al menú de la cuenta, al recargar se perdía hasta abrir el menú (error pagado)\n useFontSize();\n\n return <ToolkitContext.Provider value={settings}>{children}</ToolkitContext.Provider>;\n};\n"],"names":[],"mappings":";;;;;;;;AAkCO,MAAM,kBAAkB,CAAC;AAAA,EAC5B,WAAW;AAAA,EAAkB;AAAA,EAAkB;AAAA,EAAO;AAAA,EAAW;AAAA,EAAU,WAAW;AAAA,EAAkB,UAAU;AAAA,EAClH,aAAa;AAAA,EAAmB,UAAU;AAAA,EAAI,YAAY;AAAA,EAAuB;AACrF,MAAM;AACF,QAAM,WAAW,QAAQ,OAAO;AAAA,IAC5B;AAAA,IACA,kBAAkB,oBAAoB;AAAA,IACtC,OAAO,SAAS,CAAA;AAAA,IAChB,WAAW,aAAa;AAAA,IACxB,UAAU,YAAY,gBAAA;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACA,CAAC,UAAU,kBAAkB,OAAO,WAAW,UAAU,UAAU,SAAS,YAAY,SAAS,SAAS,CAAC;AAI/G,mBAAiB;AAAA,IACb,UAAU,SAAS;AAAA,IAAU,OAAO,SAAS;AAAA,IAAO,WAAW,SAAS;AAAA,IAAW,UAAU,SAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAC1H;AAAA,EAAA,CACH;AAID,cAAA;AAEA,6BAAQ,eAAe,UAAf,EAAwB,OAAO,UAAW,UAAS;AAC/D;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createElement, useSyncExternalStore } from "react";
|
|
3
|
+
const HISTORY_BACK = -1;
|
|
4
|
+
function navigateInBrowser(destination) {
|
|
5
|
+
if (destination === HISTORY_BACK) {
|
|
6
|
+
window.history.back();
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
window.location.assign(destination);
|
|
10
|
+
}
|
|
11
|
+
function subscribeToHistory(onChange) {
|
|
12
|
+
window.addEventListener("popstate", onChange);
|
|
13
|
+
return () => window.removeEventListener("popstate", onChange);
|
|
14
|
+
}
|
|
15
|
+
function currentHref() {
|
|
16
|
+
return window.location.href;
|
|
17
|
+
}
|
|
18
|
+
function useBrowserLocation() {
|
|
19
|
+
const href = useSyncExternalStore(subscribeToHistory, currentHref, () => "");
|
|
20
|
+
const url = href ? new URL(href) : null;
|
|
21
|
+
return { pathname: url?.pathname ?? "/", search: url?.search ?? "", key: href };
|
|
22
|
+
}
|
|
23
|
+
function BrowserLink({ to, ...props }) {
|
|
24
|
+
return createElement("a", { href: to, ...props });
|
|
25
|
+
}
|
|
26
|
+
const browserNavigation = Object.freeze({
|
|
27
|
+
useNavigate: () => navigateInBrowser,
|
|
28
|
+
useLocation: useBrowserLocation,
|
|
29
|
+
Link: BrowserLink
|
|
30
|
+
});
|
|
31
|
+
export {
|
|
32
|
+
browserNavigation
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=browserNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserNavigation.js","sources":["../../src/toolkit/browserNavigation.js"],"sourcesContent":["// La navegación por omisión: la del navegador, para usar el paquete sin router.\n//\n// Los componentes que navegan (BackButton, MetricCard, el regreso a la última lista) no importan react-router ni\n// Next.js: le piden al proveedor una navegación con tres piezas, las mismas que trae react-router:\n// useNavigate() regresa navigate(destino), donde destino es una ruta o -1 para regresar;\n// useLocation() regresa {pathname, search, key} de la página actual;\n// Link el enlace, que recibe `to` con la ruta.\n// Un proyecto con router pasa su adaptador (@stackcraftmx/calcita/react-router); sin él, esta cambia de página como un\n// enlace normal.\n//\n// OJO: aquí cada navegación recarga la página. Para una aplicación de una sola página se usa el adaptador de su router.\nimport {createElement, useSyncExternalStore} from 'react';\n\nconst HISTORY_BACK = -1;\n\n/**\n * Cambia de página: -1 regresa en el historial; una ruta abre esa ruta.\n *\n * @param {string|number} destination\n * @returns {void}\n */\nfunction navigateInBrowser(destination) {\n if (destination === HISTORY_BACK) {\n window.history.back();\n return;\n }\n\n window.location.assign(destination);\n}\n\n/**\n * Avisa cuando cambia la página por el historial (atrás y adelante).\n *\n * @param {Function} onChange\n * @returns {Function} para dejar de escuchar\n */\nfunction subscribeToHistory(onChange) {\n window.addEventListener('popstate', onChange);\n\n return () => window.removeEventListener('popstate', onChange);\n}\n\n/**\n * La dirección actual como texto, para saber si cambió.\n *\n * @returns {string}\n */\nfunction currentHref() {\n return window.location.href;\n}\n\n/**\n * La página actual, como la da react-router: la ruta, la búsqueda y una llave por página.\n *\n * @returns {{pathname: string, search: string, key: string}}\n */\nfunction useBrowserLocation() {\n const href = useSyncExternalStore(subscribeToHistory, currentHref, () => '');\n const url = href ? new URL(href) : null;\n\n return {pathname: url?.pathname ?? '/', search: url?.search ?? '', key: href};\n}\n\n/**\n * El enlace sin router: un <a> con href.\n *\n * @param {{to: string}} props lo demás pasa al <a>\n * @returns {import('react').ReactElement}\n */\nfunction BrowserLink({to, ...props}) {\n return createElement('a', {href: to, ...props});\n}\n\nexport const browserNavigation = Object.freeze({\n useNavigate: () => navigateInBrowser,\n useLocation: useBrowserLocation,\n Link: BrowserLink,\n});\n"],"names":[],"mappings":";;AAaA,MAAM,eAAe;AAQrB,SAAS,kBAAkB,aAAa;AACpC,MAAI,gBAAgB,cAAc;AAC9B,WAAO,QAAQ,KAAI;AACnB;AAAA,EACJ;AAEA,SAAO,SAAS,OAAO,WAAW;AACtC;AAQA,SAAS,mBAAmB,UAAU;AAClC,SAAO,iBAAiB,YAAY,QAAQ;AAE5C,SAAO,MAAM,OAAO,oBAAoB,YAAY,QAAQ;AAChE;AAOA,SAAS,cAAc;AACnB,SAAO,OAAO,SAAS;AAC3B;AAOA,SAAS,qBAAqB;AAC1B,QAAM,OAAO,qBAAqB,oBAAoB,aAAa,MAAM,EAAE;AAC3E,QAAM,MAAM,OAAO,IAAI,IAAI,IAAI,IAAI;AAEnC,SAAO,EAAC,UAAU,KAAK,YAAY,KAAK,QAAQ,KAAK,UAAU,IAAI,KAAK,KAAI;AAChF;AAQA,SAAS,YAAY,EAAC,IAAI,GAAG,MAAK,GAAG;AACjC,SAAO,cAAc,KAAK,EAAC,MAAM,IAAI,GAAG,MAAK,CAAC;AAClD;AAEY,MAAC,oBAAoB,OAAO,OAAO;AAAA,EAC3C,aAAa,MAAM;AAAA,EACnB,aAAa;AAAA,EACb,MAAM;AACV,CAAC;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
import { allowOnlyUnrestricted } from "../access/accessRules.js";
|
|
4
|
+
import { browserNavigation } from "./browserNavigation.js";
|
|
5
|
+
import { toolkitSettings } from "./toolkitSettings.js";
|
|
6
|
+
const ToolkitContext = createContext(null);
|
|
7
|
+
function useToolkitSettings() {
|
|
8
|
+
const settings = useContext(ToolkitContext);
|
|
9
|
+
return settings ?? { ...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted };
|
|
10
|
+
}
|
|
11
|
+
function useToolkitNavigation() {
|
|
12
|
+
return useToolkitSettings().navigation;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
ToolkitContext,
|
|
16
|
+
useToolkitNavigation,
|
|
17
|
+
useToolkitSettings
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=toolkitContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkitContext.js","sources":["../../src/toolkit/toolkitContext.js"],"sourcesContent":["// El contexto de ToolkitProvider y los hooks que lo leen. Vive aparte del proveedor (que es .jsx) para que los hooks se\n// importen desde archivos .js sin arrastrar JSX.\n//\n// Hooks genéricos: function (regla de la casa).\nimport {createContext, useContext} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {toolkitSettings} from '@/toolkit/toolkitSettings.js';\n\nexport const ToolkitContext = createContext(null);\n\n/**\n * La configuración del proveedor; sin proveedor, la vigente con la navegación del navegador.\n *\n * @returns {{language: string, onLanguageChange: Function|null, texts: object, translate: Function|null, timeZone: string, currency: string, appName: string, buildId: string, navigation: object, canAccess: Function}}\n */\nexport function useToolkitSettings() {\n const settings = useContext(ToolkitContext);\n\n return settings ?? {...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted};\n}\n\n/**\n * La navegación que conectó el proyecto: {useNavigate, useLocation, Link}.\n *\n * @returns {{useNavigate: Function, useLocation: Function, Link: import('react').ElementType}}\n */\nexport function useToolkitNavigation() {\n return useToolkitSettings().navigation;\n}\n"],"names":[],"mappings":";;;;;AASY,MAAC,iBAAiB,cAAc,IAAI;AAOzC,SAAS,qBAAqB;AACjC,QAAM,WAAW,WAAW,cAAc;AAE1C,SAAO,YAAY,EAAC,GAAG,mBAAmB,kBAAkB,MAAM,YAAY,mBAAmB,WAAW,sBAAqB;AACrI;AAOO,SAAS,uBAAuB;AACnC,SAAO,mBAAkB,EAAG;AAChC;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import es from "../locales/es.js";
|
|
2
|
+
import en from "../locales/en.js";
|
|
3
|
+
const DEFAULT_LANGUAGE = "es";
|
|
4
|
+
const DEFAULT_CURRENCY = "MXN";
|
|
5
|
+
const PACKAGE_TEXTS_BY_LANGUAGE = Object.freeze({ es, en });
|
|
6
|
+
const INTL_LOCALE_BY_LANGUAGE = Object.freeze({ es: "es-MX", en: "en-US" });
|
|
7
|
+
const NAMESPACE_SEPARATOR = ":";
|
|
8
|
+
const KEY_SEPARATOR = ".";
|
|
9
|
+
const PLURAL_SEPARATOR = "_";
|
|
10
|
+
const PLURAL_OTHER = "other";
|
|
11
|
+
const INTERPOLATION = /\{\{\s*(\w+)\s*\}\}/g;
|
|
12
|
+
function browserTimeZone() {
|
|
13
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone ?? "America/Mexico_City";
|
|
14
|
+
}
|
|
15
|
+
let currentSettings = Object.freeze({
|
|
16
|
+
language: DEFAULT_LANGUAGE,
|
|
17
|
+
texts: {},
|
|
18
|
+
translate: null,
|
|
19
|
+
timeZone: browserTimeZone(),
|
|
20
|
+
currency: DEFAULT_CURRENCY,
|
|
21
|
+
appName: "",
|
|
22
|
+
// la compilación del front que corre en esta pestaña ('' en desarrollo): con ella se sabe si hay una versión nueva
|
|
23
|
+
buildId: ""
|
|
24
|
+
});
|
|
25
|
+
function configureToolkit(settings) {
|
|
26
|
+
currentSettings = Object.freeze({ ...currentSettings, ...settings });
|
|
27
|
+
}
|
|
28
|
+
function toolkitSettings() {
|
|
29
|
+
return currentSettings;
|
|
30
|
+
}
|
|
31
|
+
function intlLocaleOf(language) {
|
|
32
|
+
return INTL_LOCALE_BY_LANGUAGE[language] ?? INTL_LOCALE_BY_LANGUAGE[DEFAULT_LANGUAGE];
|
|
33
|
+
}
|
|
34
|
+
function valueAtPath(texts, path) {
|
|
35
|
+
let value = texts;
|
|
36
|
+
for (const part of path.split(KEY_SEPARATOR)) {
|
|
37
|
+
if (value === null || typeof value !== "object") {
|
|
38
|
+
return void 0;
|
|
39
|
+
}
|
|
40
|
+
value = value[part];
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
function textOf(texts, namespace, key, values, language) {
|
|
45
|
+
const namespaceTexts = texts?.[namespace];
|
|
46
|
+
if (typeof values?.count === "number") {
|
|
47
|
+
const pluralCategory = new Intl.PluralRules(intlLocaleOf(language)).select(values.count);
|
|
48
|
+
const pluralText = valueAtPath(namespaceTexts, `${key}${PLURAL_SEPARATOR}${pluralCategory}`) ?? valueAtPath(namespaceTexts, `${key}${PLURAL_SEPARATOR}${PLURAL_OTHER}`);
|
|
49
|
+
if (typeof pluralText === "string") {
|
|
50
|
+
return pluralText;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const text = valueAtPath(namespaceTexts, key);
|
|
54
|
+
return typeof text === "string" ? text : void 0;
|
|
55
|
+
}
|
|
56
|
+
function interpolate(text, values) {
|
|
57
|
+
return text.replace(INTERPOLATION, (placeholder, name) => values?.[name] === void 0 ? placeholder : String(values[name]));
|
|
58
|
+
}
|
|
59
|
+
function translateWith(settings, defaultNamespace, key, values) {
|
|
60
|
+
const [namespace, plainKey] = key.includes(NAMESPACE_SEPARATOR) ? key.split(NAMESPACE_SEPARATOR, 2) : [defaultNamespace, key];
|
|
61
|
+
const projectText = settings.translate?.(namespace, plainKey, values);
|
|
62
|
+
if (typeof projectText === "string") {
|
|
63
|
+
return projectText;
|
|
64
|
+
}
|
|
65
|
+
const text = textOf(settings.texts?.[settings.language], namespace, plainKey, values, settings.language) ?? textOf(PACKAGE_TEXTS_BY_LANGUAGE[settings.language], namespace, plainKey, values, settings.language) ?? textOf(PACKAGE_TEXTS_BY_LANGUAGE[DEFAULT_LANGUAGE], namespace, plainKey, values, DEFAULT_LANGUAGE);
|
|
66
|
+
if (text !== void 0) {
|
|
67
|
+
return interpolate(text, values);
|
|
68
|
+
}
|
|
69
|
+
if (typeof values?.defaultValue === "string") {
|
|
70
|
+
return interpolate(values.defaultValue, values);
|
|
71
|
+
}
|
|
72
|
+
return `${namespace}${NAMESPACE_SEPARATOR}${plainKey}`;
|
|
73
|
+
}
|
|
74
|
+
function translateToolkit(defaultNamespace, key, values) {
|
|
75
|
+
return translateWith(currentSettings, defaultNamespace, key, values);
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
DEFAULT_CURRENCY,
|
|
79
|
+
DEFAULT_LANGUAGE,
|
|
80
|
+
browserTimeZone,
|
|
81
|
+
configureToolkit,
|
|
82
|
+
intlLocaleOf,
|
|
83
|
+
toolkitSettings,
|
|
84
|
+
translateToolkit,
|
|
85
|
+
translateWith
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=toolkitSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkitSettings.js","sources":["../../src/toolkit/toolkitSettings.js"],"sourcesContent":["// La configuración del paquete: idioma, textos, zona horaria, moneda, nombre de la aplicación y navegación.\n//\n// La pone ToolkitProvider en cada render y la leen también las funciones que no son componentes (formatos de fecha y\n// número, avisos, errores del servidor). Sin proveedor valen los de omisión: español, la zona del navegador y la\n// navegación del navegador.\n//\n// Los textos se resuelven en este orden, para que cada proyecto cambie solo lo que necesite:\n// 1. translate del proyecto (por ejemplo el t de i18next), si regresa un texto;\n// 2. los textos que el proyecto pasó en `texts`, del idioma activo;\n// 3. los textos del paquete (locales/), del idioma activo y, si no está, en español.\n// Las llaves usan la forma de i18next: «namespace:llave.anidada», {{variable}} y plurales con _one / _other.\n//\n// Funciones puras, no renderizan: function (regla de la casa).\nimport es from '@/locales/es.js';\nimport en from '@/locales/en.js';\n\nexport const DEFAULT_LANGUAGE = 'es';\n// la moneda de los montos (código ISO 4217) cuando el proyecto no dice otra\nexport const DEFAULT_CURRENCY = 'MXN';\n\nconst PACKAGE_TEXTS_BY_LANGUAGE = Object.freeze({es, en});\n\n// cómo se escriben números y fechas en cada idioma (Intl)\nconst INTL_LOCALE_BY_LANGUAGE = Object.freeze({es: 'es-MX', en: 'en-US'});\n\nconst NAMESPACE_SEPARATOR = ':';\nconst KEY_SEPARATOR = '.';\nconst PLURAL_SEPARATOR = '_';\nconst PLURAL_OTHER = 'other';\nconst INTERPOLATION = /\\{\\{\\s*(\\w+)\\s*\\}\\}/g;\n\n/**\n * La zona horaria del navegador; si el navegador no la sabe, la de la Ciudad de México.\n *\n * @returns {string}\n */\nexport function browserTimeZone() {\n return Intl.DateTimeFormat().resolvedOptions().timeZone ?? 'America/Mexico_City';\n}\n\nlet currentSettings = Object.freeze({\n language: DEFAULT_LANGUAGE,\n texts: {},\n translate: null,\n timeZone: browserTimeZone(),\n currency: DEFAULT_CURRENCY,\n appName: '',\n // la compilación del front que corre en esta pestaña ('' en desarrollo): con ella se sabe si hay una versión nueva\n buildId: '',\n});\n\n/**\n * Cambia la configuración que leen las funciones del paquete. La llama ToolkitProvider; un proyecto sin React (o una\n * prueba) la puede llamar directo.\n *\n * @param {{language?: string, texts?: object, translate?: Function|null, timeZone?: string, currency?: string, appName?: string, buildId?: string}} settings\n * @returns {void}\n */\nexport function configureToolkit(settings) {\n currentSettings = Object.freeze({...currentSettings, ...settings});\n}\n\n/**\n * La configuración vigente.\n *\n * @returns {{language: string, texts: object, translate: Function|null, timeZone: string, currency: string, appName: string, buildId: string}}\n */\nexport function toolkitSettings() {\n return currentSettings;\n}\n\n/**\n * El locale de Intl del idioma (es → es-MX, en → en-US).\n *\n * @param {string} language\n * @returns {string}\n */\nexport function intlLocaleOf(language) {\n return INTL_LOCALE_BY_LANGUAGE[language] ?? INTL_LOCALE_BY_LANGUAGE[DEFAULT_LANGUAGE];\n}\n\n/**\n * Lo que hay en una ruta de llaves («toast.error») dentro de un objeto de textos.\n *\n * @param {object|undefined} texts\n * @param {string} path\n * @returns {unknown}\n */\nfunction valueAtPath(texts, path) {\n let value = texts;\n for (const part of path.split(KEY_SEPARATOR)) {\n if (value === null || typeof value !== 'object') {\n return undefined;\n }\n value = value[part];\n }\n\n return value;\n}\n\n/**\n * El texto de una llave en un objeto de textos, con su plural si trae count (como i18next: llave_one, llave_other).\n *\n * @param {object|undefined} texts los textos de un idioma, por namespace\n * @param {string} namespace\n * @param {string} key\n * @param {object|undefined} values\n * @param {string} language\n * @returns {string|undefined}\n */\nfunction textOf(texts, namespace, key, values, language) {\n const namespaceTexts = texts?.[namespace];\n if (typeof values?.count === 'number') {\n const pluralCategory = new Intl.PluralRules(intlLocaleOf(language)).select(values.count);\n const pluralText = valueAtPath(namespaceTexts, `${key}${PLURAL_SEPARATOR}${pluralCategory}`)\n ?? valueAtPath(namespaceTexts, `${key}${PLURAL_SEPARATOR}${PLURAL_OTHER}`);\n if (typeof pluralText === 'string') {\n return pluralText;\n }\n }\n\n const text = valueAtPath(namespaceTexts, key);\n\n return typeof text === 'string' ? text : undefined;\n}\n\n/**\n * Pone los valores en las {{variables}} del texto; una variable sin valor se queda como está.\n *\n * @param {string} text\n * @param {object|undefined} values\n * @returns {string}\n */\nfunction interpolate(text, values) {\n return text.replace(INTERPOLATION, (placeholder, name) => (values?.[name] === undefined ? placeholder : String(values[name])));\n}\n\n/**\n * El texto de una llave con una configuración dada (la del proveedor o la vigente).\n *\n * @param {{language: string, texts: object, translate: Function|null}} settings\n * @param {string} defaultNamespace el namespace cuando la llave no trae uno («table», «common», «problems»...)\n * @param {string} key «llave» o «namespace:llave»\n * @param {object} [values] las variables del texto y, para el plural, count\n * @returns {string} la llave misma si no hay texto, para que se note qué falta\n */\nexport function translateWith(settings, defaultNamespace, key, values) {\n const [namespace, plainKey] = key.includes(NAMESPACE_SEPARATOR) ? key.split(NAMESPACE_SEPARATOR, 2) : [defaultNamespace, key];\n const projectText = settings.translate?.(namespace, plainKey, values);\n if (typeof projectText === 'string') {\n return projectText;\n }\n\n const text = textOf(settings.texts?.[settings.language], namespace, plainKey, values, settings.language)\n ?? textOf(PACKAGE_TEXTS_BY_LANGUAGE[settings.language], namespace, plainKey, values, settings.language)\n ?? textOf(PACKAGE_TEXTS_BY_LANGUAGE[DEFAULT_LANGUAGE], namespace, plainKey, values, DEFAULT_LANGUAGE);\n\n if (text !== undefined) {\n return interpolate(text, values);\n }\n // como en i18next: sin la llave en ningún lado, el texto por omisión que pidió quien llama (un globo opcional pasa ''\n // y no se pinta); sin él, la llave tal cual, para que se note qué falta\n if (typeof values?.defaultValue === 'string') {\n return interpolate(values.defaultValue, values);\n }\n return `${namespace}${NAMESPACE_SEPARATOR}${plainKey}`;\n}\n\n/**\n * El texto de una llave con la configuración vigente, para lo que no es componente (avisos, errores del servidor).\n *\n * @param {string} defaultNamespace\n * @param {string} key\n * @param {object} [values]\n * @returns {string}\n */\nexport function translateToolkit(defaultNamespace, key, values) {\n return translateWith(currentSettings, defaultNamespace, key, values);\n}\n"],"names":[],"mappings":";;AAgBY,MAAC,mBAAmB;AAEpB,MAAC,mBAAmB;AAEhC,MAAM,4BAA4B,OAAO,OAAO,EAAC,IAAI,GAAE,CAAC;AAGxD,MAAM,0BAA0B,OAAO,OAAO,EAAC,IAAI,SAAS,IAAI,QAAO,CAAC;AAExE,MAAM,sBAAsB;AAC5B,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,eAAe;AACrB,MAAM,gBAAgB;AAOf,SAAS,kBAAkB;AAC9B,SAAO,KAAK,eAAc,EAAG,gBAAe,EAAG,YAAY;AAC/D;AAEA,IAAI,kBAAkB,OAAO,OAAO;AAAA,EAChC,UAAU;AAAA,EACV,OAAO,CAAA;AAAA,EACP,WAAW;AAAA,EACX,UAAU,gBAAe;AAAA,EACzB,UAAU;AAAA,EACV,SAAS;AAAA;AAAA,EAET,SAAS;AACb,CAAC;AASM,SAAS,iBAAiB,UAAU;AACvC,oBAAkB,OAAO,OAAO,EAAC,GAAG,iBAAiB,GAAG,SAAQ,CAAC;AACrE;AAOO,SAAS,kBAAkB;AAC9B,SAAO;AACX;AAQO,SAAS,aAAa,UAAU;AACnC,SAAO,wBAAwB,QAAQ,KAAK,wBAAwB,gBAAgB;AACxF;AASA,SAAS,YAAY,OAAO,MAAM;AAC9B,MAAI,QAAQ;AACZ,aAAW,QAAQ,KAAK,MAAM,aAAa,GAAG;AAC1C,QAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC7C,aAAO;AAAA,IACX;AACA,YAAQ,MAAM,IAAI;AAAA,EACtB;AAEA,SAAO;AACX;AAYA,SAAS,OAAO,OAAO,WAAW,KAAK,QAAQ,UAAU;AACrD,QAAM,iBAAiB,QAAQ,SAAS;AACxC,MAAI,OAAO,QAAQ,UAAU,UAAU;AACnC,UAAM,iBAAiB,IAAI,KAAK,YAAY,aAAa,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAK;AACvF,UAAM,aAAa,YAAY,gBAAgB,GAAG,GAAG,GAAG,gBAAgB,GAAG,cAAc,EAAE,KACpF,YAAY,gBAAgB,GAAG,GAAG,GAAG,gBAAgB,GAAG,YAAY,EAAE;AAC7E,QAAI,OAAO,eAAe,UAAU;AAChC,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,QAAM,OAAO,YAAY,gBAAgB,GAAG;AAE5C,SAAO,OAAO,SAAS,WAAW,OAAO;AAC7C;AASA,SAAS,YAAY,MAAM,QAAQ;AAC/B,SAAO,KAAK,QAAQ,eAAe,CAAC,aAAa,SAAU,SAAS,IAAI,MAAM,SAAY,cAAc,OAAO,OAAO,IAAI,CAAC,CAAE;AACjI;AAWO,SAAS,cAAc,UAAU,kBAAkB,KAAK,QAAQ;AACnE,QAAM,CAAC,WAAW,QAAQ,IAAI,IAAI,SAAS,mBAAmB,IAAI,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,GAAG;AAC5H,QAAM,cAAc,SAAS,YAAY,WAAW,UAAU,MAAM;AACpE,MAAI,OAAO,gBAAgB,UAAU;AACjC,WAAO;AAAA,EACX;AAEA,QAAM,OAAO,OAAO,SAAS,QAAQ,SAAS,QAAQ,GAAG,WAAW,UAAU,QAAQ,SAAS,QAAQ,KAChG,OAAO,0BAA0B,SAAS,QAAQ,GAAG,WAAW,UAAU,QAAQ,SAAS,QAAQ,KACnG,OAAO,0BAA0B,gBAAgB,GAAG,WAAW,UAAU,QAAQ,gBAAgB;AAExG,MAAI,SAAS,QAAW;AACpB,WAAO,YAAY,MAAM,MAAM;AAAA,EACnC;AAGA,MAAI,OAAO,QAAQ,iBAAiB,UAAU;AAC1C,WAAO,YAAY,OAAO,cAAc,MAAM;AAAA,EAClD;AACA,SAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ;AACxD;AAUO,SAAS,iBAAiB,kBAAkB,KAAK,QAAQ;AAC5D,SAAO,cAAc,iBAAiB,kBAAkB,KAAK,MAAM;AACvE;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useToolkitSettings } from "./toolkitContext.js";
|
|
4
|
+
import { translateWith } from "./toolkitSettings.js";
|
|
5
|
+
function useToolkitTranslation(namespace) {
|
|
6
|
+
const settings = useToolkitSettings();
|
|
7
|
+
const defaultNamespace = Array.isArray(namespace) ? namespace[0] : namespace;
|
|
8
|
+
const t = useCallback(
|
|
9
|
+
(key, values) => translateWith(settings, defaultNamespace, key, values),
|
|
10
|
+
[settings, defaultNamespace]
|
|
11
|
+
);
|
|
12
|
+
const changeLanguage = useCallback((language) => settings.onLanguageChange?.(language), [settings]);
|
|
13
|
+
return { t, language: settings.language, changeLanguage };
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
useToolkitTranslation
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useToolkitTranslation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToolkitTranslation.js","sources":["../../src/toolkit/useToolkitTranslation.js"],"sourcesContent":["// Los textos del paquete dentro de un componente, con la misma forma que useTranslation de react-i18next:\n//\n// const {t, language, changeLanguage} = useToolkitTranslation('table');\n// t('goToPage.of', {count: pageCount, total})\n//\n// Se vuelve a pintar cuando cambia el idioma o los textos del proveedor. El orden en que se buscan los textos está en\n// toolkitSettings.js.\n//\n// Hook genérico: function (regla de la casa).\nimport {useCallback} from 'react';\nimport {useToolkitSettings} from '@/toolkit/toolkitContext.js';\nimport {translateWith} from '@/toolkit/toolkitSettings.js';\n\n/**\n * @param {string|string[]} [namespace] el namespace de las llaves sin prefijo; con una lista, el primero. Sin él, cada\n * llave lleva el suyo ('orders:list.title')\n * @returns {{t: (key: string, values?: object) => string, language: string, changeLanguage: (language: string) => void}}\n */\nexport function useToolkitTranslation(namespace) {\n const settings = useToolkitSettings();\n const defaultNamespace = Array.isArray(namespace) ? namespace[0] : namespace;\n const t = useCallback(\n (key, values) => translateWith(settings, defaultNamespace, key, values),\n [settings, defaultNamespace],\n );\n // sin onLanguageChange del proyecto no hay a quién avisarle: el botón de idioma no hace nada\n const changeLanguage = useCallback((language) => settings.onLanguageChange?.(language), [settings]);\n\n return {t, language: settings.language, changeLanguage};\n}\n"],"names":[],"mappings":";;;;AAkBO,SAAS,sBAAsB,WAAW;AAC7C,QAAM,WAAW,mBAAkB;AACnC,QAAM,mBAAmB,MAAM,QAAQ,SAAS,IAAI,UAAU,CAAC,IAAI;AACnE,QAAM,IAAI;AAAA,IACN,CAAC,KAAK,WAAW,cAAc,UAAU,kBAAkB,KAAK,MAAM;AAAA,IACtE,CAAC,UAAU,gBAAgB;AAAA,EACnC;AAEI,QAAM,iBAAiB,YAAY,CAAC,aAAa,SAAS,mBAAmB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAElG,SAAO,EAAC,GAAG,UAAU,SAAS,UAAU,eAAc;AAC1D;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {boolean} props.open
|
|
4
|
+
* @param {() => void} props.onClose
|
|
5
|
+
* @param {string} props.title ya traducido («Historial de Q3 · ago 2026»)
|
|
6
|
+
* @param {import('react').ReactNode} [props.subtitle]
|
|
7
|
+
* @param {string} props.subjectKey
|
|
8
|
+
* @param {(tableRequest: object, signal: AbortSignal) => Promise<{rows: Array, total: number, facets?: object}>} props.fetchPage
|
|
9
|
+
* @param {Record<string, object>} props.eventDictionary
|
|
10
|
+
* @param {Record<string, object>} [props.resultDictionary]
|
|
11
|
+
* @param {Array<object>} [props.extraColumns]
|
|
12
|
+
* @param {import('react').ReactNode} [props.header] va entre el subtítulo y la tabla (p. ej. pestañas que cambian lo que se
|
|
13
|
+
* consulta)
|
|
14
|
+
* @param {(row: any) => string|null} [props.eventSuffixOf] complemento del evento de un renglón (AuditTrailTable)
|
|
15
|
+
*/
|
|
16
|
+
export default function AuditTrailDialog({ open, onClose, title, subtitle, subjectKey, fetchPage, eventDictionary, resultDictionary, extraColumns, header, eventSuffixOf, }: {
|
|
17
|
+
open: boolean;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
title: string;
|
|
20
|
+
subtitle?: import('react').ReactNode;
|
|
21
|
+
subjectKey: string;
|
|
22
|
+
fetchPage: (tableRequest: object, signal: AbortSignal) => Promise<{
|
|
23
|
+
rows: any[];
|
|
24
|
+
total: number;
|
|
25
|
+
facets?: object;
|
|
26
|
+
}>;
|
|
27
|
+
eventDictionary: Record<string, object>;
|
|
28
|
+
resultDictionary?: Record<string, object>;
|
|
29
|
+
extraColumns?: Array<object>;
|
|
30
|
+
header?: import('react').ReactNode;
|
|
31
|
+
eventSuffixOf?: (row: any) => string | null;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {string} props.subjectKey identifica el renglón (cambia la consulta al cambiar de renglón); '' no consulta
|
|
4
|
+
* @param {(tableRequest: object, signal: AbortSignal) => Promise<{rows: Array, total: number, facets?: object}>} props.fetchPage
|
|
5
|
+
* @param {Record<string, object>} props.eventDictionary
|
|
6
|
+
* @param {Record<string, object>} [props.resultDictionary]
|
|
7
|
+
* @param {Array<object>} [props.extraColumns] columnas del DataGrid propias del módulo (archivo, origen, motivo...)
|
|
8
|
+
* @param {(row: any) => string|null} [props.eventSuffixOf] texto que va después del evento con « · » (p. ej. para
|
|
9
|
+
* quién era la descarga); null = solo el evento
|
|
10
|
+
* @param {string} props.ariaLabel
|
|
11
|
+
* @param {number} [props.maxGridHeight]
|
|
12
|
+
* @param {unknown} [props.refreshToken] cambia para volver a consultar (después de una acción sobre el mismo renglón)
|
|
13
|
+
*/
|
|
14
|
+
export default function AuditTrailTable({ subjectKey, fetchPage, eventDictionary, resultDictionary, extraColumns, ariaLabel, maxGridHeight, refreshToken, eventSuffixOf, }: {
|
|
15
|
+
subjectKey: string;
|
|
16
|
+
fetchPage: (tableRequest: object, signal: AbortSignal) => Promise<{
|
|
17
|
+
rows: any[];
|
|
18
|
+
total: number;
|
|
19
|
+
facets?: object;
|
|
20
|
+
}>;
|
|
21
|
+
eventDictionary: Record<string, object>;
|
|
22
|
+
resultDictionary?: Record<string, object>;
|
|
23
|
+
extraColumns?: Array<object>;
|
|
24
|
+
eventSuffixOf?: (row: any) => string | null;
|
|
25
|
+
ariaLabel: string;
|
|
26
|
+
maxGridHeight?: number;
|
|
27
|
+
refreshToken?: unknown;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{activeCount?: number, onClear: () => void, children: import('react').ReactNode}} props children = el filtro
|
|
3
|
+
*/
|
|
4
|
+
export default function HeaderFilterPopover({ activeCount, onClear, children }: {
|
|
5
|
+
activeCount?: number;
|
|
6
|
+
onClear: () => void;
|
|
7
|
+
children: import('react').ReactNode;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {string[]} [props.value]
|
|
4
|
+
* @param {(value: string[]) => void} props.onChange
|
|
5
|
+
* @param {Array<{value: string, total: number}>} [props.options] faceta del servidor
|
|
6
|
+
* @param {(value: string) => import('react').ReactNode} [props.renderOption] cómo se lee el valor (diccionario)
|
|
7
|
+
*/
|
|
8
|
+
export default function MultiSelectColumnFilter({ value, onChange, options, renderOption }: {
|
|
9
|
+
value?: string[];
|
|
10
|
+
onChange: (value: string[]) => void;
|
|
11
|
+
options?: Array<{
|
|
12
|
+
value: string;
|
|
13
|
+
total: number;
|
|
14
|
+
}>;
|
|
15
|
+
renderOption?: (value: string) => import('react').ReactNode;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {string} props.label
|
|
4
|
+
* @param {boolean} [props.sortable]
|
|
5
|
+
* @param {{column: string, direction: 'asc'|'desc'}} [props.sortEntry]
|
|
6
|
+
* @param {() => void} [props.onSort]
|
|
7
|
+
* @param {() => void} [props.onClearSort]
|
|
8
|
+
* @param {boolean} [props.filterable]
|
|
9
|
+
* @param {number} [props.activeCount]
|
|
10
|
+
* @param {() => void} [props.onClear]
|
|
11
|
+
* @param {import('react').ReactNode} [props.children] el filtro de la columna
|
|
12
|
+
*/
|
|
13
|
+
export default function SortableFilterHeader({ label, sortable, sortEntry, onSort, onClearSort, filterable, activeCount, onClear, children, }: {
|
|
14
|
+
label: string;
|
|
15
|
+
sortable?: boolean;
|
|
16
|
+
sortEntry?: {
|
|
17
|
+
column: string;
|
|
18
|
+
direction: 'asc' | 'desc';
|
|
19
|
+
};
|
|
20
|
+
onSort?: () => void;
|
|
21
|
+
onClearSort?: () => void;
|
|
22
|
+
filterable?: boolean;
|
|
23
|
+
activeCount?: number;
|
|
24
|
+
onClear?: () => void;
|
|
25
|
+
children?: import('react').ReactNode;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{value: string, onChange: (value: string) => void, label?: string}} props label ya traducido
|
|
3
|
+
*/
|
|
4
|
+
export default function TextColumnFilter({ value, onChange, label }: {
|
|
5
|
+
value: string;
|
|
6
|
+
onChange: (value: string) => void;
|
|
7
|
+
label?: string;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as HeaderFilterPopover } from './HeaderFilterPopover.js';
|
|
2
|
+
export { default as MultiSelectColumnFilter } from './MultiSelectColumnFilter.js';
|
|
3
|
+
export { default as SortableFilterHeader } from './SortableFilterHeader.js';
|
|
4
|
+
export { default as TextColumnFilter } from './TextColumnFilter.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{filtered?: boolean, label?: string, onClearFilters?: () => void}} props label ya traducido
|
|
3
|
+
*/
|
|
4
|
+
export default function EmptyState({ filtered, label, onClearFilters }: {
|
|
5
|
+
filtered?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
onClearFilters?: () => void;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {Array<object>} props.chipConfig lo que arma buildChipConfig
|
|
4
|
+
* @param {object} props.filters
|
|
5
|
+
* @param {(field: string, value: unknown) => void} props.onSetFilter
|
|
6
|
+
* @param {() => void} props.onClearAll
|
|
7
|
+
* @param {number} [props.quickActiveCount] accesos rápidos puestos que no tienen chip aquí
|
|
8
|
+
*/
|
|
9
|
+
export default function FilterChips({ chipConfig, filters, onSetFilter, onClearAll, quickActiveCount }: {
|
|
10
|
+
chipConfig: Array<object>;
|
|
11
|
+
filters: object;
|
|
12
|
+
onSetFilter: (field: string, value: unknown) => void;
|
|
13
|
+
onClearAll: () => void;
|
|
14
|
+
quickActiveCount?: number;
|
|
15
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{page: number, pageCount: number, onChange: (page: number) => void}} props page cuenta desde 0
|
|
3
|
+
*/
|
|
4
|
+
export default function GoToPage({ page, pageCount, onChange }: {
|
|
5
|
+
page: number;
|
|
6
|
+
pageCount: number;
|
|
7
|
+
onChange: (page: number) => void;
|
|
8
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} props
|
|
3
|
+
* @param {(params: {filters: Record<string, any>, sortOrders: Array<{column: string, direction: 'asc'|'desc'}>, page: number, pageSize: number}, signal: AbortSignal) => Promise<{rows: any[], total: number, facets?: Record<string, Array<{value: any, total: number}>>, capped?: boolean}>} props.fetchPage
|
|
4
|
+
* page cuenta desde 0; toServerTableParams lo convierte a la query del API
|
|
5
|
+
* @param {string} props.queryKey cambia cuando cambia el CONJUNTO (no los filtros): dispara recarga
|
|
6
|
+
* @param {boolean} [props.enabled] false mientras la sección está oculta: una tabla que nadie ve no consulta
|
|
7
|
+
* @param {Array<object>} props.columns textColumn / facetColumn / detailColumn o columnas del DataGrid
|
|
8
|
+
* @param {Record<string, string>} [props.filterKinds]
|
|
9
|
+
* @param {Record<string, unknown>} [props.filterDefaults]
|
|
10
|
+
* @param {Array<object>} [props.chipConfig] buildChipConfig
|
|
11
|
+
* @param {Array<object>} [props.quickFilters] {field, facetKey, caption, allLabel, renderLabel, order, clears,
|
|
12
|
+
* isOverridden, renderExtra, allCountKey, hideAllCount}
|
|
13
|
+
* @param {string|null} [props.searchField] filtro de texto que se saca a la barra; null quita la caja
|
|
14
|
+
* @param {string} [props.searchPlaceholder]
|
|
15
|
+
* @param {boolean} [props.searchInBar] la caja de búsqueda va arriba, en la barra de la app (BarActions): en escritorio,
|
|
16
|
+
* como el buscador de una ventana de macOS; en el teléfono con cápsulas flota arriba con las demás; sin cápsulas se
|
|
17
|
+
* queda aquí. Por omisión no
|
|
18
|
+
* @param {boolean} [props.collapseSearchInBar] en la barra, sin usar se encoge a la lupa y se estira al picarla; por
|
|
19
|
+
* omisión sí (false: siempre abierta)
|
|
20
|
+
* @param {string} [props.emptyLabel]
|
|
21
|
+
* @param {(total: number) => string} [props.countLabel] "12 pedidos"; por defecto "12 registros"
|
|
22
|
+
* @param {number[]} [props.pageSizeOptions]
|
|
23
|
+
* @param {number} [props.defaultPageSize]
|
|
24
|
+
* @param {(row: any) => string|number} [props.getRowId]
|
|
25
|
+
* @param {string} [props.prefix] estado en la URL con este prefijo (nuqs); sin él, en memoria
|
|
26
|
+
* @param {unknown} [props.refreshToken] cambia para volver a consultar la misma página (después de una acción)
|
|
27
|
+
* @param {(summary: {total: number, capped: boolean}) => import('react').ReactNode} [props.footer]
|
|
28
|
+
* @param {import('react').ReactNode} [props.toolbarExtra] a la derecha del conteo (p. ej. el selector de año)
|
|
29
|
+
* @param {(summary: {countText: string, total: number, capped: boolean}) => import('react').ReactNode} [props.header] reemplaza
|
|
30
|
+
* el renglón del conteo: la página pinta título, conteo y controles en uno solo. countText ya viene traducido y con
|
|
31
|
+
* el tope
|
|
32
|
+
* @param {import('react').ReactNode} [props.beforeQuickFilters] arriba de los accesos rápidos (p. ej. las pestañas de producto)
|
|
33
|
+
* @param {Array<object>} [props.columnGroupingModel] bandas que agrupan columnas bajo un nombre, arriba de sus
|
|
34
|
+
* encabezados (columnGroupingModel del DataGrid). Con ellas el encabezado mide un renglón más
|
|
35
|
+
* @param {(params: any) => string} [props.getRowClassName]
|
|
36
|
+
* @param {(row: any) => boolean} [props.isRowVisible] cuáles renglones de la página se pintan; los demás se esconden
|
|
37
|
+
* SIN volver a consultar (p. ej. plegar un grupo de renglones). Sin ella se pintan todos. OJO: va con useCallback;
|
|
38
|
+
* una función nueva en cada pintada haría filtrar la página cada vez
|
|
39
|
+
* @param {boolean} [props.striped] renglones alternos (cebra) con el color de hover del tema; al pasar el cursor se usa
|
|
40
|
+
* el de «seleccionado» para que el renglón bajo el cursor se siga distinguiendo
|
|
41
|
+
* @param {(params: any) => number|'auto'|null} [props.getRowHeight]
|
|
42
|
+
* @param {boolean} [props.hideFooterWhenAllRowsFit] esconde el pie (el paginador) mientras todo lo que hay cabe en la
|
|
43
|
+
* página; si un día no cabe, el pie vuelve solo. Para tablas que casi nunca pasan de una página
|
|
44
|
+
* @param {boolean} [props.showGoToPage] «Ir a página N» junto al paginador; por omisión escondido (con las flechas basta en
|
|
45
|
+
* casi todas las tablas). Para listas de muchas páginas que se recorren por número
|
|
46
|
+
* @param {object} [props.gridSx] estilos extra del DataGrid (clases de renglón)
|
|
47
|
+
* @param {number} [props.maxGridHeight] alto máximo del contenedor; sin él la tabla crece con sus renglones (default)
|
|
48
|
+
* @param {string} [props.ariaLabel] nombre de la tabla para lectores de pantalla
|
|
49
|
+
* @param {string} [props.fixedColumn] campo de la columna que se queda pegada a la izquierda al deslizar de lado (como
|
|
50
|
+
* fixedSelectColumn de mui-datatables)
|
|
51
|
+
*/
|
|
52
|
+
export default function ServerTable({ fetchPage, queryKey, enabled, columns, filterKinds, filterDefaults, chipConfig, quickFilters, searchField, searchPlaceholder, searchInBar, collapseSearchInBar, emptyLabel, countLabel, pageSizeOptions, defaultPageSize, getRowId, prefix, refreshToken, footer, toolbarExtra, header, beforeQuickFilters, columnGroupingModel, getRowClassName, isRowVisible, hideFooterWhenAllRowsFit, showGoToPage, striped, getRowHeight, gridSx, maxGridHeight, ariaLabel, fixedColumn, }: {
|
|
53
|
+
fetchPage: (params: {
|
|
54
|
+
filters: Record<string, any>;
|
|
55
|
+
sortOrders: Array<{
|
|
56
|
+
column: string;
|
|
57
|
+
direction: 'asc' | 'desc';
|
|
58
|
+
}>;
|
|
59
|
+
page: number;
|
|
60
|
+
pageSize: number;
|
|
61
|
+
}, signal: AbortSignal) => Promise<{
|
|
62
|
+
rows: any[];
|
|
63
|
+
total: number;
|
|
64
|
+
facets?: Record<string, Array<{
|
|
65
|
+
value: any;
|
|
66
|
+
total: number;
|
|
67
|
+
}>>;
|
|
68
|
+
capped?: boolean;
|
|
69
|
+
}>;
|
|
70
|
+
queryKey: string;
|
|
71
|
+
enabled?: boolean;
|
|
72
|
+
columns: Array<object>;
|
|
73
|
+
filterKinds?: Record<string, string>;
|
|
74
|
+
filterDefaults?: Record<string, unknown>;
|
|
75
|
+
chipConfig?: Array<object>;
|
|
76
|
+
quickFilters?: Array<object>;
|
|
77
|
+
searchField?: string | null;
|
|
78
|
+
searchPlaceholder?: string;
|
|
79
|
+
searchInBar?: boolean;
|
|
80
|
+
collapseSearchInBar?: boolean;
|
|
81
|
+
emptyLabel?: string;
|
|
82
|
+
countLabel?: (total: number) => string;
|
|
83
|
+
pageSizeOptions?: number[];
|
|
84
|
+
defaultPageSize?: number;
|
|
85
|
+
getRowId?: (row: any) => string | number;
|
|
86
|
+
prefix?: string;
|
|
87
|
+
refreshToken?: unknown;
|
|
88
|
+
footer?: (summary: {
|
|
89
|
+
total: number;
|
|
90
|
+
capped: boolean;
|
|
91
|
+
}) => import('react').ReactNode;
|
|
92
|
+
toolbarExtra?: import('react').ReactNode;
|
|
93
|
+
header?: (summary: {
|
|
94
|
+
countText: string;
|
|
95
|
+
total: number;
|
|
96
|
+
capped: boolean;
|
|
97
|
+
}) => import('react').ReactNode;
|
|
98
|
+
beforeQuickFilters?: import('react').ReactNode;
|
|
99
|
+
columnGroupingModel?: Array<object>;
|
|
100
|
+
getRowClassName?: (params: any) => string;
|
|
101
|
+
isRowVisible?: (row: any) => boolean;
|
|
102
|
+
striped?: boolean;
|
|
103
|
+
getRowHeight?: (params: any) => number | 'auto' | null;
|
|
104
|
+
hideFooterWhenAllRowsFit?: boolean;
|
|
105
|
+
showGoToPage?: boolean;
|
|
106
|
+
gridSx?: object;
|
|
107
|
+
maxGridHeight?: number;
|
|
108
|
+
ariaLabel?: string;
|
|
109
|
+
fixedColumn?: string;
|
|
110
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} declaration
|
|
3
|
+
* @param {Array<{key: string, label: string, format?: (value: string) => string}>} [declaration.text]
|
|
4
|
+
* @param {Array<{key: string, label: string, itemLabel?: (value: string) => string}>} [declaration.multiSelect]
|
|
5
|
+
* @returns {Array<{key: string, isActive: (value: unknown) => boolean, chipsFor: Function}>}
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildChipConfig({ text, multiSelect }?: {
|
|
8
|
+
text?: Array<{
|
|
9
|
+
key: string;
|
|
10
|
+
label: string;
|
|
11
|
+
format?: (value: string) => string;
|
|
12
|
+
}>;
|
|
13
|
+
multiSelect?: Array<{
|
|
14
|
+
key: string;
|
|
15
|
+
label: string;
|
|
16
|
+
itemLabel?: (value: string) => string;
|
|
17
|
+
}>;
|
|
18
|
+
}): Array<{
|
|
19
|
+
key: string;
|
|
20
|
+
isActive: (value: unknown) => boolean;
|
|
21
|
+
chipsFor: Function;
|
|
22
|
+
}>;
|