@stackcraftmx/calcita 0.0.0-stage → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (900) hide show
  1. package/LICENSE +110 -0
  2. package/README.md +700 -2
  3. package/cli/askQuestions.js +63 -0
  4. package/cli/calcita.js +150 -0
  5. package/cli/makeComponent.js +50 -0
  6. package/cli/makeForm.js +68 -0
  7. package/cli/makeModule.js +78 -0
  8. package/cli/makePage.js +62 -0
  9. package/cli/names.js +64 -0
  10. package/cli/newProject.js +103 -0
  11. package/cli/packageVersions.js +38 -0
  12. package/cli/projectAnswers.js +145 -0
  13. package/cli/projectConfig.js +38 -0
  14. package/cli/projectFiles.js +128 -0
  15. package/cli/screenLabels.js +41 -0
  16. package/cli/templateFiles.js +186 -0
  17. package/cli/templates/component/core/__ComponentName__.jsx.tpl +23 -0
  18. package/cli/templates/component/module/__ComponentName__.jsx.tpl +21 -0
  19. package/cli/templates/form/formik/__FormName__.jsx.tpl +50 -0
  20. package/cli/templates/form/hookForm/__FormName__.jsx.tpl +53 -0
  21. package/cli/templates/form/shared/__formName__Schema.js.tpl +20 -0
  22. package/cli/templates/form/shared/__formName__Texts.js.tpl +6 -0
  23. package/cli/templates/module/__Name__Page.jsx.tpl +75 -0
  24. package/cli/templates/module/__name__Api.js.tpl +39 -0
  25. package/cli/templates/module/__name__Texts.js.tpl +27 -0
  26. package/cli/templates/module/menu.js.tpl +21 -0
  27. package/cli/templates/module/routes.js.tpl +7 -0
  28. package/cli/templates/moduleServer/__name__Server.js.tpl +68 -0
  29. package/cli/templates/page/__PageName__Page.jsx.tpl +22 -0
  30. package/cli/templates/page/__pageName__PageTexts.js.tpl +23 -0
  31. package/cli/templates/project/README.md.tpl +83 -0
  32. package/cli/templates/project/dot-gitignore.tpl +11 -0
  33. package/cli/templates/project/index.html.tpl +20 -0
  34. package/cli/templates/project/jsconfig.json.tpl +16 -0
  35. package/cli/templates/project/pnpm-workspace.yaml.tpl +5 -0
  36. package/cli/templates/project/public/favicon.svg +1 -0
  37. package/cli/templates/project/public/icons/apple-touch-icon.png +0 -0
  38. package/cli/templates/project/public/icons/icon-192.png +0 -0
  39. package/cli/templates/project/public/icons/icon-512-maskable.png +0 -0
  40. package/cli/templates/project/public/icons/icon-512.png +0 -0
  41. package/cli/templates/project/public/manifest.webmanifest.tpl +17 -0
  42. package/cli/templates/project/src/app/AppProviders.jsx.tpl +107 -0
  43. package/cli/templates/project/src/app/AppShell.jsx.tpl +87 -0
  44. package/cli/templates/project/src/app/appRouter.jsx.tpl +51 -0
  45. package/cli/templates/project/src/app/appSettings.js.tpl +27 -0
  46. package/cli/templates/project/src/app/appTexts.js.tpl +15 -0
  47. package/cli/templates/project/src/app/combineTexts.js.tpl +31 -0
  48. package/cli/templates/project/src/app/i18n.js.tpl +19 -0
  49. package/cli/templates/project/src/app/shellTexts.js.tpl +16 -0
  50. package/cli/templates/project/src/core/AppLogo.jsx.tpl +14 -0
  51. package/cli/templates/project/src/core/accountConnector.js.tpl +36 -0
  52. package/cli/templates/project/src/core/apiClient.js.tpl +15 -0
  53. package/cli/templates/project/src/core/appPaths.js.tpl +11 -0
  54. package/cli/templates/project/src/core/index.js.tpl +9 -0
  55. package/cli/templates/project/src/core/publicPaths.js.tpl +24 -0
  56. package/cli/templates/project/src/fakeServer/networkDelay.js.tpl +40 -0
  57. package/cli/templates/project/src/fakeServer/serverText.js.tpl +20 -0
  58. package/cli/templates/project/src/main.jsx.tpl +24 -0
  59. package/cli/templates/project/src/modules/auth/ForgotPasswordPage.jsx.tpl +14 -0
  60. package/cli/templates/project/src/modules/auth/ResetPasswordPage.jsx.tpl +15 -0
  61. package/cli/templates/project/src/modules/auth/SignInPage.jsx.tpl +29 -0
  62. package/cli/templates/project/src/modules/auth/authTexts.js.tpl +6 -0
  63. package/cli/templates/project/src/modules/auth/routes.js.tpl +11 -0
  64. package/cli/templates/project/src/modules/home/HomePage.jsx.tpl +38 -0
  65. package/cli/templates/project/src/modules/home/homeTexts.js.tpl +29 -0
  66. package/cli/templates/project/src/modules/home/menu.js.tpl +17 -0
  67. package/cli/templates/project/src/modules/home/routes.js.tpl +4 -0
  68. package/cli/templates/project/src/modules/profile/ProfilePage.jsx.tpl +13 -0
  69. package/cli/templates/project/src/modules/profile/routes.js.tpl +6 -0
  70. package/cli/templates/project/vite.config.js.tpl +53 -0
  71. package/dist/DataTable/AuditTrailDialog.js +40 -0
  72. package/dist/DataTable/AuditTrailDialog.js.map +1 -0
  73. package/dist/DataTable/AuditTrailTable.js +89 -0
  74. package/dist/DataTable/AuditTrailTable.js.map +1 -0
  75. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js +71 -0
  76. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js.map +1 -0
  77. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +51 -0
  78. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -0
  79. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js +54 -0
  80. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js.map +1 -0
  81. package/dist/DataTable/ColumnFilters/TextColumnFilter.js +24 -0
  82. package/dist/DataTable/ColumnFilters/TextColumnFilter.js.map +1 -0
  83. package/dist/DataTable/EmptyState.js +22 -0
  84. package/dist/DataTable/EmptyState.js.map +1 -0
  85. package/dist/DataTable/FilterChips.js +39 -0
  86. package/dist/DataTable/FilterChips.js.map +1 -0
  87. package/dist/DataTable/GoToPage.js +63 -0
  88. package/dist/DataTable/GoToPage.js.map +1 -0
  89. package/dist/DataTable/ServerTable.js +477 -0
  90. package/dist/DataTable/ServerTable.js.map +1 -0
  91. package/dist/DataTable/buildChipConfig.js +27 -0
  92. package/dist/DataTable/buildChipConfig.js.map +1 -0
  93. package/dist/DataTable/columns.js +122 -0
  94. package/dist/DataTable/columns.js.map +1 -0
  95. package/dist/DataTable/filterContext.js +15 -0
  96. package/dist/DataTable/filterContext.js.map +1 -0
  97. package/dist/DataTable/rowSelection.js +61 -0
  98. package/dist/DataTable/rowSelection.js.map +1 -0
  99. package/dist/DataTable/serverTableParams.js +19 -0
  100. package/dist/DataTable/serverTableParams.js.map +1 -0
  101. package/dist/DataTable/tableMachine.js +87 -0
  102. package/dist/DataTable/tableMachine.js.map +1 -0
  103. package/dist/DataTable/useDebouncedFilter.js +29 -0
  104. package/dist/DataTable/useDebouncedFilter.js.map +1 -0
  105. package/dist/DataTable/useTableState.js +132 -0
  106. package/dist/DataTable/useTableState.js.map +1 -0
  107. package/dist/access/Can.js +9 -0
  108. package/dist/access/Can.js.map +1 -0
  109. package/dist/access/PermissionMatrix.js +84 -0
  110. package/dist/access/PermissionMatrix.js.map +1 -0
  111. package/dist/access/RequireAccess.js +14 -0
  112. package/dist/access/RequireAccess.js.map +1 -0
  113. package/dist/access/accessRules.js +49 -0
  114. package/dist/access/accessRules.js.map +1 -0
  115. package/dist/access/permissionGroups.js +43 -0
  116. package/dist/access/permissionGroups.js.map +1 -0
  117. package/dist/access/useCan.js +12 -0
  118. package/dist/access/useCan.js.map +1 -0
  119. package/dist/account/AccountProvider.js +58 -0
  120. package/dist/account/AccountProvider.js.map +1 -0
  121. package/dist/account/AccountSecuritySection.js +81 -0
  122. package/dist/account/AccountSecuritySection.js.map +1 -0
  123. package/dist/account/DemoTotpCodeButton.js +26 -0
  124. package/dist/account/DemoTotpCodeButton.js.map +1 -0
  125. package/dist/account/ForgotPasswordScreen.js +27 -0
  126. package/dist/account/ForgotPasswordScreen.js.map +1 -0
  127. package/dist/account/ProfileScreen.js +134 -0
  128. package/dist/account/ProfileScreen.js.map +1 -0
  129. package/dist/account/ResetPasswordScreen.js +58 -0
  130. package/dist/account/ResetPasswordScreen.js.map +1 -0
  131. package/dist/account/SignInScreen.js +102 -0
  132. package/dist/account/SignInScreen.js.map +1 -0
  133. package/dist/account/accountConnector.js +31 -0
  134. package/dist/account/accountConnector.js.map +1 -0
  135. package/dist/account/demo/createDemoAccountConnector.js +368 -0
  136. package/dist/account/demo/createDemoAccountConnector.js.map +1 -0
  137. package/dist/account/demo/totp.js +61 -0
  138. package/dist/account/demo/totp.js.map +1 -0
  139. package/dist/account/restAccountConnector.js +118 -0
  140. package/dist/account/restAccountConnector.js.map +1 -0
  141. package/dist/account-demo.js +12 -0
  142. package/dist/account-demo.js.map +1 -0
  143. package/dist/account.js +25 -0
  144. package/dist/account.js.map +1 -0
  145. package/dist/adapters/i18next.js +7 -0
  146. package/dist/adapters/i18next.js.map +1 -0
  147. package/dist/adapters/nextNavigation.js +36 -0
  148. package/dist/adapters/nextNavigation.js.map +1 -0
  149. package/dist/adapters/reactRouter.js +7 -0
  150. package/dist/adapters/reactRouter.js.map +1 -0
  151. package/dist/adapters/reactRouterRoutes.js +49 -0
  152. package/dist/adapters/reactRouterRoutes.js.map +1 -0
  153. package/dist/api/ApiError.js +58 -0
  154. package/dist/api/ApiError.js.map +1 -0
  155. package/dist/api/createApiClient.js +256 -0
  156. package/dist/api/createApiClient.js.map +1 -0
  157. package/dist/api/staleChunks.js +47 -0
  158. package/dist/api/staleChunks.js.map +1 -0
  159. package/dist/appShell/AccountMenu.js +86 -0
  160. package/dist/appShell/AccountMenu.js.map +1 -0
  161. package/dist/appShell/AppLayout.js +513 -0
  162. package/dist/appShell/AppLayout.js.map +1 -0
  163. package/dist/appShell/AppearanceSettings.js +116 -0
  164. package/dist/appShell/AppearanceSettings.js.map +1 -0
  165. package/dist/appShell/AuthLayout.js +46 -0
  166. package/dist/appShell/AuthLayout.js.map +1 -0
  167. package/dist/appShell/BarActionButton.js +31 -0
  168. package/dist/appShell/BarActionButton.js.map +1 -0
  169. package/dist/appShell/BarActions.js +105 -0
  170. package/dist/appShell/BarActions.js.map +1 -0
  171. package/dist/appShell/BarCapsule.js +50 -0
  172. package/dist/appShell/BarCapsule.js.map +1 -0
  173. package/dist/appShell/BarSearch.js +92 -0
  174. package/dist/appShell/BarSearch.js.map +1 -0
  175. package/dist/appShell/HeaderTools.js +53 -0
  176. package/dist/appShell/HeaderTools.js.map +1 -0
  177. package/dist/appShell/MobileTabBar.js +348 -0
  178. package/dist/appShell/MobileTabBar.js.map +1 -0
  179. package/dist/appShell/SettingsMenu.js +41 -0
  180. package/dist/appShell/SettingsMenu.js.map +1 -0
  181. package/dist/appShell/SideMenu.js +217 -0
  182. package/dist/appShell/SideMenu.js.map +1 -0
  183. package/dist/appShell/SideMenuEntry.js +140 -0
  184. package/dist/appShell/SideMenuEntry.js.map +1 -0
  185. package/dist/appShell/SubmenuActionsMenu.js +71 -0
  186. package/dist/appShell/SubmenuActionsMenu.js.map +1 -0
  187. package/dist/appShell/TabBarEditor.js +55 -0
  188. package/dist/appShell/TabBarEditor.js.map +1 -0
  189. package/dist/appShell/TopMenu.js +80 -0
  190. package/dist/appShell/TopMenu.js.map +1 -0
  191. package/dist/appShell/appMenuContext.js +11 -0
  192. package/dist/appShell/appMenuContext.js.map +1 -0
  193. package/dist/appShell/barActionsSlot.js +26 -0
  194. package/dist/appShell/barActionsSlot.js.map +1 -0
  195. package/dist/appShell/barMenuPlacement.js +33 -0
  196. package/dist/appShell/barMenuPlacement.js.map +1 -0
  197. package/dist/appShell/menuItemText.js +33 -0
  198. package/dist/appShell/menuItemText.js.map +1 -0
  199. package/dist/appShell/pageTitle.js +45 -0
  200. package/dist/appShell/pageTitle.js.map +1 -0
  201. package/dist/appShell/shellSizes.js +40 -0
  202. package/dist/appShell/shellSizes.js.map +1 -0
  203. package/dist/appShell/tabBarRule.js +12 -0
  204. package/dist/appShell/tabBarRule.js.map +1 -0
  205. package/dist/appShell/tabBarScroll.js +23 -0
  206. package/dist/appShell/tabBarScroll.js.map +1 -0
  207. package/dist/appShell/useDrawerCollapsed.js +29 -0
  208. package/dist/appShell/useDrawerCollapsed.js.map +1 -0
  209. package/dist/appShell/useFittingActionCount.js +45 -0
  210. package/dist/appShell/useFittingActionCount.js.map +1 -0
  211. package/dist/appShell/usePinnedMobileTabs.js +32 -0
  212. package/dist/appShell/usePinnedMobileTabs.js.map +1 -0
  213. package/dist/appShell/useTabBarMinimized.js +33 -0
  214. package/dist/appShell/useTabBarMinimized.js.map +1 -0
  215. package/dist/auth/PasswordChecklist.js +44 -0
  216. package/dist/auth/PasswordChecklist.js.map +1 -0
  217. package/dist/auth/passwordRules.js +43 -0
  218. package/dist/auth/passwordRules.js.map +1 -0
  219. package/dist/calendar/EventCalendar.js +149 -0
  220. package/dist/calendar/EventCalendar.js.map +1 -0
  221. package/dist/calendar/EventDetails.js +74 -0
  222. package/dist/calendar/EventDetails.js.map +1 -0
  223. package/dist/calendar/calendarEvents.js +31 -0
  224. package/dist/calendar/calendarEvents.js.map +1 -0
  225. package/dist/calendar.js +13 -0
  226. package/dist/calendar.js.map +1 -0
  227. package/dist/charts.js +16 -0
  228. package/dist/charts.js.map +1 -0
  229. package/dist/date-pickers.js +8 -0
  230. package/dist/date-pickers.js.map +1 -0
  231. package/dist/datePickers/DateInput.js +76 -0
  232. package/dist/datePickers/DateInput.js.map +1 -0
  233. package/dist/datePickers/FormDateField.js +12 -0
  234. package/dist/datePickers/FormDateField.js.map +1 -0
  235. package/dist/dates.js +25 -0
  236. package/dist/dates.js.map +1 -0
  237. package/dist/dictionaries/dictionaries.js +48 -0
  238. package/dist/dictionaries/dictionaries.js.map +1 -0
  239. package/dist/downloads/DownloadManager.js +195 -0
  240. package/dist/downloads/DownloadManager.js.map +1 -0
  241. package/dist/downloads/downloadQueue.js +56 -0
  242. package/dist/downloads/downloadQueue.js.map +1 -0
  243. package/dist/downloads/downloadsMachine.js +80 -0
  244. package/dist/downloads/downloadsMachine.js.map +1 -0
  245. package/dist/downloads/fileTypes.js +22 -0
  246. package/dist/downloads/fileTypes.js.map +1 -0
  247. package/dist/excel/reportWorkbook.js +299 -0
  248. package/dist/excel/reportWorkbook.js.map +1 -0
  249. package/dist/excel.js +13 -0
  250. package/dist/excel.js.map +1 -0
  251. package/dist/feedback/ConfirmDialog.js +73 -0
  252. package/dist/feedback/ConfirmDialog.js.map +1 -0
  253. package/dist/feedback/ModalWaiting.js +23 -0
  254. package/dist/feedback/ModalWaiting.js.map +1 -0
  255. package/dist/feedback/NewBuildNotice.js +79 -0
  256. package/dist/feedback/NewBuildNotice.js.map +1 -0
  257. package/dist/feedback/StaleBuildBoundary.js +36 -0
  258. package/dist/feedback/StaleBuildBoundary.js.map +1 -0
  259. package/dist/feedback/Toaster.js +20 -0
  260. package/dist/feedback/Toaster.js.map +1 -0
  261. package/dist/feedback/confirmActionMachine.js +67 -0
  262. package/dist/feedback/confirmActionMachine.js.map +1 -0
  263. package/dist/feedback/toast.js +88 -0
  264. package/dist/feedback/toast.js.map +1 -0
  265. package/dist/feedback/useConfirmAction.js +40 -0
  266. package/dist/feedback/useConfirmAction.js.map +1 -0
  267. package/dist/filepond/FileDropzone.js +256 -0
  268. package/dist/filepond/FileDropzone.js.map +1 -0
  269. package/dist/filepond/pondServer.js +48 -0
  270. package/dist/filepond/pondServer.js.map +1 -0
  271. package/dist/filepond.js +10 -0
  272. package/dist/filepond.js.map +1 -0
  273. package/dist/files.js +43 -0
  274. package/dist/files.js.map +1 -0
  275. package/dist/formatting.js +205 -0
  276. package/dist/formatting.js.map +1 -0
  277. package/dist/forms/FormCatalogField.js +12 -0
  278. package/dist/forms/FormCatalogField.js.map +1 -0
  279. package/dist/forms/FormColorField.js +12 -0
  280. package/dist/forms/FormColorField.js.map +1 -0
  281. package/dist/forms/FormNumberField.js +12 -0
  282. package/dist/forms/FormNumberField.js.map +1 -0
  283. package/dist/forms/FormProblemAlert.js +15 -0
  284. package/dist/forms/FormProblemAlert.js.map +1 -0
  285. package/dist/forms/FormSelectField.js +12 -0
  286. package/dist/forms/FormSelectField.js.map +1 -0
  287. package/dist/forms/FormServerProblem.js +23 -0
  288. package/dist/forms/FormServerProblem.js.map +1 -0
  289. package/dist/forms/FormTextField.js +12 -0
  290. package/dist/forms/FormTextField.js.map +1 -0
  291. package/dist/forms/FormWizard.js +63 -0
  292. package/dist/forms/FormWizard.js.map +1 -0
  293. package/dist/forms/SubmitButton.js +14 -0
  294. package/dist/forms/SubmitButton.js.map +1 -0
  295. package/dist/forms/applyServerProblem.js +15 -0
  296. package/dist/forms/applyServerProblem.js.map +1 -0
  297. package/dist/forms/auth/ChangePasswordForm.js +47 -0
  298. package/dist/forms/auth/ChangePasswordForm.js.map +1 -0
  299. package/dist/forms/auth/ForgotPasswordForm.js +50 -0
  300. package/dist/forms/auth/ForgotPasswordForm.js.map +1 -0
  301. package/dist/forms/auth/SignInForm.js +48 -0
  302. package/dist/forms/auth/SignInForm.js.map +1 -0
  303. package/dist/forms/security/SecondStepForm.js +122 -0
  304. package/dist/forms/security/SecondStepForm.js.map +1 -0
  305. package/dist/forms/security/TwoStepVerificationCard.js +338 -0
  306. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -0
  307. package/dist/forms/security/securityRules.js +28 -0
  308. package/dist/forms/security/securityRules.js.map +1 -0
  309. package/dist/forms/serverProblemFields.js +25 -0
  310. package/dist/forms/serverProblemFields.js.map +1 -0
  311. package/dist/forms/useFormikField.js +16 -0
  312. package/dist/forms/useFormikField.js.map +1 -0
  313. package/dist/forms/validation.js +55 -0
  314. package/dist/forms/validation.js.map +1 -0
  315. package/dist/forms/validationMessages.js +16 -0
  316. package/dist/forms/validationMessages.js.map +1 -0
  317. package/dist/forms.js +57 -0
  318. package/dist/forms.js.map +1 -0
  319. package/dist/hookForm/FormCatalogField.js +12 -0
  320. package/dist/hookForm/FormCatalogField.js.map +1 -0
  321. package/dist/hookForm/FormColorField.js +12 -0
  322. package/dist/hookForm/FormColorField.js.map +1 -0
  323. package/dist/hookForm/FormNumberField.js +12 -0
  324. package/dist/hookForm/FormNumberField.js.map +1 -0
  325. package/dist/hookForm/FormProblemAlert.js +17 -0
  326. package/dist/hookForm/FormProblemAlert.js.map +1 -0
  327. package/dist/hookForm/FormSelectField.js +12 -0
  328. package/dist/hookForm/FormSelectField.js.map +1 -0
  329. package/dist/hookForm/FormTextField.js +12 -0
  330. package/dist/hookForm/FormTextField.js.map +1 -0
  331. package/dist/hookForm/FormWizard.js +59 -0
  332. package/dist/hookForm/FormWizard.js.map +1 -0
  333. package/dist/hookForm/SubmitButton.js +15 -0
  334. package/dist/hookForm/SubmitButton.js.map +1 -0
  335. package/dist/hookForm/applyServerProblem.js +21 -0
  336. package/dist/hookForm/applyServerProblem.js.map +1 -0
  337. package/dist/hookForm/useHookFormField.js +19 -0
  338. package/dist/hookForm/useHookFormField.js.map +1 -0
  339. package/dist/i18next.js +5 -0
  340. package/dist/i18next.js.map +1 -0
  341. package/dist/identifiers.js +8 -0
  342. package/dist/identifiers.js.map +1 -0
  343. package/dist/inbox/InboxLayout.js +104 -0
  344. package/dist/inbox/InboxLayout.js.map +1 -0
  345. package/dist/inbox/MessageList.js +114 -0
  346. package/dist/inbox/MessageList.js.map +1 -0
  347. package/dist/inbox/MessageView.js +104 -0
  348. package/dist/inbox/MessageView.js.map +1 -0
  349. package/dist/inbox/inboxDates.js +9 -0
  350. package/dist/inbox/inboxDates.js.map +1 -0
  351. package/dist/index.js +407 -0
  352. package/dist/index.js.map +1 -0
  353. package/dist/inputs/CatalogInput.js +66 -0
  354. package/dist/inputs/CatalogInput.js.map +1 -0
  355. package/dist/inputs/ColorInput.js +109 -0
  356. package/dist/inputs/ColorInput.js.map +1 -0
  357. package/dist/inputs/FieldFrame.js +20 -0
  358. package/dist/inputs/FieldFrame.js.map +1 -0
  359. package/dist/inputs/FormSection.js +105 -0
  360. package/dist/inputs/FormSection.js.map +1 -0
  361. package/dist/inputs/NumberInput.js +70 -0
  362. package/dist/inputs/NumberInput.js.map +1 -0
  363. package/dist/inputs/SelectInput.js +84 -0
  364. package/dist/inputs/SelectInput.js.map +1 -0
  365. package/dist/inputs/TextInput.js +101 -0
  366. package/dist/inputs/TextInput.js.map +1 -0
  367. package/dist/inputs/WizardLayout.js +54 -0
  368. package/dist/inputs/WizardLayout.js.map +1 -0
  369. package/dist/inputs/colorContrast.js +46 -0
  370. package/dist/inputs/colorContrast.js.map +1 -0
  371. package/dist/inputs/formLayoutContext.js +9 -0
  372. package/dist/inputs/formLayoutContext.js.map +1 -0
  373. package/dist/inputs/numberText.js +48 -0
  374. package/dist/inputs/numberText.js.map +1 -0
  375. package/dist/kanban/KanbanBoard.js +338 -0
  376. package/dist/kanban/KanbanBoard.js.map +1 -0
  377. package/dist/kanban/kanbanCards.js +19 -0
  378. package/dist/kanban/kanbanCards.js.map +1 -0
  379. package/dist/kanban/kanbanMoves.js +29 -0
  380. package/dist/kanban/kanbanMoves.js.map +1 -0
  381. package/dist/kanban.js +15 -0
  382. package/dist/kanban.js.map +1 -0
  383. package/dist/laravel/csrfRetry.js +18 -0
  384. package/dist/laravel/csrfRetry.js.map +1 -0
  385. package/dist/laravel.js +6 -0
  386. package/dist/laravel.js.map +1 -0
  387. package/dist/lastListUrl.js +35 -0
  388. package/dist/lastListUrl.js.map +1 -0
  389. package/dist/locales/en.js +787 -0
  390. package/dist/locales/en.js.map +1 -0
  391. package/dist/locales/es.js +787 -0
  392. package/dist/locales/es.js.map +1 -0
  393. package/dist/maps/MapView.js +116 -0
  394. package/dist/maps/MapView.js.map +1 -0
  395. package/dist/maps/mapMarkers.js +19 -0
  396. package/dist/maps/mapMarkers.js.map +1 -0
  397. package/dist/maps.js +10 -0
  398. package/dist/maps.js.map +1 -0
  399. package/dist/money/money.js +380 -0
  400. package/dist/money/money.js.map +1 -0
  401. package/dist/money.js +6 -0
  402. package/dist/money.js.map +1 -0
  403. package/dist/navigation/appMenu.js +93 -0
  404. package/dist/navigation/appMenu.js.map +1 -0
  405. package/dist/navigation/useMenuBadges.js +45 -0
  406. package/dist/navigation/useMenuBadges.js.map +1 -0
  407. package/dist/navigation.js +30 -0
  408. package/dist/navigation.js.map +1 -0
  409. package/dist/navigationTrail.js +82 -0
  410. package/dist/navigationTrail.js.map +1 -0
  411. package/dist/next.js +5 -0
  412. package/dist/next.js.map +1 -0
  413. package/dist/observability/buildWatch.js +19 -0
  414. package/dist/observability/buildWatch.js.map +1 -0
  415. package/dist/observability/logger.js +43 -0
  416. package/dist/observability/logger.js.map +1 -0
  417. package/dist/observability/publishedBuild.js +39 -0
  418. package/dist/observability/publishedBuild.js.map +1 -0
  419. package/dist/observability/usePublishedBuildWatch.js +77 -0
  420. package/dist/observability/usePublishedBuildWatch.js.map +1 -0
  421. package/dist/passkeys.js +7 -0
  422. package/dist/passkeys.js.map +1 -0
  423. package/dist/periodRanges.js +33 -0
  424. package/dist/periodRanges.js.map +1 -0
  425. package/dist/problems.js +51 -0
  426. package/dist/problems.js.map +1 -0
  427. package/dist/pwa/InstallAppSetting.js +34 -0
  428. package/dist/pwa/InstallAppSetting.js.map +1 -0
  429. package/dist/pwa/InstallInstructionsDialog.js +35 -0
  430. package/dist/pwa/InstallInstructionsDialog.js.map +1 -0
  431. package/dist/pwa/InstallPromptBanner.js +70 -0
  432. package/dist/pwa/InstallPromptBanner.js.map +1 -0
  433. package/dist/pwa/installInstructions.js +60 -0
  434. package/dist/pwa/installInstructions.js.map +1 -0
  435. package/dist/pwa/useInstallPrompt.js +71 -0
  436. package/dist/pwa/useInstallPrompt.js.map +1 -0
  437. package/dist/react-hook-form.js +32 -0
  438. package/dist/react-hook-form.js.map +1 -0
  439. package/dist/react-router.js +10 -0
  440. package/dist/react-router.js.map +1 -0
  441. package/dist/security/ActivityLog.js +80 -0
  442. package/dist/security/ActivityLog.js.map +1 -0
  443. package/dist/security/RecoveryCodesDialog.js +85 -0
  444. package/dist/security/RecoveryCodesDialog.js.map +1 -0
  445. package/dist/security/SessionsCard.js +83 -0
  446. package/dist/security/SessionsCard.js.map +1 -0
  447. package/dist/security/passkeys.js +39 -0
  448. package/dist/security/passkeys.js.map +1 -0
  449. package/dist/table.js +37 -0
  450. package/dist/table.js.map +1 -0
  451. package/dist/theme/androidDevice.js +16 -0
  452. package/dist/theme/androidDevice.js.map +1 -0
  453. package/dist/theme/appleTracking.js +34 -0
  454. package/dist/theme/appleTracking.js.map +1 -0
  455. package/dist/theme/components/MuiAppBar.js +27 -0
  456. package/dist/theme/components/MuiAppBar.js.map +1 -0
  457. package/dist/theme/components/MuiBackdrop.js +13 -0
  458. package/dist/theme/components/MuiBackdrop.js.map +1 -0
  459. package/dist/theme/components/MuiButton.js +25 -0
  460. package/dist/theme/components/MuiButton.js.map +1 -0
  461. package/dist/theme/components/MuiButtonBase.js +16 -0
  462. package/dist/theme/components/MuiButtonBase.js.map +1 -0
  463. package/dist/theme/components/MuiChip.js +30 -0
  464. package/dist/theme/components/MuiChip.js.map +1 -0
  465. package/dist/theme/components/MuiDataGrid.js +30 -0
  466. package/dist/theme/components/MuiDataGrid.js.map +1 -0
  467. package/dist/theme/components/MuiDialog.js +13 -0
  468. package/dist/theme/components/MuiDialog.js.map +1 -0
  469. package/dist/theme/components/MuiDrawer.js +18 -0
  470. package/dist/theme/components/MuiDrawer.js.map +1 -0
  471. package/dist/theme/components/MuiMenuItem.js +17 -0
  472. package/dist/theme/components/MuiMenuItem.js.map +1 -0
  473. package/dist/theme/components/MuiTypography.js +22 -0
  474. package/dist/theme/components/MuiTypography.js.map +1 -0
  475. package/dist/theme/components/glassComponents.js +885 -0
  476. package/dist/theme/components/glassComponents.js.map +1 -0
  477. package/dist/theme/components/minimalComponents.js +146 -0
  478. package/dist/theme/components/minimalComponents.js.map +1 -0
  479. package/dist/theme/components/paletteOf.js +7 -0
  480. package/dist/theme/components/paletteOf.js.map +1 -0
  481. package/dist/theme/createToolkitTheme.js +100 -0
  482. package/dist/theme/createToolkitTheme.js.map +1 -0
  483. package/dist/theme/glassSurface.js +328 -0
  484. package/dist/theme/glassSurface.js.map +1 -0
  485. package/dist/theme/glassToasterStyles.js +50 -0
  486. package/dist/theme/glassToasterStyles.js.map +1 -0
  487. package/dist/theme/mergeComponents.js +42 -0
  488. package/dist/theme/mergeComponents.js.map +1 -0
  489. package/dist/theme/stackcraftPalette.js +59 -0
  490. package/dist/theme/stackcraftPalette.js.map +1 -0
  491. package/dist/theme/toolkitComponents.js +28 -0
  492. package/dist/theme/toolkitComponents.js.map +1 -0
  493. package/dist/timeline.js +8 -0
  494. package/dist/timeline.js.map +1 -0
  495. package/dist/toolkit/ComponentTexts.js +13 -0
  496. package/dist/toolkit/ComponentTexts.js.map +1 -0
  497. package/dist/toolkit/ToolkitProvider.js +57 -0
  498. package/dist/toolkit/ToolkitProvider.js.map +1 -0
  499. package/dist/toolkit/browserNavigation.js +33 -0
  500. package/dist/toolkit/browserNavigation.js.map +1 -0
  501. package/dist/toolkit/componentTextsContext.js +15 -0
  502. package/dist/toolkit/componentTextsContext.js.map +1 -0
  503. package/dist/toolkit/hashNavigation.js +40 -0
  504. package/dist/toolkit/hashNavigation.js.map +1 -0
  505. package/dist/toolkit/navigationPaths.js +49 -0
  506. package/dist/toolkit/navigationPaths.js.map +1 -0
  507. package/dist/toolkit/toolkitContext.js +19 -0
  508. package/dist/toolkit/toolkitContext.js.map +1 -0
  509. package/dist/toolkit/toolkitSettings.js +107 -0
  510. package/dist/toolkit/toolkitSettings.js.map +1 -0
  511. package/dist/toolkit/useFormatters.js +12 -0
  512. package/dist/toolkit/useFormatters.js.map +1 -0
  513. package/dist/toolkit/useToolkitTranslation.js +22 -0
  514. package/dist/toolkit/useToolkitTranslation.js.map +1 -0
  515. package/dist/types/DataTable/AuditTrailDialog.d.ts +32 -0
  516. package/dist/types/DataTable/AuditTrailTable.d.ts +30 -0
  517. package/dist/types/DataTable/ColumnFilters/HeaderFilterPopover.d.ts +8 -0
  518. package/dist/types/DataTable/ColumnFilters/MultiSelectColumnFilter.d.ts +16 -0
  519. package/dist/types/DataTable/ColumnFilters/SortableFilterHeader.d.ts +26 -0
  520. package/dist/types/DataTable/ColumnFilters/TextColumnFilter.d.ts +8 -0
  521. package/dist/types/DataTable/ColumnFilters/index.d.ts +4 -0
  522. package/dist/types/DataTable/EmptyState.d.ts +13 -0
  523. package/dist/types/DataTable/FilterChips.d.ts +17 -0
  524. package/dist/types/DataTable/GoToPage.d.ts +13 -0
  525. package/dist/types/DataTable/SelectionBar.d.ts +32 -0
  526. package/dist/types/DataTable/ServerTable.d.ts +171 -0
  527. package/dist/types/DataTable/buildChipConfig.d.ts +22 -0
  528. package/dist/types/DataTable/columns.d.ts +93 -0
  529. package/dist/types/DataTable/filterContext.d.ts +13 -0
  530. package/dist/types/DataTable/index.d.ts +13 -0
  531. package/dist/types/DataTable/rowSelection.d.ts +113 -0
  532. package/dist/types/DataTable/serverTableParams.d.ts +16 -0
  533. package/dist/types/DataTable/tableMachine.d.ts +41 -0
  534. package/dist/types/DataTable/useDebouncedFilter.d.ts +8 -0
  535. package/dist/types/DataTable/useTableState.d.ts +93 -0
  536. package/dist/types/access/Can.d.ts +11 -0
  537. package/dist/types/access/PermissionMatrix.d.ts +23 -0
  538. package/dist/types/access/RequireAccess.d.ts +11 -0
  539. package/dist/types/access/accessRules.d.ts +24 -0
  540. package/dist/types/access/permissionGroups.d.ts +56 -0
  541. package/dist/types/access/useCan.d.ts +11 -0
  542. package/dist/types/account/AccountProvider.d.ts +27 -0
  543. package/dist/types/account/AccountSecuritySection.d.ts +9 -0
  544. package/dist/types/account/DemoTotpCodeButton.d.ts +6 -0
  545. package/dist/types/account/ForgotPasswordScreen.d.ts +17 -0
  546. package/dist/types/account/ProfileScreen.d.ts +43 -0
  547. package/dist/types/account/ResetPasswordScreen.d.ts +21 -0
  548. package/dist/types/account/SignInScreen.d.ts +27 -0
  549. package/dist/types/account/accountConnector.d.ts +268 -0
  550. package/dist/types/account/demo/createDemoAccountConnector.d.ts +30 -0
  551. package/dist/types/account/demo/totp.d.ts +45 -0
  552. package/dist/types/account/restAccountConnector.d.ts +49 -0
  553. package/dist/types/account-demo.d.ts +2 -0
  554. package/dist/types/account.d.ts +16 -0
  555. package/dist/types/adapters/i18next.d.ts +11 -0
  556. package/dist/types/adapters/nextNavigation.d.ts +33 -0
  557. package/dist/types/adapters/reactRouter.d.ts +6 -0
  558. package/dist/types/adapters/reactRouterRoutes.d.ts +42 -0
  559. package/dist/types/api/ApiError.d.ts +42 -0
  560. package/dist/types/api/createApiClient.d.ts +174 -0
  561. package/dist/types/api/staleChunks.d.ts +15 -0
  562. package/dist/types/appShell/AccountMenu.d.ts +28 -0
  563. package/dist/types/appShell/AppLayout.d.ts +76 -0
  564. package/dist/types/appShell/AppearanceSettings.d.ts +41 -0
  565. package/dist/types/appShell/AuthLayout.d.ts +21 -0
  566. package/dist/types/appShell/BarActionButton.d.ts +15 -0
  567. package/dist/types/appShell/BarActions.d.ts +23 -0
  568. package/dist/types/appShell/BarCapsule.d.ts +20 -0
  569. package/dist/types/appShell/BarSearch.d.ts +24 -0
  570. package/dist/types/appShell/HeaderTools.d.ts +27 -0
  571. package/dist/types/appShell/MobileTabBar.d.ts +20 -0
  572. package/dist/types/appShell/SettingsMenu.d.ts +13 -0
  573. package/dist/types/appShell/SideMenu.d.ts +31 -0
  574. package/dist/types/appShell/SideMenuEntry.d.ts +17 -0
  575. package/dist/types/appShell/SubmenuActionsMenu.d.ts +24 -0
  576. package/dist/types/appShell/TabBarEditor.d.ts +13 -0
  577. package/dist/types/appShell/TopMenu.d.ts +7 -0
  578. package/dist/types/appShell/appMenuContext.d.ts +9 -0
  579. package/dist/types/appShell/barActionsSlot.d.ts +35 -0
  580. package/dist/types/appShell/barMenuPlacement.d.ts +9 -0
  581. package/dist/types/appShell/menuItemText.d.ts +55 -0
  582. package/dist/types/appShell/pageTitle.d.ts +26 -0
  583. package/dist/types/appShell/shellSizes.d.ts +46 -0
  584. package/dist/types/appShell/tabBarRule.d.ts +5 -0
  585. package/dist/types/appShell/tabBarScroll.d.ts +26 -0
  586. package/dist/types/appShell/useDrawerCollapsed.d.ts +8 -0
  587. package/dist/types/appShell/useFittingActionCount.d.ts +7 -0
  588. package/dist/types/appShell/usePinnedMobileTabs.d.ts +7 -0
  589. package/dist/types/appShell/useTabBarMinimized.d.ts +8 -0
  590. package/dist/types/auth/PasswordChecklist.d.ts +13 -0
  591. package/dist/types/auth/passwordRules.d.ts +34 -0
  592. package/dist/types/calendar/EventCalendar.d.ts +63 -0
  593. package/dist/types/calendar/EventDetails.d.ts +36 -0
  594. package/dist/types/calendar/calendarEvents.d.ts +27 -0
  595. package/dist/types/calendar.d.ts +3 -0
  596. package/dist/types/charts.d.ts +6 -0
  597. package/dist/types/date-pickers.d.ts +2 -0
  598. package/dist/types/datePickers/DateInput.d.ts +41 -0
  599. package/dist/types/datePickers/FormDateField.d.ts +7 -0
  600. package/dist/types/dates.d.ts +18 -0
  601. package/dist/types/dictionaries/dictionaries.d.ts +54 -0
  602. package/dist/types/downloads/DownloadManager.d.ts +7 -0
  603. package/dist/types/downloads/downloadQueue.d.ts +50 -0
  604. package/dist/types/downloads/downloadsMachine.d.ts +10 -0
  605. package/dist/types/downloads/fileTypes.d.ts +39 -0
  606. package/dist/types/downloads/index.d.ts +4 -0
  607. package/dist/types/excel/reportWorkbook.d.ts +157 -0
  608. package/dist/types/excel.d.ts +1 -0
  609. package/dist/types/feedback/ConfirmDialog.d.ts +31 -0
  610. package/dist/types/feedback/ModalWaiting.d.ts +13 -0
  611. package/dist/types/feedback/NewBuildNotice.d.ts +20 -0
  612. package/dist/types/feedback/StaleBuildBoundary.d.ts +21 -0
  613. package/dist/types/feedback/Toaster.d.ts +1 -0
  614. package/dist/types/feedback/confirmActionMachine.d.ts +19 -0
  615. package/dist/types/feedback/index.d.ts +8 -0
  616. package/dist/types/feedback/toast.d.ts +100 -0
  617. package/dist/types/feedback/useConfirmAction.d.ts +33 -0
  618. package/dist/types/filepond/FileDropzone.d.ts +61 -0
  619. package/dist/types/filepond/pondServer.d.ts +17 -0
  620. package/dist/types/filepond.d.ts +3 -0
  621. package/dist/types/files.d.ts +29 -0
  622. package/dist/types/formatting.d.ts +61 -0
  623. package/dist/types/forms/FormCatalogField.d.ts +6 -0
  624. package/dist/types/forms/FormColorField.d.ts +6 -0
  625. package/dist/types/forms/FormNumberField.d.ts +6 -0
  626. package/dist/types/forms/FormProblemAlert.d.ts +6 -0
  627. package/dist/types/forms/FormSelectField.d.ts +6 -0
  628. package/dist/types/forms/FormServerProblem.d.ts +8 -0
  629. package/dist/types/forms/FormTextField.d.ts +6 -0
  630. package/dist/types/forms/FormWizard.d.ts +22 -0
  631. package/dist/types/forms/SubmitButton.d.ts +9 -0
  632. package/dist/types/forms/applyServerProblem.d.ts +9 -0
  633. package/dist/types/forms/auth/ChangePasswordForm.d.ts +17 -0
  634. package/dist/types/forms/auth/ForgotPasswordForm.d.ts +14 -0
  635. package/dist/types/forms/auth/SignInForm.d.ts +20 -0
  636. package/dist/types/forms/index.d.ts +19 -0
  637. package/dist/types/forms/security/SecondStepForm.d.ts +30 -0
  638. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +83 -0
  639. package/dist/types/forms/security/securityRules.d.ts +24 -0
  640. package/dist/types/forms/serverProblemFields.d.ts +19 -0
  641. package/dist/types/forms/useFormikField.d.ts +11 -0
  642. package/dist/types/forms/validation.d.ts +251 -0
  643. package/dist/types/forms/validationMessages.d.ts +12 -0
  644. package/dist/types/forms.d.ts +2 -0
  645. package/dist/types/hookForm/FormCatalogField.d.ts +8 -0
  646. package/dist/types/hookForm/FormColorField.d.ts +8 -0
  647. package/dist/types/hookForm/FormNumberField.d.ts +8 -0
  648. package/dist/types/hookForm/FormProblemAlert.d.ts +7 -0
  649. package/dist/types/hookForm/FormSelectField.d.ts +8 -0
  650. package/dist/types/hookForm/FormTextField.d.ts +8 -0
  651. package/dist/types/hookForm/FormWizard.d.ts +22 -0
  652. package/dist/types/hookForm/SubmitButton.d.ts +21 -0
  653. package/dist/types/hookForm/applyServerProblem.d.ts +10 -0
  654. package/dist/types/hookForm/useHookFormField.d.ts +13 -0
  655. package/dist/types/i18next.d.ts +1 -0
  656. package/dist/types/identifiers.d.ts +2 -0
  657. package/dist/types/inbox/InboxLayout.d.ts +38 -0
  658. package/dist/types/inbox/MessageList.d.ts +52 -0
  659. package/dist/types/inbox/MessageView.d.ts +55 -0
  660. package/dist/types/inbox/inboxDates.d.ts +11 -0
  661. package/dist/types/index.d.ts +91 -0
  662. package/dist/types/inputs/CatalogInput.d.ts +45 -0
  663. package/dist/types/inputs/ColorInput.d.ts +30 -0
  664. package/dist/types/inputs/FieldFrame.d.ts +14 -0
  665. package/dist/types/inputs/FormSection.d.ts +29 -0
  666. package/dist/types/inputs/NumberInput.d.ts +38 -0
  667. package/dist/types/inputs/SelectInput.d.ts +38 -0
  668. package/dist/types/inputs/TextInput.d.ts +62 -0
  669. package/dist/types/inputs/WizardLayout.d.ts +34 -0
  670. package/dist/types/inputs/colorContrast.d.ts +18 -0
  671. package/dist/types/inputs/formLayoutContext.d.ts +3 -0
  672. package/dist/types/inputs/numberText.d.ts +25 -0
  673. package/dist/types/kanban/KanbanBoard.d.ts +88 -0
  674. package/dist/types/kanban/kanbanCards.d.ts +22 -0
  675. package/dist/types/kanban/kanbanMoves.d.ts +38 -0
  676. package/dist/types/kanban.d.ts +3 -0
  677. package/dist/types/laravel/csrfRetry.d.ts +21 -0
  678. package/dist/types/laravel.d.ts +1 -0
  679. package/dist/types/lastListUrl.d.ts +20 -0
  680. package/dist/types/locales/en.d.ts +788 -0
  681. package/dist/types/locales/es.d.ts +788 -0
  682. package/dist/types/maps/MapView.d.ts +41 -0
  683. package/dist/types/maps/mapMarkers.d.ts +23 -0
  684. package/dist/types/maps.d.ts +2 -0
  685. package/dist/types/money/money.d.ts +203 -0
  686. package/dist/types/money.d.ts +1 -0
  687. package/dist/types/navigation/appMenu.d.ts +92 -0
  688. package/dist/types/navigation/useMenuBadges.d.ts +16 -0
  689. package/dist/types/navigation.d.ts +22 -0
  690. package/dist/types/navigationTrail.d.ts +49 -0
  691. package/dist/types/next.d.ts +1 -0
  692. package/dist/types/observability/buildWatch.d.ts +28 -0
  693. package/dist/types/observability/logger.d.ts +19 -0
  694. package/dist/types/observability/publishedBuild.d.ts +35 -0
  695. package/dist/types/observability/usePublishedBuildWatch.d.ts +18 -0
  696. package/dist/types/passkeys.d.ts +1 -0
  697. package/dist/types/periodRanges.d.ts +32 -0
  698. package/dist/types/problems.d.ts +31 -0
  699. package/dist/types/pwa/InstallAppSetting.d.ts +7 -0
  700. package/dist/types/pwa/InstallInstructionsDialog.d.ts +20 -0
  701. package/dist/types/pwa/InstallPromptBanner.d.ts +16 -0
  702. package/dist/types/pwa/installInstructions.d.ts +52 -0
  703. package/dist/types/pwa/useInstallPrompt.d.ts +13 -0
  704. package/dist/types/react-hook-form.d.ts +12 -0
  705. package/dist/types/react-router.d.ts +2 -0
  706. package/dist/types/security/ActivityLog.d.ts +33 -0
  707. package/dist/types/security/RecoveryCodesDialog.d.ts +16 -0
  708. package/dist/types/security/SessionsCard.d.ts +24 -0
  709. package/dist/types/security/passkeys.d.ts +18 -0
  710. package/dist/types/table.d.ts +3 -0
  711. package/dist/types/theme/androidDevice.d.ts +11 -0
  712. package/dist/types/theme/appleTracking.d.ts +17 -0
  713. package/dist/types/theme/components/MuiAppBar.d.ts +13 -0
  714. package/dist/types/theme/components/MuiBackdrop.d.ts +11 -0
  715. package/dist/types/theme/components/MuiButton.d.ts +27 -0
  716. package/dist/types/theme/components/MuiButtonBase.d.ts +14 -0
  717. package/dist/types/theme/components/MuiChip.d.ts +29 -0
  718. package/dist/types/theme/components/MuiDataGrid.d.ts +45 -0
  719. package/dist/types/theme/components/MuiDialog.d.ts +9 -0
  720. package/dist/types/theme/components/MuiDrawer.d.ts +13 -0
  721. package/dist/types/theme/components/MuiMenuItem.d.ts +17 -0
  722. package/dist/types/theme/components/MuiTypography.d.ts +20 -0
  723. package/dist/types/theme/components/glassComponents.d.ts +8 -0
  724. package/dist/types/theme/components/minimalComponents.d.ts +22 -0
  725. package/dist/types/theme/components/paletteOf.d.ts +5 -0
  726. package/dist/types/theme/createToolkitTheme.d.ts +48 -0
  727. package/dist/types/theme/glassSurface.d.ts +247 -0
  728. package/dist/types/theme/glassToasterStyles.d.ts +7 -0
  729. package/dist/types/theme/mergeComponents.d.ts +15 -0
  730. package/dist/types/theme/stackcraftPalette.d.ts +142 -0
  731. package/dist/types/theme/toolkitComponents.d.ts +4 -0
  732. package/dist/types/timeline.d.ts +2 -0
  733. package/dist/types/toolkit/ComponentTexts.d.ts +11 -0
  734. package/dist/types/toolkit/ToolkitProvider.d.ts +47 -0
  735. package/dist/types/toolkit/browserNavigation.d.ts +27 -0
  736. package/dist/types/toolkit/componentTextsContext.d.ts +20 -0
  737. package/dist/types/toolkit/hashNavigation.d.ts +12 -0
  738. package/dist/types/toolkit/navigationPaths.d.ts +43 -0
  739. package/dist/types/toolkit/toolkitContext.d.ts +28 -0
  740. package/dist/types/toolkit/toolkitSettings.d.ts +113 -0
  741. package/dist/types/toolkit/useFormatters.d.ts +6 -0
  742. package/dist/types/toolkit/useToolkitTranslation.d.ts +11 -0
  743. package/dist/types/ui/actions/ActionsMenu.d.ts +20 -0
  744. package/dist/types/ui/actions/CopyButton.d.ts +15 -0
  745. package/dist/types/ui/actions/DownloadMenu.d.ts +55 -0
  746. package/dist/types/ui/actions/SecretField.d.ts +17 -0
  747. package/dist/types/ui/actions/SelectionActions.d.ts +39 -0
  748. package/dist/types/ui/filters/DateRangeFilter.d.ts +18 -0
  749. package/dist/types/ui/filters/PeriodRangeSelector.d.ts +28 -0
  750. package/dist/types/ui/filters/QuickFilters.d.ts +23 -0
  751. package/dist/types/ui/filters/SegmentedControl.d.ts +44 -0
  752. package/dist/types/ui/index.d.ts +33 -0
  753. package/dist/types/ui/labels/DictionaryText.d.ts +7 -0
  754. package/dist/types/ui/labels/StatusChip.d.ts +21 -0
  755. package/dist/types/ui/labels/Tag.d.ts +19 -0
  756. package/dist/types/ui/labels/tagOf.d.ts +13 -0
  757. package/dist/types/ui/layout/CollapsibleSection.d.ts +18 -0
  758. package/dist/types/ui/layout/ContentDialog.d.ts +15 -0
  759. package/dist/types/ui/layout/DefinitionList.d.ts +15 -0
  760. package/dist/types/ui/layout/DetailHeader.d.ts +15 -0
  761. package/dist/types/ui/layout/ErrorPage.d.ts +35 -0
  762. package/dist/types/ui/layout/FullPageLoader.d.ts +7 -0
  763. package/dist/types/ui/layout/GlassLensFilter.d.ts +1 -0
  764. package/dist/types/ui/layout/GlassPanel.d.ts +11 -0
  765. package/dist/types/ui/layout/PageHeader.d.ts +15 -0
  766. package/dist/types/ui/layout/PageHeading.d.ts +20 -0
  767. package/dist/types/ui/layout/ProfileHeader.d.ts +17 -0
  768. package/dist/types/ui/layout/ScrollableRow.d.ts +33 -0
  769. package/dist/types/ui/layout/SectionCard.d.ts +11 -0
  770. package/dist/types/ui/layout/appBarHeight.d.ts +13 -0
  771. package/dist/types/ui/metrics/BarList.d.ts +25 -0
  772. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +34 -0
  773. package/dist/types/ui/metrics/ChartTooltip.d.ts +11 -0
  774. package/dist/types/ui/metrics/ColumnChart.d.ts +47 -0
  775. package/dist/types/ui/metrics/LineChart.d.ts +41 -0
  776. package/dist/types/ui/metrics/MetricCard.d.ts +39 -0
  777. package/dist/types/ui/metrics/TableToggle.d.ts +14 -0
  778. package/dist/types/ui/metrics/barListLabels.d.ts +17 -0
  779. package/dist/types/ui/metrics/chartParts.d.ts +112 -0
  780. package/dist/types/ui/metrics/heatmapScale.d.ts +45 -0
  781. package/dist/types/ui/navigation/BackButton.d.ts +13 -0
  782. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +13 -0
  783. package/dist/types/ui/navigation/DocumentTitle.d.ts +6 -0
  784. package/dist/types/ui/navigation/FontSizeToggle.d.ts +11 -0
  785. package/dist/types/ui/navigation/LanguageToggle.d.ts +13 -0
  786. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +12 -0
  787. package/dist/types/ui/navigation/colorMode.d.ts +18 -0
  788. package/dist/types/ui/navigation/fontSizeLevels.d.ts +25 -0
  789. package/dist/types/ui/navigation/useFontSize.d.ts +10 -0
  790. package/dist/types/ui/timeline/GroupedTimeline.d.ts +41 -0
  791. package/dist/types/ui/timeline/timelineDot.d.ts +19 -0
  792. package/dist/types/upload/FileDropzone.d.ts +36 -0
  793. package/dist/types/upload/fileRules.d.ts +51 -0
  794. package/dist/types/upload/uploadMachine.d.ts +23 -0
  795. package/dist/types/upload/uploadWithProgress.d.ts +16 -0
  796. package/dist/ui/actions/ActionsMenu.js +51 -0
  797. package/dist/ui/actions/ActionsMenu.js.map +1 -0
  798. package/dist/ui/actions/CopyButton.js +28 -0
  799. package/dist/ui/actions/CopyButton.js.map +1 -0
  800. package/dist/ui/actions/DownloadMenu.js +162 -0
  801. package/dist/ui/actions/DownloadMenu.js.map +1 -0
  802. package/dist/ui/actions/SecretField.js +61 -0
  803. package/dist/ui/actions/SecretField.js.map +1 -0
  804. package/dist/ui/actions/SelectionActions.js +142 -0
  805. package/dist/ui/actions/SelectionActions.js.map +1 -0
  806. package/dist/ui/filters/DateRangeFilter.js +87 -0
  807. package/dist/ui/filters/DateRangeFilter.js.map +1 -0
  808. package/dist/ui/filters/PeriodRangeSelector.js +56 -0
  809. package/dist/ui/filters/PeriodRangeSelector.js.map +1 -0
  810. package/dist/ui/filters/QuickFilters.js +91 -0
  811. package/dist/ui/filters/QuickFilters.js.map +1 -0
  812. package/dist/ui/filters/SegmentedControl.js +80 -0
  813. package/dist/ui/filters/SegmentedControl.js.map +1 -0
  814. package/dist/ui/labels/DictionaryText.js +11 -0
  815. package/dist/ui/labels/DictionaryText.js.map +1 -0
  816. package/dist/ui/labels/StatusChip.js +52 -0
  817. package/dist/ui/labels/StatusChip.js.map +1 -0
  818. package/dist/ui/labels/Tag.js +26 -0
  819. package/dist/ui/labels/Tag.js.map +1 -0
  820. package/dist/ui/labels/tagOf.js +7 -0
  821. package/dist/ui/labels/tagOf.js.map +1 -0
  822. package/dist/ui/layout/CollapsibleSection.js +52 -0
  823. package/dist/ui/layout/CollapsibleSection.js.map +1 -0
  824. package/dist/ui/layout/ContentDialog.js +97 -0
  825. package/dist/ui/layout/ContentDialog.js.map +1 -0
  826. package/dist/ui/layout/DefinitionList.js +30 -0
  827. package/dist/ui/layout/DefinitionList.js.map +1 -0
  828. package/dist/ui/layout/DetailHeader.js +27 -0
  829. package/dist/ui/layout/DetailHeader.js.map +1 -0
  830. package/dist/ui/layout/ErrorPage.js +54 -0
  831. package/dist/ui/layout/ErrorPage.js.map +1 -0
  832. package/dist/ui/layout/FullPageLoader.js +13 -0
  833. package/dist/ui/layout/FullPageLoader.js.map +1 -0
  834. package/dist/ui/layout/GlassLensFilter.js +53 -0
  835. package/dist/ui/layout/GlassLensFilter.js.map +1 -0
  836. package/dist/ui/layout/GlassPanel.js +18 -0
  837. package/dist/ui/layout/GlassPanel.js.map +1 -0
  838. package/dist/ui/layout/PageHeader.js +23 -0
  839. package/dist/ui/layout/PageHeader.js.map +1 -0
  840. package/dist/ui/layout/PageHeading.js +51 -0
  841. package/dist/ui/layout/PageHeading.js.map +1 -0
  842. package/dist/ui/layout/ProfileHeader.js +64 -0
  843. package/dist/ui/layout/ProfileHeader.js.map +1 -0
  844. package/dist/ui/layout/ScrollableRow.js +156 -0
  845. package/dist/ui/layout/ScrollableRow.js.map +1 -0
  846. package/dist/ui/layout/SectionCard.js +18 -0
  847. package/dist/ui/layout/SectionCard.js.map +1 -0
  848. package/dist/ui/layout/appBarHeight.js +42 -0
  849. package/dist/ui/layout/appBarHeight.js.map +1 -0
  850. package/dist/ui/metrics/BarList.js +94 -0
  851. package/dist/ui/metrics/BarList.js.map +1 -0
  852. package/dist/ui/metrics/CalendarHeatmap.js +136 -0
  853. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -0
  854. package/dist/ui/metrics/ChartTooltip.js +16 -0
  855. package/dist/ui/metrics/ChartTooltip.js.map +1 -0
  856. package/dist/ui/metrics/ColumnChart.js +106 -0
  857. package/dist/ui/metrics/ColumnChart.js.map +1 -0
  858. package/dist/ui/metrics/LineChart.js +117 -0
  859. package/dist/ui/metrics/LineChart.js.map +1 -0
  860. package/dist/ui/metrics/MetricCard.js +97 -0
  861. package/dist/ui/metrics/MetricCard.js.map +1 -0
  862. package/dist/ui/metrics/TableToggle.js +15 -0
  863. package/dist/ui/metrics/TableToggle.js.map +1 -0
  864. package/dist/ui/metrics/barListLabels.js +9 -0
  865. package/dist/ui/metrics/barListLabels.js.map +1 -0
  866. package/dist/ui/metrics/chartParts.js +93 -0
  867. package/dist/ui/metrics/chartParts.js.map +1 -0
  868. package/dist/ui/metrics/heatmapScale.js +67 -0
  869. package/dist/ui/metrics/heatmapScale.js.map +1 -0
  870. package/dist/ui/navigation/BackButton.js +28 -0
  871. package/dist/ui/navigation/BackButton.js.map +1 -0
  872. package/dist/ui/navigation/ColorSchemeToggle.js +40 -0
  873. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -0
  874. package/dist/ui/navigation/DocumentTitle.js +11 -0
  875. package/dist/ui/navigation/DocumentTitle.js.map +1 -0
  876. package/dist/ui/navigation/FontSizeToggle.js +41 -0
  877. package/dist/ui/navigation/FontSizeToggle.js.map +1 -0
  878. package/dist/ui/navigation/LanguageToggle.js +48 -0
  879. package/dist/ui/navigation/LanguageToggle.js.map +1 -0
  880. package/dist/ui/navigation/PageBreadcrumbs.js +51 -0
  881. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -0
  882. package/dist/ui/navigation/colorMode.js +13 -0
  883. package/dist/ui/navigation/colorMode.js.map +1 -0
  884. package/dist/ui/navigation/fontSizeLevels.js +24 -0
  885. package/dist/ui/navigation/fontSizeLevels.js.map +1 -0
  886. package/dist/ui/navigation/useFontSize.js +44 -0
  887. package/dist/ui/navigation/useFontSize.js.map +1 -0
  888. package/dist/ui/timeline/GroupedTimeline.js +106 -0
  889. package/dist/ui/timeline/GroupedTimeline.js.map +1 -0
  890. package/dist/ui/timeline/timelineDot.js +20 -0
  891. package/dist/ui/timeline/timelineDot.js.map +1 -0
  892. package/dist/upload/FileDropzone.js +145 -0
  893. package/dist/upload/FileDropzone.js.map +1 -0
  894. package/dist/upload/fileRules.js +62 -0
  895. package/dist/upload/fileRules.js.map +1 -0
  896. package/dist/upload/uploadMachine.js +73 -0
  897. package/dist/upload/uploadMachine.js.map +1 -0
  898. package/dist/upload/uploadWithProgress.js +45 -0
  899. package/dist/upload/uploadWithProgress.js.map +1 -0
  900. package/package.json +311 -5
@@ -0,0 +1,885 @@
1
+ import { GLASS_MENU_RADIUS_PIXELS, GLASS_PANEL_RADIUS_PIXELS, GLASS_INSET_PIXELS, solidFallbackOf, glassDropOf, accentTextStylesOf, glassStylesOf, insideContentSelectorOf, canvasFieldStylesOf, GLASS_LENS_FLAG_SELECTOR, glassSurfaceOf, materialStylesOf, whiteLabelFillOf, fieldWellStylesOf, glassOpacityOf } from "../glassSurface.js";
2
+ import { mergeStyles } from "../mergeComponents.js";
3
+ import { textSizeOf } from "../appleTracking.js";
4
+ import { paletteOf } from "./paletteOf.js";
5
+ const MENU_ROW_INSET_PIXELS = 4;
6
+ const PRESSED_SCALE = 0.97;
7
+ const PRESSED_THUMB_SCALE = 1.25;
8
+ const SLIDER_THUMB = Object.freeze({ long: 30, short: 20, shadow: "0 1px 2px rgba(0, 0, 0, 0.25), 0 3px 8px rgba(0, 0, 0, 0.18)" });
9
+ const SLIDER_TRACK_PIXELS = 6;
10
+ const SLIDER_RAIL = Object.freeze({ light: "rgba(120, 120, 128, 0.24)", dark: "rgba(120, 120, 128, 0.40)" });
11
+ const PILL_RADIUS = 999;
12
+ const BUTTON_HEIGHT_PIXELS = Object.freeze({ small: 31, medium: 38, large: 42 });
13
+ const BUTTON_LINE_HEIGHT = 1.3;
14
+ const PROMINENT_SHEEN_IMAGE = "linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 55%)";
15
+ const PROMINENT_SHEEN_SHADOW = "inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 -1px 0 rgba(0, 0, 0, 0.12)";
16
+ const ALERT_TINT_PERCENT = Object.freeze({ light: 14, dark: 20 });
17
+ const DARK_FLOATING_OPACITY = 0.88;
18
+ const MENU_CHECKMARK_CONTENT = '"✓" / ""';
19
+ const SENTENCE_CASE_TITLE_PIXELS = 13;
20
+ const REDUCED_MOTION_QUERY = "@media (prefers-reduced-motion: reduce)";
21
+ const ACTIVITY_SPOKE_COUNT = 8;
22
+ const ACTIVITY_SPIN_DURATION = "0.8s";
23
+ const ACTIVITY_TAIL_MIN_OPACITY = 0.15;
24
+ const ACTIVITY_TAIL_MAX_OPACITY = 0.85;
25
+ const PROGRESS_BAR_HEIGHT_PIXELS = 6;
26
+ const SHEET_MAX_WIDTH_PIXELS = 640;
27
+ const TINTED_FILL_PERCENT = Object.freeze({ light: { rest: 12, hover: 18 }, dark: { rest: 22, hover: 30 } });
28
+ const WHITE_LABEL = "#FFFFFF";
29
+ const PROMINENT_HOVER_SHADE_PERCENT = 12;
30
+ const STEP_PENDING_GRAY = Object.freeze({ light: "#6E6E73", dark: "#48484A" });
31
+ const SWITCH_LABEL_GAP_PIXELS = 12;
32
+ const MONOGRAM_GRAY = Object.freeze({ light: "#6E6E73", dark: "#636366" });
33
+ const PROMINENT_GLASS_OPACITY = 1;
34
+ const FIELD_RADIUS_PIXELS = 12;
35
+ const FIELD_RING_PERCENT = 40;
36
+ const FIELD_RING_PIXELS = Object.freeze({ focused: 3, error: 2 });
37
+ const COMBO_BUTTON_PIXELS = 28;
38
+ const COMBO_BUTTON_RADIUS_PIXELS = 6;
39
+ const COMBO_INSET_PIXELS = 6;
40
+ const COMBO_GAP_PIXELS = 6;
41
+ const COMBO_CLEAR_PIXELS = 26;
42
+ const CHEVRON_PATHS = Object.freeze({ upDown: "M8 9.5l4-4 4 4M8 14.5l4 4 4-4", down: "M6 9.5l6 6 6-6" });
43
+ const chevronSvgOf = (path) => `url("data:image/svg+xml,${encodeURIComponent(
44
+ `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="${path}"/></svg>`
45
+ )}")`;
46
+ const UP_DOWN_CHEVRON_MASK = chevronSvgOf(CHEVRON_PATHS.upDown);
47
+ const CHEVRON_DOWN_MASK = chevronSvgOf(CHEVRON_PATHS.down);
48
+ function chevronMaskOf(mask) {
49
+ return {
50
+ backgroundColor: "currentColor",
51
+ maskImage: mask,
52
+ WebkitMaskImage: mask,
53
+ maskSize: "100% 100%",
54
+ WebkitMaskSize: "100% 100%",
55
+ maskRepeat: "no-repeat",
56
+ WebkitMaskRepeat: "no-repeat"
57
+ };
58
+ }
59
+ const SWITCH_SIZES = Object.freeze({
60
+ medium: { width: 46, height: 28, thumb: 24 },
61
+ small: { width: 36, height: 22, thumb: 18 }
62
+ });
63
+ const SWITCH_THUMB_MARGIN_PIXELS = 2;
64
+ const SWITCH_OFF_TRACK = Object.freeze({ light: "rgba(120, 120, 128, 0.20)", dark: "rgba(120, 120, 128, 0.36)" });
65
+ function activitySpokesMaskOf() {
66
+ const degreesPerSpoke = 360 / ACTIVITY_SPOKE_COUNT;
67
+ const tailStep = (ACTIVITY_TAIL_MAX_OPACITY - ACTIVITY_TAIL_MIN_OPACITY) / (ACTIVITY_SPOKE_COUNT - 2);
68
+ const spokes = Array.from({ length: ACTIVITY_SPOKE_COUNT }, (unused, index) => {
69
+ const opacity = index === 0 ? 1 : ACTIVITY_TAIL_MIN_OPACITY + (index - 1) * tailStep;
70
+ return `<rect x="11" y="2" width="2" height="6" rx="1" opacity="${opacity.toFixed(2)}" transform="rotate(${index * degreesPerSpoke} 12 12)"/>`;
71
+ }).join("");
72
+ return `url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">${spokes}</svg>`)}")`;
73
+ }
74
+ const ACTIVITY_SPOKES_MASK = activitySpokesMaskOf();
75
+ function pressedMotionOf(pressedTransform) {
76
+ return {
77
+ "&:active": { transform: pressedTransform },
78
+ [REDUCED_MOTION_QUERY]: { "&:active": { transform: "none" } }
79
+ };
80
+ }
81
+ function tintedGlassOf(theme, colorName) {
82
+ const tint = colorName && colorName !== "default" && colorName !== "inherit" ? paletteOf(theme)[colorName]?.main : null;
83
+ return tint ? glassSurfaceOf(tint, { opacity: glassOpacityOf(theme) }) : glassStylesOf(theme);
84
+ }
85
+ function darkGlassOf(darkColor) {
86
+ return glassSurfaceOf(darkColor, { opacity: DARK_FLOATING_OPACITY, isDark: true });
87
+ }
88
+ function contentMaterialOf(theme) {
89
+ return { ...materialStylesOf(theme), borderColor: "transparent" };
90
+ }
91
+ function whiteLabelOf(theme, colorName) {
92
+ const schemeStylesOf = (scheme) => {
93
+ const fill = whiteLabelFillOf(theme.colorSchemes?.[scheme]?.palette?.[colorName]?.main);
94
+ if (!fill) {
95
+ return {};
96
+ }
97
+ return {
98
+ backgroundColor: fill,
99
+ color: WHITE_LABEL,
100
+ "&:hover": { backgroundColor: `color-mix(in srgb, ${fill} ${100 - PROMINENT_HOVER_SHADE_PERCENT}%, black)` }
101
+ };
102
+ };
103
+ return { ...schemeStylesOf("light"), ...theme.applyStyles("dark", schemeStylesOf("dark")) };
104
+ }
105
+ function monogramOf(theme) {
106
+ return {
107
+ color: WHITE_LABEL,
108
+ backgroundColor: MONOGRAM_GRAY.light,
109
+ ...theme.applyStyles("dark", { color: WHITE_LABEL, backgroundColor: MONOGRAM_GRAY.dark })
110
+ };
111
+ }
112
+ function tintedControlOf(theme, toneColor) {
113
+ const fillOf = (percent) => `color-mix(in srgb, ${toneColor} ${percent}%, transparent)`;
114
+ const plain = { backgroundImage: "none", backdropFilter: "none", WebkitBackdropFilter: "none", boxShadow: "none", borderColor: "transparent" };
115
+ return {
116
+ ...plain,
117
+ color: paletteOf(theme).text.primary,
118
+ backgroundColor: fillOf(TINTED_FILL_PERCENT.light.rest),
119
+ "&:hover": { ...plain, backgroundColor: fillOf(TINTED_FILL_PERCENT.light.hover) },
120
+ ...theme.applyStyles("dark", {
121
+ backgroundColor: fillOf(TINTED_FILL_PERCENT.dark.rest),
122
+ "&:hover": { backgroundColor: fillOf(TINTED_FILL_PERCENT.dark.hover) }
123
+ })
124
+ };
125
+ }
126
+ function fieldFillOf(theme) {
127
+ return fieldWellStylesOf(theme);
128
+ }
129
+ function fieldRingsOf(theme) {
130
+ const palette = paletteOf(theme);
131
+ const ringOf = (color, width) => ({ outline: `${width}px solid color-mix(in srgb, ${color} ${FIELD_RING_PERCENT}%, transparent)`, outlineOffset: 0 });
132
+ return {
133
+ "&.Mui-focused": ringOf(palette.primary.main, FIELD_RING_PIXELS.focused),
134
+ "&.Mui-error": ringOf(palette.error.main, FIELD_RING_PIXELS.error),
135
+ "&.Mui-error.Mui-focused": ringOf(palette.error.main, FIELD_RING_PIXELS.focused)
136
+ };
137
+ }
138
+ function floatingDrawerOf(anchor) {
139
+ const inset = `${GLASS_INSET_PIXELS}px`;
140
+ const fullLength = `calc(100% - ${GLASS_INSET_PIXELS * 2}px)`;
141
+ const centeredSheet = { maxWidth: SHEET_MAX_WIDTH_PIXELS, marginInline: "auto" };
142
+ const placementByAnchor = {
143
+ left: { top: inset, left: inset, height: fullLength },
144
+ right: { top: inset, right: inset, height: fullLength },
145
+ top: { top: inset, left: inset, right: inset, maxHeight: fullLength, ...centeredSheet },
146
+ bottom: { bottom: inset, left: inset, right: inset, maxHeight: fullLength, ...centeredSheet }
147
+ };
148
+ return { ...placementByAnchor[anchor], borderRadius: GLASS_PANEL_RADIUS_PIXELS };
149
+ }
150
+ function glassComponents({ surfaces = false } = {}) {
151
+ return {
152
+ ...surfaces && {
153
+ MuiPaper: {
154
+ styleOverrides: {
155
+ root: ({ ownerState, theme }) => ownerState.variant === "outlined" ? contentMaterialOf(theme) : {}
156
+ }
157
+ },
158
+ MuiCard: {
159
+ styleOverrides: {
160
+ root: ({ theme }) => contentMaterialOf(theme)
161
+ }
162
+ },
163
+ // el acordeón (HIG «Disclosure controls»): cada sección es su propia tarjeta de material, separada de la
164
+ // siguiente, en vez de la línea gris de MUI entre ellas; todas con la misma esquina (MUI redondeaba solo la
165
+ // primera y la última)
166
+ MuiAccordion: {
167
+ styleOverrides: {
168
+ root: ({ theme }) => ({
169
+ ...contentMaterialOf(theme),
170
+ "&, &:first-of-type, &:last-of-type": { borderRadius: GLASS_MENU_RADIUS_PIXELS },
171
+ "&::before": { display: "none" },
172
+ "&, &.Mui-expanded": { margin: `0 0 ${GLASS_INSET_PIXELS}px` },
173
+ "&:last-of-type, &.Mui-expanded:last-of-type": { marginBottom: 0 }
174
+ })
175
+ }
176
+ },
177
+ // los avisos dentro del contenido (Alert): el de omisión, material teñido del color de su tipo (verde, rojo,
178
+ // ámbar, azul): HIG «Color» permite color en el vidrio para «status indicators»; el de borde, material sin tinte
179
+ // con su borde de color; el relleno, de su color con el brillo del botón principal
180
+ MuiAlert: {
181
+ styleOverrides: {
182
+ root: ({ ownerState, theme }) => {
183
+ if (ownerState.variant === "filled") {
184
+ return { backgroundImage: PROMINENT_SHEEN_IMAGE, boxShadow: PROMINENT_SHEEN_SHADOW };
185
+ }
186
+ if (ownerState.variant === "outlined") {
187
+ return materialStylesOf(theme);
188
+ }
189
+ const palette = paletteOf(theme);
190
+ const severityColor = (palette[ownerState.colorSeverity] ?? palette.info).main;
191
+ const tintOf = (percent) => `color-mix(in srgb, ${severityColor} ${percent}%, ${palette.background.paper})`;
192
+ return materialStylesOf(theme, { color: tintOf(ALERT_TINT_PERCENT.light), darkColor: tintOf(ALERT_TINT_PERCENT.dark) });
193
+ }
194
+ }
195
+ }
196
+ },
197
+ // los títulos chicos en mayúsculas (variant="overline": el de SectionCard, MetricCard, los campos, los ajustes): Apple
198
+ // dejó de poner los encabezados en mayúsculas («section headers no longer render entirely in capital letters»,
199
+ // Adopting Liquid Glass) y los títulos de sus cajas van «sentence-style» (HIG «Boxes»)
200
+ MuiTypography: {
201
+ styleOverrides: {
202
+ overline: { textTransform: "none", fontWeight: 600, ...textSizeOf(SENTENCE_CASE_TITLE_PIXELS) }
203
+ }
204
+ },
205
+ // la barra de arriba (la del color principal, fija o no): vidrio NEUTRO en claro y en oscuro. HIG «Toolbars»: «Reduce
206
+ // the use of toolbar backgrounds and tinted controls»; un vidrio naranja al 80 % se veía sólido. El brillo del borde
207
+ // ya la separa del contenido: la línea de abajo sobra
208
+ MuiAppBar: {
209
+ styleOverrides: {
210
+ root: ({ ownerState, theme }) => {
211
+ const isPrimary = (ownerState.color ?? "primary") === "primary";
212
+ if (!isPrimary) {
213
+ return {};
214
+ }
215
+ return { ...glassStylesOf(theme), color: paletteOf(theme).text.primary, borderBottom: "none" };
216
+ }
217
+ }
218
+ },
219
+ MuiPopover: {
220
+ styleOverrides: {
221
+ paper: ({ theme }) => ({ ...glassStylesOf(theme), borderRadius: GLASS_MENU_RADIUS_PIXELS })
222
+ }
223
+ },
224
+ // los renglones de un menú: concéntricos con el menú, y el elegido (la opción actual de una lista) con su palomita
225
+ // y no con un fondo de color (HIG «Menus»: «Consider using a checkmark to show that an attribute is currently in
226
+ // effect»)
227
+ MuiMenuItem: {
228
+ styleOverrides: {
229
+ root: ({ theme }) => ({
230
+ marginInline: MENU_ROW_INSET_PIXELS,
231
+ borderRadius: GLASS_MENU_RADIUS_PIXELS - MENU_ROW_INSET_PIXELS,
232
+ "&.Mui-selected": { backgroundColor: "transparent" },
233
+ "&.Mui-selected:hover": { backgroundColor: paletteOf(theme).action.hover },
234
+ // con el teclado encima, el renglón elegido sí se marca: si no, no se ve dónde está el foco
235
+ "&.Mui-selected.Mui-focusVisible, &.Mui-selected:focus-visible": { backgroundColor: paletteOf(theme).action.selected },
236
+ "&.Mui-selected::after": {
237
+ content: MENU_CHECKMARK_CONTENT,
238
+ marginInlineStart: "auto",
239
+ paddingInlineStart: theme.spacing(2),
240
+ ...accentTextStylesOf(theme),
241
+ fontWeight: 600
242
+ }
243
+ })
244
+ }
245
+ },
246
+ // el «combo box» de Apple (HIG «Combo boxes»): el campo con un botoncito cuadrado del color principal y su ⌄ blanco
247
+ // al final; abierto, el ⌄ no gira (en Apple se queda igual)
248
+ MuiAutocomplete: {
249
+ styleOverrides: {
250
+ paper: ({ theme }) => ({ ...glassStylesOf(theme), borderRadius: GLASS_MENU_RADIUS_PIXELS }),
251
+ option: { marginInline: MENU_ROW_INSET_PIXELS, borderRadius: GLASS_MENU_RADIUS_PIXELS - MENU_ROW_INSET_PIXELS },
252
+ popupIndicator: ({ theme }) => ({
253
+ width: COMBO_BUTTON_PIXELS,
254
+ height: COMBO_BUTTON_PIXELS,
255
+ padding: 0,
256
+ borderRadius: COMBO_BUTTON_RADIUS_PIXELS,
257
+ backgroundImage: PROMINENT_SHEEN_IMAGE,
258
+ ...whiteLabelOf(theme, "primary"),
259
+ "& svg": { display: "none" },
260
+ "&::after": { content: '""', width: 14, height: 14, ...chevronMaskOf(CHEVRON_DOWN_MASK) }
261
+ }),
262
+ popupIndicatorOpen: { transform: "none" },
263
+ // el botón y la ⓧ con aire: el botón a 6 px de la orilla, con esquina concéntrica con la del campo (12 - 6), y la
264
+ // ⓧ separada de él (iban pegados entre sí y a la orilla: «pegadísimo», lo reportaron)
265
+ // OJO: MUI ya lo centra (top 50% + translate); restarle la mitad del botón lo subía 14 px fuera del campo
266
+ endAdornment: { right: COMBO_INSET_PIXELS, display: "flex", alignItems: "center", gap: COMBO_GAP_PIXELS },
267
+ clearIndicator: ({ theme }) => ({ padding: 4, marginRight: 0, color: paletteOf(theme).text.secondary, "& .MuiSvgIcon-root": { fontSize: "1.125rem" } }),
268
+ inputRoot: {
269
+ ".MuiAutocomplete-hasPopupIcon &": { paddingRight: COMBO_INSET_PIXELS + COMBO_BUTTON_PIXELS + COMBO_GAP_PIXELS * 2 },
270
+ ".MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon &": { paddingRight: COMBO_INSET_PIXELS + COMBO_BUTTON_PIXELS + COMBO_GAP_PIXELS * 3 + COMBO_CLEAR_PIXELS }
271
+ }
272
+ }
273
+ },
274
+ // las listas para elegir (Select): el ⌃⌄ de los botones de Apple que abren una lista («pop-up buttons») en lugar del
275
+ // triángulo de MUI; tampoco gira al abrir
276
+ MuiSelect: {
277
+ styleOverrides: {
278
+ icon: {
279
+ width: 16,
280
+ height: 16,
281
+ top: "calc(50% - 8px)",
282
+ "& path": { display: "none" },
283
+ ...chevronMaskOf(UP_DOWN_CHEVRON_MASK)
284
+ },
285
+ iconOpen: { transform: "none" }
286
+ }
287
+ },
288
+ // el calendario de MUI X (/date-pickers) en escritorio; en el teléfono sale en un diálogo (MuiDialog)
289
+ MuiPickerPopper: {
290
+ styleOverrides: {
291
+ paper: ({ theme }) => ({ ...glassStylesOf(theme), borderRadius: GLASS_MENU_RADIUS_PIXELS })
292
+ }
293
+ },
294
+ // la tabla (MUI X Data Grid): el menú de cada columna y los paneles de filtros y columnas
295
+ MuiDataGrid: {
296
+ styleOverrides: {
297
+ // con el contenido de material: la tabla va dentro de su tarjeta (ServerTable la pone en un Paper outlined)
298
+ // y su fondo propio, sólido, tapaba el material. La columna pegada a la izquierda sigue sólida (ServerTable le
299
+ // pone el papel) para que no se vea lo que pasa por debajo al deslizar de lado.
300
+ // OJO: la tabla pone sus colores con una etiqueta <style> propia (clase MuiDataGridVariables-…) que va después
301
+ // en la página; con la misma fuerza ganaba ella y la tabla seguía blanca. Con dos clases (&.MuiDataGrid-root)
302
+ // gana esta.
303
+ ...surfaces && {
304
+ root: { "&.MuiDataGrid-root": { "--DataGrid-t-color-background-base": "transparent", "--DataGrid-t-header-background-base": "transparent" } }
305
+ },
306
+ panelContent: ({ theme }) => ({ ...glassStylesOf(theme), borderRadius: GLASS_MENU_RADIUS_PIXELS }),
307
+ menu: ({ theme }) => ({ "& .MuiPaper-root": { ...glassStylesOf(theme), borderRadius: GLASS_MENU_RADIUS_PIXELS } })
308
+ }
309
+ },
310
+ // los cajones: de vidrio; los que salen encima del contenido flotan separados de la orilla (Adopting Liquid Glass:
311
+ // «half sheets are inset from the edge of the display to allow content to peek through from beneath them»)
312
+ MuiDrawer: {
313
+ styleOverrides: {
314
+ paper: ({ ownerState, theme }) => ({
315
+ ...glassStylesOf(theme),
316
+ ...ownerState.variant === "temporary" && floatingDrawerOf(ownerState.anchor ?? "left")
317
+ })
318
+ }
319
+ },
320
+ MuiDialog: {
321
+ styleOverrides: {
322
+ paper: ({ ownerState, theme }) => ownerState.fullScreen ? {} : { ...glassStylesOf(theme), borderRadius: GLASS_PANEL_RADIUS_PIXELS },
323
+ // la hoja de lectura (ContentDialog) deja la barra de arriba a la vista para no perder dónde se está: sin
324
+ // desenfoque detrás, o la barra se volvía ilegible
325
+ backdrop: ({ ownerState }) => ownerState.fullScreen ? { "&:not(.MuiBackdrop-invisible)": { backdropFilter: "none", WebkitBackdropFilter: "none" } } : {}
326
+ }
327
+ },
328
+ // detrás de un diálogo: menos oscuro y desenfocado (el vidrio del diálogo se lee mejor sobre algo ya borroso)
329
+ MuiBackdrop: {
330
+ styleOverrides: {
331
+ root: {
332
+ "&:not(.MuiBackdrop-invisible)": {
333
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
334
+ backdropFilter: "blur(6px)",
335
+ WebkitBackdropFilter: "blur(6px)",
336
+ ...solidFallbackOf({ backgroundColor: "rgba(0, 0, 0, 0.6)", backdropFilter: "none", WebkitBackdropFilter: "none" })
337
+ }
338
+ }
339
+ }
340
+ },
341
+ MuiTooltip: {
342
+ styleOverrides: {
343
+ tooltip: ({ theme }) => ({ ...darkGlassOf(paletteOf(theme).Tooltip?.bg ?? paletteOf(theme).grey[700]), borderRadius: 8 }),
344
+ arrow: ({ theme }) => ({ color: darkGlassOf(paletteOf(theme).Tooltip?.bg ?? paletteOf(theme).grey[700]).backgroundColor })
345
+ }
346
+ },
347
+ MuiSnackbarContent: {
348
+ styleOverrides: {
349
+ root: ({ theme }) => ({ ...darkGlassOf(paletteOf(theme).SnackbarContent?.bg ?? paletteOf(theme).grey[900]), borderRadius: GLASS_MENU_RADIUS_PIXELS })
350
+ }
351
+ },
352
+ MuiFab: {
353
+ styleOverrides: {
354
+ root: ({ ownerState, theme }) => {
355
+ const surface = tintedGlassOf(theme, ownerState.color);
356
+ const fillOf = (scheme) => whiteLabelFillOf(theme.colorSchemes?.[scheme]?.palette?.[ownerState.color]?.main);
357
+ const lightFill = fillOf("light");
358
+ const darkFill = fillOf("dark");
359
+ return {
360
+ ...surface,
361
+ // de color: su vidrio lleva el color oscurecido lo justo para la letra blanca (whiteLabelFillOf)
362
+ ...lightFill && { ...glassSurfaceOf(lightFill, { opacity: PROMINENT_GLASS_OPACITY }), color: WHITE_LABEL },
363
+ ...darkFill && theme.applyStyles("dark", {
364
+ ...glassSurfaceOf(darkFill, { opacity: PROMINENT_GLASS_OPACITY, isDark: true }),
365
+ color: WHITE_LABEL
366
+ }),
367
+ transition: theme.transitions.create(["background-color", "box-shadow", "transform"], { duration: theme.transitions.duration.short }),
368
+ // MUI cambia el fondo y la sombra al pasar y al apretar: el vidrio se queda, y al apretar se hunde
369
+ "&:hover": { backgroundColor: surface.backgroundColor },
370
+ "&:active": { boxShadow: surface.boxShadow, transform: `scale(${PRESSED_SCALE})` },
371
+ [REDUCED_MOTION_QUERY]: { "&:active": { transform: "none" } }
372
+ };
373
+ }
374
+ }
375
+ },
376
+ MuiBottomNavigation: {
377
+ styleOverrides: {
378
+ root: ({ theme }) => ({ ...glassStylesOf(theme), borderRadius: PILL_RADIUS, padding: MENU_ROW_INSET_PIXELS, gap: MENU_ROW_INSET_PIXELS, height: 64 })
379
+ }
380
+ },
381
+ MuiBottomNavigationAction: {
382
+ styleOverrides: {
383
+ root: ({ theme }) => ({
384
+ borderRadius: PILL_RADIUS,
385
+ minWidth: 0,
386
+ // con mergeStyles: las dos partes traen su modo oscuro y la suma simple borraba la de la gota
387
+ "&.Mui-selected": mergeStyles(glassDropOf(theme), accentTextStylesOf(theme))
388
+ })
389
+ }
390
+ },
391
+ // los botones (HIG «Buttons»): cápsulas («prefer circular or capsule-shape buttons»), que se hunden al apretarlas
392
+ // («Always include a press state»)
393
+ MuiButton: {
394
+ styleOverrides: {
395
+ // con texto largo la etiqueta se parte en dos renglones: con el interlineado de MUI (1.75) y la esquina de cápsula
396
+ // salía un óvalo grande con los renglones separados (lo reportaron). Interlineado 1.3, el MISMO alto de un renglón
397
+ // que antes (minHeight) y la esquina de la mitad de ese alto: con un renglón es cápsula; con dos, rectángulo
398
+ // redondeado, como los botones de Apple que no caben
399
+ root: ({ ownerState, theme }) => ({
400
+ lineHeight: BUTTON_LINE_HEIGHT,
401
+ minHeight: BUTTON_HEIGHT_PIXELS[ownerState.size ?? "medium"] ?? BUTTON_HEIGHT_PIXELS.medium,
402
+ borderRadius: `${(BUTTON_HEIGHT_PIXELS[ownerState.size ?? "medium"] ?? BUTTON_HEIGHT_PIXELS.medium) / 2}px`,
403
+ transition: theme.transitions.create(["background-color", "box-shadow", "border-color", "color", "transform"], {
404
+ duration: theme.transitions.duration.short
405
+ }),
406
+ ...pressedMotionOf(`scale(${PRESSED_SCALE})`)
407
+ }),
408
+ // el principal (contained) es el «prominente» de Apple: el color va en el fondo («To emphasize primary
409
+ // actions, apply color to the background rather than to symbols or text», HIG «Color»), con el brillo del
410
+ // vidrio para que se lea sobre cualquier cosa
411
+ contained: ({ ownerState, theme }) => ({
412
+ backgroundImage: PROMINENT_SHEEN_IMAGE,
413
+ boxShadow: PROMINENT_SHEEN_SHADOW,
414
+ "&:hover, &:active, &.Mui-focusVisible": { boxShadow: PROMINENT_SHEEN_SHADOW },
415
+ ...whiteLabelOf(theme, ownerState.color ?? "primary"),
416
+ "&.Mui-disabled": { backgroundImage: "none", boxShadow: "none" }
417
+ }),
418
+ // el de solo texto («borderless» de Apple): la letra del color del tema, pero legible (accentTextStylesOf); el
419
+ // naranja tal cual sobre una tarjeta clara daba 2.78 : 1
420
+ text: ({ ownerState, theme }) => paletteOf(theme)[ownerState.color] ? accentTextStylesOf(theme, ownerState.color) : {},
421
+ // el de borde es el «botón de vidrio» de Apple: una cápsula de vidrio sin borde de color (el filo del vidrio
422
+ // ya la dibuja; con los dos se veía un doble aro). Con el color de omisión (primary) la letra va de un solo
423
+ // color: «Prefer the default monochromatic appearance of button labels» y no repetir en la letra el color
424
+ // del fondo (HIG «Buttons»); con otro color a propósito (error, success…) la letra lo conserva. Al pasar el
425
+ // cursor, un toque de color encima del vidrio, sin perder el vidrio
426
+ // DENTRO de una tarjeta, un diálogo o un menú (cualquier Paper) ya no es vidrio: ahí no hay nada detrás que el
427
+ // vidrio deje ver y se leía como «cápsula blanca con sombra» (lo dijo el autor). Apple: «Don't use Liquid Glass
428
+ // in the content layer»; en el contenido usa el botón «bordered», un relleno tenue de su color. Los que van
429
+ // dentro de un grupo los pinta el grupo (por eso el :not)
430
+ outlined: ({ ownerState, theme }) => {
431
+ const palette = paletteOf(theme);
432
+ const isDefaultColor = (ownerState.color ?? "primary") === "primary";
433
+ const toneColor = palette[ownerState.color]?.main ?? palette.text.primary;
434
+ const label = isDefaultColor || !palette[ownerState.color] ? { color: palette.text.primary } : accentTextStylesOf(theme, ownerState.color);
435
+ const glass = glassStylesOf(theme, { isControl: true });
436
+ const hoverTint = `color-mix(in srgb, ${isDefaultColor ? palette.text.primary : toneColor} 10%, transparent)`;
437
+ return {
438
+ // con mergeStyles: el vidrio y la letra traen su modo oscuro; la suma simple borraba el del vidrio
439
+ ...mergeStyles(glass, label),
440
+ borderColor: "transparent",
441
+ "&:hover": { ...glass, borderColor: "transparent", backgroundImage: `linear-gradient(${hoverTint}, ${hoverTint})` },
442
+ "&.Mui-disabled": { borderColor: "transparent" },
443
+ [insideContentSelectorOf(":not(.MuiButtonGroup-grouped)")]: tintedControlOf(theme, toneColor)
444
+ };
445
+ }
446
+ }
447
+ },
448
+ // el grupo de botones con borde: UNA cápsula de vidrio con los botones adentro, separados por una línea fina, como
449
+ // los grupos de una barra de Apple que comparten fondo (HIG «Toolbars»: agrupar por función); adentro los botones
450
+ // no llevan vidrio propio, porque vidrio sobre vidrio no se lee
451
+ MuiButtonGroup: {
452
+ styleOverrides: {
453
+ root: ({ ownerState, theme }) => {
454
+ const borderRadius = ownerState.orientation === "vertical" ? GLASS_MENU_RADIUS_PIXELS : PILL_RADIUS;
455
+ if (ownerState.variant !== "outlined") {
456
+ return { borderRadius };
457
+ }
458
+ const plain = { backgroundImage: "none", backdropFilter: "none", WebkitBackdropFilter: "none", boxShadow: "none" };
459
+ const groupFillOf = (percent) => `color-mix(in srgb, ${paletteOf(theme).text.primary} ${percent}%, transparent)`;
460
+ return {
461
+ ...glassStylesOf(theme, { isControl: true }),
462
+ borderRadius,
463
+ overflow: "hidden",
464
+ [insideContentSelectorOf()]: {
465
+ ...plain,
466
+ backgroundColor: groupFillOf(TINTED_FILL_PERCENT.light.rest),
467
+ ...theme.applyStyles("dark", { backgroundColor: groupFillOf(TINTED_FILL_PERCENT.dark.rest) })
468
+ }
469
+ };
470
+ },
471
+ grouped: ({ ownerState, theme }) => {
472
+ if (ownerState.variant !== "outlined") {
473
+ return {};
474
+ }
475
+ const plain = { backgroundColor: "transparent", backgroundImage: "none", backdropFilter: "none", WebkitBackdropFilter: "none", boxShadow: "none" };
476
+ const separator = `1px solid ${paletteOf(theme).divider}`;
477
+ return {
478
+ ...plain,
479
+ border: 0,
480
+ "&:hover": { ...plain, backgroundColor: paletteOf(theme).action.hover },
481
+ // OJO: el lente del botón (con la marca de <body>) le ganaba a esta regla y el botón volvía a ser
482
+ // vidrio dentro de su grupo; con la marca también aquí, gana el grupo (medido en Chrome)
483
+ [`${GLASS_LENS_FLAG_SELECTOR} &`]: plain,
484
+ ...ownerState.orientation === "vertical" ? { "&:not(:last-of-type)": { borderBottom: separator } } : { "&:not(:last-of-type)": { borderRight: separator } }
485
+ };
486
+ }
487
+ }
488
+ },
489
+ // las ligas: el color del tema, legible (accentTextStylesOf); la de color="inherit" se respeta
490
+ MuiLink: {
491
+ styleOverrides: {
492
+ root: ({ ownerState, theme }) => paletteOf(theme)[ownerState.color] ? accentTextStylesOf(theme, ownerState.color) : {}
493
+ }
494
+ },
495
+ // las etiquetas que se pican (filtros rápidos, rango de fechas) son controles, y Apple los pinta como sus botones de
496
+ // vidrio: la no elegida es una cápsula de vidrio sin borde de color (como el botón con borde) y la elegida va de su
497
+ // color con el brillo del botón principal (el «prominente»). Las que solo informan (el estado en un renglón de la
498
+ // tabla) son contenido y se quedan como están: «Don't use Liquid Glass in the content layer» (HIG «Materials»).
499
+ // OJO: MUI marca el cursor encima y el foco con dos clases (&.MuiChip-clickable:hover); con una sola, ganaba su gris.
500
+ // el avatar con iniciales es el «monograma» de Apple (el de Contactos): iniciales BLANCAS sobre un gris que las deja leer.
501
+ // El de MUI ponía letras oscuras sobre gris en claro y claras sobre gris en oscuro, y casi no se leían (lo reportaron).
502
+ // Un avatar con foto no cambia (la foto tapa el fondo)
503
+ MuiAvatar: {
504
+ styleOverrides: {
505
+ colorDefault: ({ theme }) => monogramOf(theme)
506
+ }
507
+ },
508
+ MuiChip: {
509
+ styleOverrides: {
510
+ // el avatar dentro de una etiqueta («Con avatar»): el mismo monograma; MUI le ponía su gris de letra
511
+ avatar: ({ theme }) => monogramOf(theme),
512
+ root: ({ ownerState, theme }) => {
513
+ const isFilledWithColor = ownerState.variant !== "outlined" && ownerState.color && ownerState.color !== "default";
514
+ const darkLabel = isFilledWithColor ? whiteLabelOf(theme, ownerState.color) : {};
515
+ const hasColor = ownerState.color && ownerState.color !== "default" && paletteOf(theme)[ownerState.color];
516
+ const outlinedText = ownerState.variant === "outlined" && hasColor ? accentTextStylesOf(theme, ownerState.color) : {};
517
+ if (!ownerState.clickable) {
518
+ return { ...darkLabel, ...outlinedText };
519
+ }
520
+ if (ownerState.variant === "outlined") {
521
+ const glass = glassStylesOf(theme, { isControl: true });
522
+ const hoverTint = `color-mix(in srgb, ${paletteOf(theme).text.primary} 8%, transparent)`;
523
+ const hoverGlass = { ...glass, borderColor: "transparent", backgroundImage: `linear-gradient(${hoverTint}, ${hoverTint})` };
524
+ return {
525
+ ...glass,
526
+ borderColor: "transparent",
527
+ "&.MuiChip-clickable:hover, &.Mui-focusVisible": hoverGlass,
528
+ // dentro de una tarjeta, un relleno tenue y no vidrio (como el botón con borde)
529
+ [insideContentSelectorOf()]: tintedControlOf(theme, paletteOf(theme).text.primary)
530
+ };
531
+ }
532
+ return { backgroundImage: PROMINENT_SHEEN_IMAGE, boxShadow: PROMINENT_SHEEN_SHADOW, ...darkLabel };
533
+ }
534
+ }
535
+ },
536
+ // el numerito (Badge) de color: en oscuro, letra blanca sobre su color oscurecido
537
+ MuiBadge: {
538
+ styleOverrides: {
539
+ badge: ({ ownerState, theme }) => ownerState.color && ownerState.color !== "default" ? whiteLabelOf(theme, ownerState.color) : {}
540
+ }
541
+ },
542
+ // los campos (HIG «Text fields» y las imágenes de la propia guía): la etiqueta va ARRIBA y fuera del campo, siempre a
543
+ // la vista («include a separate label describing the field», porque la pista desaparece al escribir), en vez de la
544
+ // que flota sobre el borde en MUI. Los de línea (variant="standard") se quedan como MUI los pinta
545
+ MuiInputLabel: {
546
+ defaultProps: { shrink: true },
547
+ styleOverrides: {
548
+ root: ({ ownerState, theme }) => ownerState.variant === "standard" ? {} : {
549
+ position: "relative",
550
+ transform: "none",
551
+ maxWidth: "100%",
552
+ marginBottom: theme.spacing(0.75),
553
+ ...textSizeOf(SENTENCE_CASE_TITLE_PIXELS),
554
+ fontWeight: 600,
555
+ lineHeight: 1.4,
556
+ whiteSpace: "normal",
557
+ pointerEvents: "auto",
558
+ color: paletteOf(theme).text.secondary
559
+ }
560
+ }
561
+ },
562
+ // el campo con borde de MUI (el de omisión, el de los Select, los Autocomplete y los campos del framework): sobre el
563
+ // lienzo es una lámina de vidrio con esquinas de 12 px (la imagen de «Text fields» de Apple) y el buscador, una cápsula
564
+ // (el de la barra de iPad); dentro de una tarjeta, el relleno gris de los campos de Apple (fieldFillOf). Sin el borde de
565
+ // MUI en ningún caso: lo marca el aro (fieldRingsOf). Dentro de una FormSection el campo es un renglón (FormSection.jsx)
566
+ MuiOutlinedInput: {
567
+ defaultProps: { notched: false },
568
+ styleOverrides: {
569
+ root: ({ ownerState, theme }) => ({
570
+ ...canvasFieldStylesOf(theme),
571
+ borderRadius: ownerState.type === "search" ? PILL_RADIUS : FIELD_RADIUS_PIXELS,
572
+ "& .MuiOutlinedInput-notchedOutline": { borderColor: "transparent" },
573
+ "&:hover .MuiOutlinedInput-notchedOutline, &.Mui-focused .MuiOutlinedInput-notchedOutline, &.Mui-error .MuiOutlinedInput-notchedOutline": {
574
+ borderColor: "transparent"
575
+ },
576
+ ...fieldRingsOf(theme),
577
+ [insideContentSelectorOf()]: fieldFillOf(theme)
578
+ })
579
+ }
580
+ },
581
+ // el campo relleno de MUI: el mismo relleno de Apple, sin la raya de abajo, con el texto centrado (MUI le dejaba
582
+ // arriba el lugar de la etiqueta, que ahora va afuera)
583
+ MuiFilledInput: {
584
+ styleOverrides: {
585
+ root: ({ ownerState, theme }) => ({
586
+ ...fieldFillOf(theme),
587
+ "&::before, &::after": { display: "none" },
588
+ ...ownerState.multiline && { padding: "16.5px 14px" },
589
+ ...fieldRingsOf(theme)
590
+ }),
591
+ input: ({ ownerState }) => ownerState.multiline ? {} : {
592
+ paddingTop: ownerState.size === "small" ? 8.5 : 16.5,
593
+ paddingBottom: ownerState.size === "small" ? 8.5 : 16.5,
594
+ paddingInline: 14
595
+ }
596
+ }
597
+ },
598
+ // el campo de fecha de MUI X (/date-pickers) tiene su propia pieza: lo mismo que el campo con borde
599
+ MuiPickersOutlinedInput: {
600
+ styleOverrides: {
601
+ root: ({ theme }) => ({
602
+ ...canvasFieldStylesOf(theme),
603
+ borderRadius: FIELD_RADIUS_PIXELS,
604
+ "& .MuiPickersOutlinedInput-notchedOutline": { borderColor: "transparent" },
605
+ "&:hover .MuiPickersOutlinedInput-notchedOutline, &.Mui-focused .MuiPickersOutlinedInput-notchedOutline, &.Mui-error .MuiPickersOutlinedInput-notchedOutline": {
606
+ borderColor: "transparent"
607
+ },
608
+ ...fieldRingsOf(theme),
609
+ [insideContentSelectorOf()]: fieldFillOf(theme)
610
+ })
611
+ }
612
+ },
613
+ // los botones de opción: una tira apenas marcada y la opción elegida en su gota. Acostados y sin fullWidth, todas las
614
+ // opciones miden lo mismo (la más ancha manda): «all segments are usually equal in width» (HIG «Segmented controls»)
615
+ MuiToggleButtonGroup: {
616
+ styleOverrides: {
617
+ root: ({ ownerState, theme }) => ({
618
+ backgroundColor: paletteOf(theme).action.hover,
619
+ borderRadius: PILL_RADIUS,
620
+ padding: 3,
621
+ gap: 2,
622
+ // la tira mide lo que sus opciones (dentro de una columna se estiraba a todo lo ancho), salvo fullWidth
623
+ ...!ownerState.fullWidth && { width: "fit-content", maxWidth: "100%" },
624
+ ...!ownerState.fullWidth && ownerState.orientation !== "vertical" && {
625
+ display: "inline-grid",
626
+ gridAutoFlow: "column",
627
+ gridAutoColumns: "1fr"
628
+ },
629
+ "& .MuiToggleButtonGroup-grouped": { border: 0, margin: 0, borderRadius: PILL_RADIUS },
630
+ "& .MuiToggleButtonGroup-grouped.Mui-selected, & .MuiToggleButtonGroup-grouped.Mui-selected:hover": glassDropOf(theme)
631
+ })
632
+ }
633
+ },
634
+ // la casilla: la palomita BLANCA sobre el color oscurecido lo justo (whiteLabelFillOf), como las de Apple. La de MUI es
635
+ // un hueco en el cuadro y en oscuro se veía la palomita negra (lo reportaron: «espantoso»); un cuadrito blanco detrás
636
+ // del dibujo la vuelve blanca. Vale igual para la casilla «mixta»
637
+ MuiCheckbox: {
638
+ styleOverrides: {
639
+ root: ({ ownerState, theme }) => {
640
+ const colorName = ownerState.color ?? "primary";
641
+ const fillOf = (scheme) => whiteLabelFillOf(theme.colorSchemes?.[scheme]?.palette?.[colorName]?.main);
642
+ const lightFill = fillOf("light");
643
+ const darkFill = fillOf("dark");
644
+ const whiteMark = { background: "linear-gradient(#fff, #fff) center / 58% 58% no-repeat", borderRadius: 4 };
645
+ return {
646
+ "&.Mui-checked .MuiSvgIcon-root, &.MuiCheckbox-indeterminate .MuiSvgIcon-root": whiteMark,
647
+ ...lightFill && { "&.Mui-checked, &.MuiCheckbox-indeterminate": { color: lightFill } },
648
+ ...darkFill && theme.applyStyles("dark", { "&.Mui-checked, &.MuiCheckbox-indeterminate": { color: darkFill } })
649
+ };
650
+ }
651
+ }
652
+ },
653
+ // el interruptor con su texto: el de iPhone no trae el margen que MUI usa para separar el texto, y salía pegado (lo
654
+ // reportaron). 12 px entre los dos; con el texto antes (labelPlacement="start"), el texto a la izquierda y el
655
+ // interruptor a la derecha del renglón, como en Ajustes
656
+ MuiFormControlLabel: {
657
+ styleOverrides: {
658
+ root: {
659
+ "&:has(.MuiSwitch-root)": { gap: SWITCH_LABEL_GAP_PIXELS, marginLeft: 0 },
660
+ "&:has(.MuiSwitch-root).MuiFormControlLabel-labelPlacementStart": { marginRight: 0, justifyContent: "space-between" }
661
+ }
662
+ }
663
+ },
664
+ // el número de los pasos (Stepper): blanco sobre el círculo. El activo y los hechos, del color del tema oscurecido lo justo
665
+ // para el blanco (whiteLabelFillOf); los que faltan, gris de Apple. En oscuro la paleta ponía el número negro sobre el
666
+ // naranja y no se notaba el «1» (lo reportaron)
667
+ MuiStepIcon: {
668
+ styleOverrides: {
669
+ root: ({ theme }) => {
670
+ const fillOf = (scheme) => whiteLabelFillOf(theme.colorSchemes?.[scheme]?.palette?.primary?.main);
671
+ const lightFill = fillOf("light");
672
+ const darkFill = fillOf("dark");
673
+ return {
674
+ color: STEP_PENDING_GRAY.light,
675
+ "& .MuiStepIcon-text": { fill: WHITE_LABEL },
676
+ ...lightFill && { "&.Mui-active, &.Mui-completed": { color: lightFill } },
677
+ ...theme.applyStyles("dark", {
678
+ color: STEP_PENDING_GRAY.dark,
679
+ ...darkFill && { "&.Mui-active, &.Mui-completed": { color: darkFill } }
680
+ })
681
+ };
682
+ }
683
+ }
684
+ },
685
+ // el día del calendario de MUI X (como el de Apple): el elegido en un círculo tenue de su color con el número legible,
686
+ // y hoy, con el número del color del tema (legible); nada de letra negra sobre el naranja
687
+ MuiPickersDay: {
688
+ styleOverrides: {
689
+ root: ({ theme }) => {
690
+ const palette = paletteOf(theme);
691
+ const selected = {
692
+ backgroundColor: `color-mix(in srgb, ${palette.primary.main} 22%, transparent)`,
693
+ ...accentTextStylesOf(theme),
694
+ fontWeight: 600
695
+ };
696
+ return {
697
+ "&.Mui-selected, &.Mui-selected:hover, &.Mui-selected:focus": selected,
698
+ "&.MuiPickersDay-today:not(.Mui-selected)": { border: 0, ...accentTextStylesOf(theme), fontWeight: 600 }
699
+ };
700
+ }
701
+ }
702
+ },
703
+ // las pestañas: la misma tira, y la marca de abajo se vuelve la gota detrás de la pestaña elegida (se desliza sola)
704
+ MuiTabs: {
705
+ styleOverrides: {
706
+ root: ({ ownerState, theme }) => ownerState.vertical ? {} : {
707
+ minHeight: 0,
708
+ padding: MENU_ROW_INSET_PIXELS,
709
+ borderRadius: PILL_RADIUS,
710
+ backgroundColor: paletteOf(theme).action.hover,
711
+ width: "fit-content",
712
+ maxWidth: "100%",
713
+ "& .MuiTab-root": { minHeight: 36, paddingBlock: 6, paddingInline: 16, borderRadius: PILL_RADIUS, zIndex: 1 },
714
+ "& .MuiTab-root.Mui-selected": { color: paletteOf(theme).text.primary }
715
+ },
716
+ indicator: ({ ownerState, theme }) => ownerState.vertical ? { display: "none" } : { ...glassDropOf(theme), height: "100%", borderRadius: PILL_RADIUS, zIndex: 0 },
717
+ // de pie son una lista para navegar, como el menú lateral: la elegida en su gota y no con la rayita de MUI
718
+ // OJO: la gota iba pegada a la línea de la derecha y sin aire entre pestañas («todo pegado»): se separan
719
+ vertical: ({ theme }) => ({
720
+ paddingRight: theme.spacing(1),
721
+ "& .MuiTab-root": {
722
+ minHeight: 40,
723
+ borderRadius: GLASS_MENU_RADIUS_PIXELS,
724
+ alignItems: "flex-start",
725
+ marginBlock: 3,
726
+ paddingInline: theme.spacing(2)
727
+ },
728
+ "& .MuiTab-root.Mui-focusVisible": { outlineOffset: 2 },
729
+ "& .MuiTab-root.Mui-selected": { ...glassDropOf(theme), color: paletteOf(theme).text.primary }
730
+ })
731
+ }
732
+ },
733
+ // los pasos con puntos del teléfono: en su lugar, sin fondo propio (sobre una tarjeta se veía un rectángulo); pegados
734
+ // abajo o arriba de la pantalla, flotan de vidrio
735
+ MuiMobileStepper: {
736
+ styleOverrides: {
737
+ root: ({ ownerState, theme }) => ownerState.position === "static" ? { background: "transparent" } : glassStylesOf(theme)
738
+ }
739
+ },
740
+ // un renglón elegido de una lista (la carpeta abierta): en su gota, como el menú lateral (HIG «Sidebars»)
741
+ MuiListItemButton: {
742
+ styleOverrides: {
743
+ root: ({ theme }) => ({
744
+ "&.Mui-selected, &.Mui-selected:hover, &.Mui-selected.Mui-focusVisible": mergeStyles(glassDropOf(theme), accentTextStylesOf(theme))
745
+ })
746
+ }
747
+ },
748
+ // la paginación: la página actual en su gota, como lo elegido en los demás controles
749
+ MuiPaginationItem: {
750
+ styleOverrides: {
751
+ root: ({ theme }) => ({
752
+ "&.Mui-selected, &.Mui-selected:hover, &.Mui-selected.Mui-focusVisible": {
753
+ ...glassDropOf(theme),
754
+ borderColor: "transparent",
755
+ color: paletteOf(theme).text.primary
756
+ }
757
+ })
758
+ }
759
+ },
760
+ // el interruptor: la perilla con brillo, que crece al apretarla (HIG «Materials»: los controles como el interruptor
761
+ // «take on a Liquid Glass appearance… when a person activates it»)
762
+ // Y tiene la forma del de iPhone: una cápsula con la perilla blanca ADENTRO (el de MUI pone la perilla encima de una
763
+ // pista delgada); prendido, la pista es del color del interruptor; apagado, el gris de relleno de Apple
764
+ MuiSwitch: {
765
+ styleOverrides: {
766
+ // OJO: las medidas van aquí, colgadas de la raíz: MUI pone las del interruptor chico con un selector así de
767
+ // fuerte (.raíz .MuiSwitch-switchBase.Mui-checked) y, puestas en cada pieza, ganaba la suya (la perilla se
768
+ // salía de la pista)
769
+ root: ({ ownerState }) => {
770
+ const size = SWITCH_SIZES[ownerState.size] ?? SWITCH_SIZES.medium;
771
+ return {
772
+ width: size.width,
773
+ height: size.height,
774
+ padding: 0,
775
+ overflow: "visible",
776
+ "& .MuiSwitch-switchBase": { padding: 0, margin: SWITCH_THUMB_MARGIN_PIXELS },
777
+ "& .MuiSwitch-switchBase.Mui-checked": { transform: `translateX(${size.width - size.thumb - SWITCH_THUMB_MARGIN_PIXELS * 2}px)` },
778
+ "& .MuiSwitch-thumb": { width: size.thumb, height: size.thumb },
779
+ "& .MuiSwitch-track": { borderRadius: size.height / 2 }
780
+ };
781
+ },
782
+ switchBase: ({ ownerState, theme }) => {
783
+ const palette = paletteOf(theme);
784
+ const onColor = (palette[ownerState.color] ?? palette.primary).main;
785
+ return {
786
+ color: palette.common.white,
787
+ "&.Mui-checked": {
788
+ color: palette.common.white,
789
+ "& + .MuiSwitch-track": { backgroundColor: onColor, opacity: 1 }
790
+ },
791
+ "&.Mui-disabled + .MuiSwitch-track, &.Mui-checked.Mui-disabled + .MuiSwitch-track": { opacity: 0.4 },
792
+ "&.Mui-disabled .MuiSwitch-thumb": { opacity: 0.8 },
793
+ // con el teclado, un aro alrededor de la perilla
794
+ "&.Mui-focusVisible .MuiSwitch-thumb": { outline: `2px solid ${onColor}`, outlineOffset: 2 },
795
+ "&:hover": { backgroundColor: "transparent" },
796
+ "&:active .MuiSwitch-thumb": { transform: `scale(${PRESSED_THUMB_SCALE})` },
797
+ [REDUCED_MOTION_QUERY]: { "&:active .MuiSwitch-thumb": { transform: "none" } }
798
+ };
799
+ },
800
+ thumb: ({ theme }) => ({
801
+ boxShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 1px 3px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.12)",
802
+ transition: theme.transitions.create(["transform"], { duration: theme.transitions.duration.shortest })
803
+ }),
804
+ track: ({ theme }) => ({
805
+ opacity: 1,
806
+ backgroundColor: SWITCH_OFF_TRACK.light,
807
+ transition: theme.transitions.create(["background-color"], { duration: theme.transitions.duration.short }),
808
+ ...theme.applyStyles("dark", { backgroundColor: SWITCH_OFF_TRACK.dark })
809
+ })
810
+ }
811
+ },
812
+ // el deslizador: la perilla clara (como la de Apple) que, al arrastrarla, crece y se vuelve una lupa de vidrio
813
+ MuiSlider: {
814
+ styleOverrides: {
815
+ thumb: ({ ownerState, theme }) => {
816
+ const palette = paletteOf(theme);
817
+ const centered = ownerState.orientation === "vertical" ? "translate(-50%, 50%)" : "translate(-50%, -50%)";
818
+ const pressedGlass = {
819
+ backgroundColor: `color-mix(in srgb, ${palette.background.paper} 45%, transparent)`,
820
+ backdropFilter: "blur(2px) saturate(180%)",
821
+ WebkitBackdropFilter: "blur(2px) saturate(180%)",
822
+ ...solidFallbackOf({ backgroundColor: palette.background.paper, backdropFilter: "none", WebkitBackdropFilter: "none" })
823
+ };
824
+ const isVertical = ownerState.orientation === "vertical";
825
+ return {
826
+ width: isVertical ? SLIDER_THUMB.short : SLIDER_THUMB.long,
827
+ height: isVertical ? SLIDER_THUMB.long : SLIDER_THUMB.short,
828
+ borderRadius: PILL_RADIUS,
829
+ backgroundColor: palette.common.white,
830
+ border: 0,
831
+ boxShadow: SLIDER_THUMB.shadow,
832
+ // MUI pone un halo del color al pasar el cursor; en Apple la perilla solo se ve, sin halo
833
+ "&:hover, &.Mui-focusVisible": { boxShadow: SLIDER_THUMB.shadow },
834
+ "&.Mui-focusVisible": { outline: `2px solid ${palette.primary.main}`, outlineOffset: 2 },
835
+ transition: theme.transitions.create(["box-shadow", "left", "bottom", "transform", "background-color"], {
836
+ duration: theme.transitions.duration.shortest
837
+ }),
838
+ "&.Mui-active": { transform: `${centered} scale(${PRESSED_THUMB_SCALE})`, ...pressedGlass },
839
+ [REDUCED_MOTION_QUERY]: { "&.Mui-active": { transform: centered } }
840
+ };
841
+ },
842
+ rail: ({ theme }) => ({
843
+ opacity: 1,
844
+ backgroundColor: SLIDER_RAIL.light,
845
+ ...theme.applyStyles("dark", { backgroundColor: SLIDER_RAIL.dark })
846
+ }),
847
+ root: ({ ownerState }) => ownerState.orientation === "vertical" ? { width: SLIDER_TRACK_PIXELS } : { height: SLIDER_TRACK_PIXELS }
848
+ }
849
+ },
850
+ // lo que espera (HIG «Progress indicators»): el «cargando» sin cuánto falta es la ruedita de iPhone, rayitas que giran
851
+ // a saltos con la cola desvanecida (no el anillo de MUI): se dibuja con una máscara y gira con la misma animación de
852
+ // MUI, solo que en 8 saltos. El que sí dice cuánto falta conserva el anillo, con su pista de fondo y la punta redonda.
853
+ // Cambian solos todos los «cargando» del framework: el de los botones, la pantalla de espera y las tablas.
854
+ // La ruedita sigue girando aunque la persona pida menos movimiento: Apple pide «Keep progress indicators moving».
855
+ MuiCircularProgress: {
856
+ defaultProps: { enableTrackSlot: true },
857
+ styleOverrides: {
858
+ root: ({ ownerState }) => ownerState.variant === "determinate" ? {} : {
859
+ backgroundColor: "currentColor",
860
+ maskImage: ACTIVITY_SPOKES_MASK,
861
+ WebkitMaskImage: ACTIVITY_SPOKES_MASK,
862
+ maskSize: "100% 100%",
863
+ WebkitMaskSize: "100% 100%",
864
+ maskRepeat: "no-repeat",
865
+ WebkitMaskRepeat: "no-repeat",
866
+ animationDuration: ACTIVITY_SPIN_DURATION,
867
+ animationTimingFunction: `steps(${ACTIVITY_SPOKE_COUNT})`,
868
+ "& .MuiCircularProgress-svg": { visibility: "hidden" }
869
+ },
870
+ circle: ({ ownerState }) => ownerState.variant === "determinate" ? { strokeLinecap: "round" } : {}
871
+ }
872
+ },
873
+ // la barra de progreso: la cápsula delgada de Apple, con la pista gris neutra y la parte llena de punta redonda
874
+ MuiLinearProgress: {
875
+ styleOverrides: {
876
+ root: ({ theme }) => ({ height: PROGRESS_BAR_HEIGHT_PIXELS, borderRadius: PILL_RADIUS, backgroundColor: paletteOf(theme).action.hover }),
877
+ bar: { borderRadius: PILL_RADIUS }
878
+ }
879
+ }
880
+ };
881
+ }
882
+ export {
883
+ glassComponents
884
+ };
885
+ //# sourceMappingURL=glassComponents.js.map