@stackcraftmx/calcita 0.27.0 → 0.30.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 (298) hide show
  1. package/README.md +149 -0
  2. package/dist/DataTable/AuditTrailDialog.js +18 -14
  3. package/dist/DataTable/AuditTrailDialog.js.map +1 -1
  4. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js +12 -6
  5. package/dist/DataTable/ColumnFilters/HeaderFilterPopover.js.map +1 -1
  6. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js +8 -3
  7. package/dist/DataTable/ColumnFilters/MultiSelectColumnFilter.js.map +1 -1
  8. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js +26 -18
  9. package/dist/DataTable/ColumnFilters/SortableFilterHeader.js.map +1 -1
  10. package/dist/DataTable/EmptyState.js +8 -3
  11. package/dist/DataTable/EmptyState.js.map +1 -1
  12. package/dist/DataTable/FilterChips.js +11 -5
  13. package/dist/DataTable/FilterChips.js.map +1 -1
  14. package/dist/DataTable/GoToPage.js +9 -4
  15. package/dist/DataTable/GoToPage.js.map +1 -1
  16. package/dist/DataTable/ServerTable.js +74 -61
  17. package/dist/DataTable/ServerTable.js.map +1 -1
  18. package/dist/DataTable/columns.js +1 -8
  19. package/dist/DataTable/columns.js.map +1 -1
  20. package/dist/access/PermissionMatrix.js +18 -9
  21. package/dist/access/PermissionMatrix.js.map +1 -1
  22. package/dist/account/AccountSecuritySection.js +8 -3
  23. package/dist/account/AccountSecuritySection.js.map +1 -1
  24. package/dist/account/DemoTotpCodeButton.js +8 -3
  25. package/dist/account/DemoTotpCodeButton.js.map +1 -1
  26. package/dist/account/ProfileScreen.js +19 -13
  27. package/dist/account/ProfileScreen.js.map +1 -1
  28. package/dist/account/SignInScreen.js +6 -2
  29. package/dist/account/SignInScreen.js.map +1 -1
  30. package/dist/appShell/AccountMenu.js +13 -5
  31. package/dist/appShell/AccountMenu.js.map +1 -1
  32. package/dist/appShell/AppLayout.js +100 -71
  33. package/dist/appShell/AppLayout.js.map +1 -1
  34. package/dist/appShell/AppearanceSettings.js +21 -13
  35. package/dist/appShell/AppearanceSettings.js.map +1 -1
  36. package/dist/appShell/AuthLayout.js +26 -13
  37. package/dist/appShell/AuthLayout.js.map +1 -1
  38. package/dist/appShell/BarActions.js +10 -5
  39. package/dist/appShell/BarActions.js.map +1 -1
  40. package/dist/appShell/BarCapsule.js +9 -4
  41. package/dist/appShell/BarCapsule.js.map +1 -1
  42. package/dist/appShell/BarSearch.js +7 -3
  43. package/dist/appShell/BarSearch.js.map +1 -1
  44. package/dist/appShell/HeaderTools.js +20 -15
  45. package/dist/appShell/HeaderTools.js.map +1 -1
  46. package/dist/appShell/MobileTabBar.js +25 -14
  47. package/dist/appShell/MobileTabBar.js.map +1 -1
  48. package/dist/appShell/SettingsMenu.js +7 -3
  49. package/dist/appShell/SettingsMenu.js.map +1 -1
  50. package/dist/appShell/SideMenu.js +53 -35
  51. package/dist/appShell/SideMenu.js.map +1 -1
  52. package/dist/appShell/SideMenuEntry.js +18 -9
  53. package/dist/appShell/SideMenuEntry.js.map +1 -1
  54. package/dist/appShell/SubmenuActionsMenu.js +6 -2
  55. package/dist/appShell/SubmenuActionsMenu.js.map +1 -1
  56. package/dist/appShell/TabBarEditor.js +16 -7
  57. package/dist/appShell/TabBarEditor.js.map +1 -1
  58. package/dist/appShell/TopMenu.js +12 -7
  59. package/dist/appShell/TopMenu.js.map +1 -1
  60. package/dist/appShell/Wordmark.js +6 -2
  61. package/dist/appShell/Wordmark.js.map +1 -1
  62. package/dist/auth/PasswordChecklist.js +14 -7
  63. package/dist/auth/PasswordChecklist.js.map +1 -1
  64. package/dist/calendar/EventCalendar.js +26 -19
  65. package/dist/calendar/EventCalendar.js.map +1 -1
  66. package/dist/calendar/EventDetails.js +28 -13
  67. package/dist/calendar/EventDetails.js.map +1 -1
  68. package/dist/downloads/DownloadManager.js +34 -18
  69. package/dist/downloads/DownloadManager.js.map +1 -1
  70. package/dist/feedback/ConfirmDialog.js +22 -17
  71. package/dist/feedback/ConfirmDialog.js.map +1 -1
  72. package/dist/feedback/ModalWaiting.js +12 -5
  73. package/dist/feedback/ModalWaiting.js.map +1 -1
  74. package/dist/feedback/NewBuildNotice.js +16 -8
  75. package/dist/feedback/NewBuildNotice.js.map +1 -1
  76. package/dist/filepond/FileDropzone.js +39 -31
  77. package/dist/filepond/FileDropzone.js.map +1 -1
  78. package/dist/forms/FormProblemAlert.js +4 -1
  79. package/dist/forms/FormProblemAlert.js.map +1 -1
  80. package/dist/forms/auth/SignInForm.js +6 -2
  81. package/dist/forms/auth/SignInForm.js.map +1 -1
  82. package/dist/forms/security/SecondStepForm.js +6 -2
  83. package/dist/forms/security/SecondStepForm.js.map +1 -1
  84. package/dist/forms/security/TwoStepVerificationCard.js +19 -9
  85. package/dist/forms/security/TwoStepVerificationCard.js.map +1 -1
  86. package/dist/hookForm/FormProblemAlert.js +4 -1
  87. package/dist/hookForm/FormProblemAlert.js.map +1 -1
  88. package/dist/inbox/InboxLayout.js +47 -29
  89. package/dist/inbox/InboxLayout.js.map +1 -1
  90. package/dist/inbox/MessageList.js +53 -32
  91. package/dist/inbox/MessageList.js.map +1 -1
  92. package/dist/inbox/MessageView.js +31 -15
  93. package/dist/inbox/MessageView.js.map +1 -1
  94. package/dist/index.js +7 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/inputs/ColorInput.js +22 -17
  97. package/dist/inputs/ColorInput.js.map +1 -1
  98. package/dist/inputs/FormSection.js +66 -63
  99. package/dist/inputs/FormSection.js.map +1 -1
  100. package/dist/inputs/SelectInput.js +21 -16
  101. package/dist/inputs/SelectInput.js.map +1 -1
  102. package/dist/inputs/TextInput.js +25 -20
  103. package/dist/inputs/TextInput.js.map +1 -1
  104. package/dist/inputs/WizardLayout.js +21 -15
  105. package/dist/inputs/WizardLayout.js.map +1 -1
  106. package/dist/kanban/KanbanBoard.js +82 -50
  107. package/dist/kanban/KanbanBoard.js.map +1 -1
  108. package/dist/maps/MapView.js +19 -14
  109. package/dist/maps/MapView.js.map +1 -1
  110. package/dist/pwa/InstallAppSetting.js +4 -1
  111. package/dist/pwa/InstallAppSetting.js.map +1 -1
  112. package/dist/pwa/InstallInstructionsDialog.js +6 -2
  113. package/dist/pwa/InstallInstructionsDialog.js.map +1 -1
  114. package/dist/pwa/InstallPromptBanner.js +10 -5
  115. package/dist/pwa/InstallPromptBanner.js.map +1 -1
  116. package/dist/security/ActivityLog.js +6 -2
  117. package/dist/security/ActivityLog.js.map +1 -1
  118. package/dist/security/RecoveryCodesDialog.js +8 -3
  119. package/dist/security/RecoveryCodesDialog.js.map +1 -1
  120. package/dist/security/SessionsCard.js +12 -5
  121. package/dist/security/SessionsCard.js.map +1 -1
  122. package/dist/theme/components/glassComponents.js +19 -16
  123. package/dist/theme/components/glassComponents.js.map +1 -1
  124. package/dist/theme/components/minimalComponents.js +10 -6
  125. package/dist/theme/components/minimalComponents.js.map +1 -1
  126. package/dist/theme/createToolkitTheme.js +23 -6
  127. package/dist/theme/createToolkitTheme.js.map +1 -1
  128. package/dist/theme/cssTokens.js +23 -0
  129. package/dist/theme/cssTokens.js.map +1 -0
  130. package/dist/theme/glassSurface.js +64 -10
  131. package/dist/theme/glassSurface.js.map +1 -1
  132. package/dist/theme/glassToasterStyles.js +2 -3
  133. package/dist/theme/glassToasterStyles.js.map +1 -1
  134. package/dist/theme/themePieces.js +16 -0
  135. package/dist/theme/themePieces.js.map +1 -0
  136. package/dist/types/DataTable/AuditTrailDialog.d.ts +1 -1
  137. package/dist/types/DataTable/ColumnFilters/HeaderFilterPopover.d.ts +1 -1
  138. package/dist/types/DataTable/ColumnFilters/MultiSelectColumnFilter.d.ts +1 -1
  139. package/dist/types/DataTable/ColumnFilters/SortableFilterHeader.d.ts +1 -1
  140. package/dist/types/DataTable/EmptyState.d.ts +1 -1
  141. package/dist/types/DataTable/FilterChips.d.ts +1 -1
  142. package/dist/types/DataTable/GoToPage.d.ts +1 -1
  143. package/dist/types/DataTable/ServerTable.d.ts +1 -1
  144. package/dist/types/access/PermissionMatrix.d.ts +1 -1
  145. package/dist/types/account/AccountSecuritySection.d.ts +1 -1
  146. package/dist/types/account/DemoTotpCodeButton.d.ts +1 -1
  147. package/dist/types/account/ProfileScreen.d.ts +1 -1
  148. package/dist/types/account/SignInScreen.d.ts +1 -1
  149. package/dist/types/appShell/AccountMenu.d.ts +1 -1
  150. package/dist/types/appShell/AppLayout.d.ts +1 -1
  151. package/dist/types/appShell/AppearanceSettings.d.ts +1 -1
  152. package/dist/types/appShell/AuthLayout.d.ts +1 -1
  153. package/dist/types/appShell/BarActions.d.ts +1 -1
  154. package/dist/types/appShell/BarCapsule.d.ts +1 -1
  155. package/dist/types/appShell/BarSearch.d.ts +1 -1
  156. package/dist/types/appShell/HeaderTools.d.ts +1 -1
  157. package/dist/types/appShell/MobileTabBar.d.ts +1 -1
  158. package/dist/types/appShell/SettingsMenu.d.ts +1 -1
  159. package/dist/types/appShell/SideMenu.d.ts +1 -1
  160. package/dist/types/appShell/SideMenuEntry.d.ts +1 -1
  161. package/dist/types/appShell/SubmenuActionsMenu.d.ts +1 -1
  162. package/dist/types/appShell/TabBarEditor.d.ts +1 -1
  163. package/dist/types/appShell/TopMenu.d.ts +1 -1
  164. package/dist/types/appShell/Wordmark.d.ts +1 -1
  165. package/dist/types/auth/PasswordChecklist.d.ts +1 -1
  166. package/dist/types/calendar/EventCalendar.d.ts +1 -1
  167. package/dist/types/calendar/EventDetails.d.ts +1 -1
  168. package/dist/types/feedback/ConfirmDialog.d.ts +1 -1
  169. package/dist/types/feedback/ModalWaiting.d.ts +1 -1
  170. package/dist/types/feedback/NewBuildNotice.d.ts +1 -1
  171. package/dist/types/filepond/FileDropzone.d.ts +1 -1
  172. package/dist/types/forms/auth/SignInForm.d.ts +1 -1
  173. package/dist/types/forms/security/SecondStepForm.d.ts +1 -1
  174. package/dist/types/forms/security/TwoStepVerificationCard.d.ts +1 -1
  175. package/dist/types/inbox/InboxLayout.d.ts +1 -1
  176. package/dist/types/inbox/MessageList.d.ts +1 -1
  177. package/dist/types/inbox/MessageView.d.ts +1 -1
  178. package/dist/types/index.d.ts +2 -1
  179. package/dist/types/inputs/ColorInput.d.ts +1 -1
  180. package/dist/types/inputs/FormSection.d.ts +2 -2
  181. package/dist/types/inputs/SelectInput.d.ts +1 -1
  182. package/dist/types/inputs/TextInput.d.ts +1 -1
  183. package/dist/types/inputs/WizardLayout.d.ts +1 -1
  184. package/dist/types/kanban/KanbanBoard.d.ts +1 -1
  185. package/dist/types/maps/MapView.d.ts +1 -1
  186. package/dist/types/pwa/InstallInstructionsDialog.d.ts +1 -1
  187. package/dist/types/pwa/InstallPromptBanner.d.ts +1 -1
  188. package/dist/types/security/ActivityLog.d.ts +1 -1
  189. package/dist/types/security/RecoveryCodesDialog.d.ts +1 -1
  190. package/dist/types/security/SessionsCard.d.ts +1 -1
  191. package/dist/types/theme/createToolkitTheme.d.ts +33 -1
  192. package/dist/types/theme/cssTokens.d.ts +46 -0
  193. package/dist/types/theme/glassSurface.d.ts +57 -1
  194. package/dist/types/theme/themePieces.d.ts +20 -0
  195. package/dist/types/ui/actions/ActionsMenu.d.ts +1 -1
  196. package/dist/types/ui/actions/DownloadMenu.d.ts +1 -1
  197. package/dist/types/ui/actions/SelectionActions.d.ts +1 -1
  198. package/dist/types/ui/filters/DateRangeFilter.d.ts +1 -1
  199. package/dist/types/ui/filters/PeriodRangeSelector.d.ts +1 -1
  200. package/dist/types/ui/filters/QuickFilters.d.ts +1 -1
  201. package/dist/types/ui/filters/SegmentedControl.d.ts +7 -2
  202. package/dist/types/ui/labels/StatusChip.d.ts +1 -1
  203. package/dist/types/ui/labels/Tag.d.ts +1 -1
  204. package/dist/types/ui/layout/CollapsibleSection.d.ts +1 -1
  205. package/dist/types/ui/layout/ContentDialog.d.ts +1 -1
  206. package/dist/types/ui/layout/DefinitionList.d.ts +1 -1
  207. package/dist/types/ui/layout/DetailHeader.d.ts +1 -1
  208. package/dist/types/ui/layout/ErrorPage.d.ts +1 -1
  209. package/dist/types/ui/layout/GlassPanel.d.ts +1 -1
  210. package/dist/types/ui/layout/PageHeader.d.ts +1 -1
  211. package/dist/types/ui/layout/PageHeading.d.ts +1 -1
  212. package/dist/types/ui/layout/ProfileHeader.d.ts +1 -1
  213. package/dist/types/ui/layout/ScrollableRow.d.ts +1 -1
  214. package/dist/types/ui/layout/SectionCard.d.ts +1 -1
  215. package/dist/types/ui/metrics/BarList.d.ts +1 -1
  216. package/dist/types/ui/metrics/CalendarHeatmap.d.ts +1 -1
  217. package/dist/types/ui/metrics/ChartTooltip.d.ts +1 -1
  218. package/dist/types/ui/metrics/ColumnChart.d.ts +1 -1
  219. package/dist/types/ui/metrics/LineChart.d.ts +1 -1
  220. package/dist/types/ui/metrics/MetricCard.d.ts +1 -1
  221. package/dist/types/ui/metrics/TableToggle.d.ts +1 -1
  222. package/dist/types/ui/navigation/ColorSchemeToggle.d.ts +1 -1
  223. package/dist/types/ui/navigation/FontSizeToggle.d.ts +1 -1
  224. package/dist/types/ui/navigation/LanguageToggle.d.ts +1 -1
  225. package/dist/types/ui/navigation/PageBreadcrumbs.d.ts +1 -1
  226. package/dist/types/ui/timeline/GroupedTimeline.d.ts +1 -1
  227. package/dist/types/upload/FileDropzone.d.ts +1 -1
  228. package/dist/ui/actions/ActionsMenu.js +9 -4
  229. package/dist/ui/actions/ActionsMenu.js.map +1 -1
  230. package/dist/ui/actions/DownloadMenu.js +21 -17
  231. package/dist/ui/actions/DownloadMenu.js.map +1 -1
  232. package/dist/ui/actions/SelectionActions.js +15 -7
  233. package/dist/ui/actions/SelectionActions.js.map +1 -1
  234. package/dist/ui/filters/DateRangeFilter.js +11 -5
  235. package/dist/ui/filters/DateRangeFilter.js.map +1 -1
  236. package/dist/ui/filters/PeriodRangeSelector.js +11 -5
  237. package/dist/ui/filters/PeriodRangeSelector.js.map +1 -1
  238. package/dist/ui/filters/QuickFilters.js +16 -8
  239. package/dist/ui/filters/QuickFilters.js.map +1 -1
  240. package/dist/ui/filters/SegmentedControl.js +12 -5
  241. package/dist/ui/filters/SegmentedControl.js.map +1 -1
  242. package/dist/ui/labels/StatusChip.js +35 -25
  243. package/dist/ui/labels/StatusChip.js.map +1 -1
  244. package/dist/ui/labels/Tag.js +8 -3
  245. package/dist/ui/labels/Tag.js.map +1 -1
  246. package/dist/ui/layout/CollapsibleSection.js +18 -8
  247. package/dist/ui/layout/CollapsibleSection.js.map +1 -1
  248. package/dist/ui/layout/ContentDialog.js +13 -6
  249. package/dist/ui/layout/ContentDialog.js.map +1 -1
  250. package/dist/ui/layout/DefinitionList.js +13 -6
  251. package/dist/ui/layout/DefinitionList.js.map +1 -1
  252. package/dist/ui/layout/DetailHeader.js +14 -6
  253. package/dist/ui/layout/DetailHeader.js.map +1 -1
  254. package/dist/ui/layout/ErrorPage.js +20 -15
  255. package/dist/ui/layout/ErrorPage.js.map +1 -1
  256. package/dist/ui/layout/FullPageLoader.js +4 -1
  257. package/dist/ui/layout/FullPageLoader.js.map +1 -1
  258. package/dist/ui/layout/GlassPanel.js +8 -4
  259. package/dist/ui/layout/GlassPanel.js.map +1 -1
  260. package/dist/ui/layout/PageHeader.js +10 -4
  261. package/dist/ui/layout/PageHeader.js.map +1 -1
  262. package/dist/ui/layout/PageHeading.js +17 -8
  263. package/dist/ui/layout/PageHeading.js.map +1 -1
  264. package/dist/ui/layout/ProfileHeader.js +21 -10
  265. package/dist/ui/layout/ProfileHeader.js.map +1 -1
  266. package/dist/ui/layout/ScrollableRow.js +19 -15
  267. package/dist/ui/layout/ScrollableRow.js.map +1 -1
  268. package/dist/ui/layout/SectionCard.js +10 -4
  269. package/dist/ui/layout/SectionCard.js.map +1 -1
  270. package/dist/ui/metrics/BarList.js +9 -4
  271. package/dist/ui/metrics/BarList.js.map +1 -1
  272. package/dist/ui/metrics/CalendarHeatmap.js +40 -21
  273. package/dist/ui/metrics/CalendarHeatmap.js.map +1 -1
  274. package/dist/ui/metrics/ChartTooltip.js +6 -2
  275. package/dist/ui/metrics/ChartTooltip.js.map +1 -1
  276. package/dist/ui/metrics/ColumnChart.js +22 -18
  277. package/dist/ui/metrics/ColumnChart.js.map +1 -1
  278. package/dist/ui/metrics/LineChart.js +20 -16
  279. package/dist/ui/metrics/LineChart.js.map +1 -1
  280. package/dist/ui/metrics/MetricCard.js +42 -24
  281. package/dist/ui/metrics/MetricCard.js.map +1 -1
  282. package/dist/ui/metrics/TableToggle.js +7 -2
  283. package/dist/ui/metrics/TableToggle.js.map +1 -1
  284. package/dist/ui/metrics/chartParts.js +14 -5
  285. package/dist/ui/metrics/chartParts.js.map +1 -1
  286. package/dist/ui/navigation/ColorSchemeToggle.js +8 -4
  287. package/dist/ui/navigation/ColorSchemeToggle.js.map +1 -1
  288. package/dist/ui/navigation/FontSizeToggle.js +6 -2
  289. package/dist/ui/navigation/FontSizeToggle.js.map +1 -1
  290. package/dist/ui/navigation/LanguageToggle.js +8 -4
  291. package/dist/ui/navigation/LanguageToggle.js.map +1 -1
  292. package/dist/ui/navigation/PageBreadcrumbs.js +12 -6
  293. package/dist/ui/navigation/PageBreadcrumbs.js.map +1 -1
  294. package/dist/ui/timeline/GroupedTimeline.js +26 -13
  295. package/dist/ui/timeline/GroupedTimeline.js.map +1 -1
  296. package/dist/upload/FileDropzone.js +35 -25
  297. package/dist/upload/FileDropzone.js.map +1 -1
  298. package/package.json +1 -1
@@ -32,11 +32,21 @@ export declare const TOP_BAR: Readonly<{
32
32
  * teléfono y lo que flota). Lo que no se pase se queda con los grises de Apple (MINIMAL_TONES). OJO: con el minimalista
33
33
  * el fondo de la página sale de aquí y no de la paleta (sin minimalTones, los grises de Apple aunque la paleta traiga
34
34
  * su background)
35
+ * @param {{radius?: number, light?: {fill?: string, hoverFill?: string, border?: string, hoverBorder?: string}, dark?: {fill?: string, hoverFill?: string, border?: string, hoverBorder?: string}}} [options.fields]
36
+ * cómo se ven los campos de captura (con vidrio, con el minimalista y dentro de FormSection), por modo: fill (el
37
+ * relleno), hoverFill (con el cursor encima), border y hoverBorder (la orilla); y radius (las esquinas, en px). Lo que no
38
+ * se pase se queda como el estilo lo trae (FIELD_TONES: el gris de Apple; con el minimalista, su relleno). Van en la
39
+ * paleta de cada modo (palette.field), así que también se pueden escribir en colorSchemes y cambian solos con el modo.
40
+ * Ejemplo, campos blancos con borde en claro: {light: {fill: '#FFFFFF', hoverFill: '#FFFFFF', border: '#C4CDD5'}}
41
+ * @param {{panelRadius?: number|string, menuRadius?: number|string, fieldRadius?: number|string, glassBlur?: number|string, glassSaturate?: number|string}} [options.cssTokens]
42
+ * los valores globales de Calcita como variables CSS (--calcita-panel-radius…, ver cssTokens.js): las esquinas de los
43
+ * paneles, los menús y los campos, y el desenfoque del vidrio. Se declaran en :root con el CssBaseline; un número va en
44
+ * px (glassSaturate en %). Sin la opción, cada estilo usa los suyos. También se pueden poner en CSS suelto
35
45
  * @param {object} [options.components] ajustes propios de componentes (se suman; en el mismo estilo ganan los del proyecto)
36
46
  * @param {object} [options.overrides] cualquier otra cosa de createTheme (breakpoints, spacing…)
37
47
  * @returns {object} el tema de MUI
38
48
  */
39
- export declare function createToolkitTheme({ colorSchemes, colorSchemeSelector, fontFamily, glass, look, bar, minimalTones, components, overrides, }?: {
49
+ export declare function createToolkitTheme({ colorSchemes, colorSchemeSelector, fontFamily, glass, look, bar, minimalTones, fields, cssTokens, components, overrides, }?: {
40
50
  colorSchemes?: {
41
51
  light?: object | boolean;
42
52
  dark?: object | boolean;
@@ -63,6 +73,28 @@ export declare function createToolkitTheme({ colorSchemes, colorSchemeSelector,
63
73
  floating?: string;
64
74
  };
65
75
  };
76
+ fields?: {
77
+ radius?: number;
78
+ light?: {
79
+ fill?: string;
80
+ hoverFill?: string;
81
+ border?: string;
82
+ hoverBorder?: string;
83
+ };
84
+ dark?: {
85
+ fill?: string;
86
+ hoverFill?: string;
87
+ border?: string;
88
+ hoverBorder?: string;
89
+ };
90
+ };
91
+ cssTokens?: {
92
+ panelRadius?: number | string;
93
+ menuRadius?: number | string;
94
+ fieldRadius?: number | string;
95
+ glassBlur?: number | string;
96
+ glassSaturate?: number | string;
97
+ };
66
98
  components?: object;
67
99
  overrides?: object;
68
100
  }): object;
@@ -0,0 +1,46 @@
1
+ /** Cada valor: su variable, el de siempre (respaldo) y la unidad para cuando el proyecto lo da en número. */
2
+ export declare const CSS_TOKENS: Readonly<{
3
+ panelRadius: Readonly<{
4
+ variable: "--calcita-panel-radius";
5
+ fallback: "20px";
6
+ unit: "px";
7
+ }>;
8
+ menuRadius: Readonly<{
9
+ variable: "--calcita-menu-radius";
10
+ fallback: "12px";
11
+ unit: "px";
12
+ }>;
13
+ fieldRadius: Readonly<{
14
+ variable: "--calcita-field-radius";
15
+ fallback: "12px";
16
+ unit: "px";
17
+ }>;
18
+ glassBlur: Readonly<{
19
+ variable: "--calcita-glass-blur";
20
+ fallback: "20px";
21
+ unit: "px";
22
+ }>;
23
+ glassSaturate: Readonly<{
24
+ variable: "--calcita-glass-saturate";
25
+ fallback: "180%";
26
+ unit: "%";
27
+ }>;
28
+ }>;
29
+ /**
30
+ * El valor para un estilo: la variable con su respaldo. Un estilo con su propio valor de siempre lo pasa (el minimalista
31
+ * tiene las tarjetas de 16 px).
32
+ *
33
+ * @param {keyof typeof CSS_TOKENS} key
34
+ * @param {string} [fallback] por omisión el de CSS_TOKENS
35
+ * @returns {string} p. ej. 'var(--calcita-panel-radius, 20px)'
36
+ */
37
+ export declare function cssTokenOf(key: keyof typeof CSS_TOKENS, fallback?: string): string;
38
+ /**
39
+ * Las declaraciones para :root (o para un contenedor) con los valores del proyecto: {panelRadius: 6} →
40
+ * {'--calcita-panel-radius': '6px'}. Un número lleva la unidad del valor (px o %); un texto va tal cual ('0.5rem').
41
+ * Lo que no es un valor conocido se ignora.
42
+ *
43
+ * @param {Partial<Record<keyof typeof CSS_TOKENS, number|string>>} [values]
44
+ * @returns {Record<string, string>}
45
+ */
46
+ export declare function cssTokenDeclarationsOf(values?: Partial<Record<keyof typeof CSS_TOKENS, number | string>>): Record<string, string>;
@@ -4,12 +4,15 @@ export declare const GLASS_OPACITY = 0.6;
4
4
  export declare const GLASS_PANEL_RADIUS_PIXELS = 20;
5
5
  /** Las esquinas de los menús y ventanitas: renglones de 8 px a 4 px del borde. */
6
6
  export declare const GLASS_MENU_RADIUS_PIXELS = 12;
7
+ export declare const PANEL_RADIUS: string;
8
+ export declare const MENU_RADIUS: string;
7
9
  /**
8
10
  * Lo que se separa de la orilla de la ventana lo que flota (la barra, el menú lateral, los cajones y la hoja de abajo):
9
11
  * Apple lo pide para que el contenido se asome por detrás («half sheets are inset from the edge of the display to allow
10
12
  * content to peek through from beneath them», Adopting Liquid Glass).
11
13
  */
12
14
  export declare const GLASS_INSET_PIXELS = 8;
15
+ export declare const GLASS_BLUR: string;
13
16
  /**
14
17
  * El lente de cada tamaño (ver lensRulesOf), medido en capturas de Chrome: el control chico (botón, chip) más claro y con
15
18
  * la orilla más marcada; el panel (barra, menú, diálogo) más grueso, porque lleva texto («Liquid Glass appears more opaque
@@ -179,16 +182,69 @@ export declare function glassDropOf(theme: object): object;
179
182
  * @returns {string|null} el relleno en #RRGGBB; null si el color no viene en hexadecimal
180
183
  */
181
184
  export declare function whiteLabelFillOf(rawColor: string): string | null;
185
+ /**
186
+ * Los tonos de los campos por omisión, por modo: fill (el relleno), hoverFill (con el cursor encima), border y hoverBorder
187
+ * (la orilla; transparente: el pozo de Apple no lleva). createToolkitTheme los pone en la paleta de cada modo
188
+ * (palette.field) y el proyecto los cambia con `fields` o con su paleta: blancos con borde, del tono de su marca…
189
+ */
190
+ export declare const FIELD_TONES: Readonly<{
191
+ light: Readonly<{
192
+ fill: string;
193
+ hoverFill: string;
194
+ border: "transparent";
195
+ hoverBorder: "transparent";
196
+ }>;
197
+ dark: Readonly<{
198
+ fill: string;
199
+ hoverFill: string;
200
+ border: "transparent";
201
+ hoverBorder: "transparent";
202
+ }>;
203
+ }>;
204
+ /**
205
+ * Los tonos de los campos del tema (palette.field, que llena createToolkitTheme; con sus variables CSS cambian solos con el
206
+ * modo, sin reglas de oscuro), o null si el tema no los trae (un createTheme de MUI sin Calcita).
207
+ *
208
+ * @param {object} theme
209
+ * @returns {{fill: string, hoverFill: string, border: string, hoverBorder: string}|null}
210
+ */
211
+ export declare function fieldPaletteOf(theme: object): {
212
+ fill: string;
213
+ hoverFill: string;
214
+ border: string;
215
+ hoverBorder: string;
216
+ } | null;
182
217
  /**
183
218
  * El «pozo» de un campo de texto dentro del contenido (una tarjeta, un formulario agrupado), como los de Apple: un relleno
184
219
  * parejo con esquinas de 12 px, del gris de relleno de Apple («tertiary fill»): tenue en claro y más claro que la tarjeta en
185
220
  * oscuro (con negro, en oscuro se perdía). Sin vidrio adentro de la tarjeta: ahí no tiene nada que dejar
186
221
  * ver. Con el cursor encima se marca apenas; antes el relleno salía solo con el cursor y en cuadro («hovers espantosos»).
222
+ * Los tonos y las esquinas los puede cambiar el proyecto (createToolkitTheme fields).
223
+ *
224
+ * @param {object} theme
225
+ * @param {{radius?: number}} [options] las esquinas del estilo que lo pide (el minimalista las tiene más chicas)
226
+ * @returns {object}
227
+ */
228
+ export declare function fieldWellStylesOf(theme: object, { radius }?: {
229
+ radius?: number;
230
+ }): object;
231
+ /**
232
+ * Los tonos de los campos como variables (--calcita-field-*) para un contenedor: el renglón de FormSection las pone en sí
233
+ * mismo y sus campos las leen (fieldWellFromVariablesOf). OJO, trampa pagada: el renglón le gana al tema con selectores
234
+ * largos («html body &&& .MuiOutlinedInput-root») y una regla de oscuro anidada ahí abajo nunca aplicaba (en oscuro el
235
+ * campo salía con el gris de claro). En el contenedor la regla de oscuro sí aplica, y los campos heredan la variable.
236
+ *
237
+ * @param {object} theme
238
+ * @returns {object}
239
+ */
240
+ export declare function fieldVariablesOf(theme: object): object;
241
+ /**
242
+ * El pozo de un campo leyendo las variables de su contenedor (fieldVariablesOf).
187
243
  *
188
244
  * @param {object} theme
189
245
  * @returns {object}
190
246
  */
191
- export declare function fieldWellStylesOf(theme: object): object;
247
+ export declare function fieldWellFromVariablesOf(theme: object): object;
192
248
  /**
193
249
  * Un campo de texto suelto sobre el lienzo (fuera de una tarjeta): una lámina de vidrio clara en claro y el gris de relleno
194
250
  * de Apple en oscuro, más claro que el fondo casi negro. Con «Reducir transparencia» se pinta sólido.
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Un componente con su lugar en el tema: theme.components[name].styleOverrides[parte con minúscula] se aplica después
3
+ * del estilo de Calcita (ownSx) y gana.
4
+ *
5
+ * @template {import('react').ElementType} C
6
+ * @param {string} name el nombre de la pieza en el tema (CalcitaMetricCard)
7
+ * @param {string} slot la parte, con mayúscula: Root, Title, Card…
8
+ * @param {C} [component] lo que se pinta (por omisión un div)
9
+ * @returns {import('react').ComponentType<any>}
10
+ */
11
+ export declare function piecePart<C extends import('react').ElementType>(name: string, slot: string, component?: C): import('react').ComponentType<any>;
12
+ /**
13
+ * Los props de la pieza con los defaultProps del tema del proyecto debajo: lo que llega en la pantalla gana.
14
+ *
15
+ * @template {object} P
16
+ * @param {P} props
17
+ * @param {string} name el nombre de la pieza en el tema
18
+ * @returns {P}
19
+ */
20
+ export declare function usePieceProps<P extends object>(props: P, name: string): P;
@@ -5,7 +5,7 @@
5
5
  * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)
6
6
  * @param {'small'|'medium'} [props.size]
7
7
  */
8
- export default function ActionsMenu({ label, actions, icon, size }: {
8
+ export default function ActionsMenu(props: {
9
9
  label: string;
10
10
  actions?: Array<{
11
11
  key: string;
@@ -25,7 +25,7 @@
25
25
  * virtualiza y vuelve a pintar sus celdas; el diálogo se perdía al elegir el formato). Ahí el menú solo avisa qué formato
26
26
  * se eligió y la pantalla abre SU confirmación (useConfirmAction) fuera de la tabla.
27
27
  */
28
- export default function DownloadMenu({ formats, download, label, downloadLabel, disabled, confirmation, onDownloaded, onFailed, onCanceled, variant, ariaLabel, onChooseFormat, icon: ButtonIcon, }: {
28
+ export default function DownloadMenu(props: {
29
29
  formats: string[];
30
30
  download: (format: string, transferOptions: {
31
31
  signal: AbortSignal;
@@ -22,7 +22,7 @@ export declare function selectionFloatsOnPhone(theme: object): boolean;
22
22
  * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {selection: {clear, actionsLabel, summaryLabel}}
23
23
  * @param {object} [props.sx] estilos del renglón
24
24
  */
25
- export default function SelectionActions({ countText, actions, onClear, phoneLayout, texts, sx }: {
25
+ export default function SelectionActions(props: {
26
26
  countText: string;
27
27
  actions?: Array<{
28
28
  key: string;
@@ -6,7 +6,7 @@
6
6
  * @param {string} [props.label] ya traducido; por defecto "Personalizado"
7
7
  * @param {object} [props.texts] los textos que cambian, con la forma de `table` en los textos del paquete
8
8
  */
9
- export default function DateRangeFilter({ from, to, onChange, label, texts }: {
9
+ export default function DateRangeFilter(props: {
10
10
  from?: string;
11
11
  to?: string;
12
12
  onChange: (range: {
@@ -9,7 +9,7 @@
9
9
  * @param {string} props.toLabel ya traducido
10
10
  * @param {(range: {from: string, to: string}) => void} props.onChange
11
11
  */
12
- export default function PeriodRangeSelector({ id, options, from, to, fromLabel, toLabel, onChange }: {
12
+ export default function PeriodRangeSelector(props: {
13
13
  id: string;
14
14
  options: Array<{
15
15
  value: string;
@@ -8,7 +8,7 @@
8
8
  * @param {import('react').ReactNode} [props.extra] al final de la tira (p. ej. un rango de fechas)
9
9
  * @param {object} [props.texts] los textos que cambian, con la forma de `table` en los textos del paquete
10
10
  */
11
- export default function QuickFilters({ value, onChange, options, caption, ariaLabel, extra, texts }: {
11
+ export default function QuickFilters(props: {
12
12
  value: string;
13
13
  onChange: (value: string) => void;
14
14
  options?: Array<{
@@ -11,14 +11,19 @@ export declare const SEGMENTED_CONTROL_SX: {
11
11
  letterSpacing: string;
12
12
  border: number;
13
13
  borderRadius: string;
14
+ m: number;
14
15
  px: number;
15
16
  py: number;
16
- m: string;
17
17
  fontWeight: number;
18
18
  textTransform: string;
19
19
  color: string;
20
20
  whiteSpace: string;
21
21
  };
22
+ '& .MuiToggleButton-root.MuiToggleButtonGroup-grouped': {
23
+ border: number;
24
+ borderRadius: string;
25
+ m: number;
26
+ };
22
27
  '& .MuiToggleButton-root.Mui-selected, & .MuiToggleButton-root.Mui-selected:hover': {
23
28
  bgcolor: string;
24
29
  color: string;
@@ -32,7 +37,7 @@ export declare const SEGMENTED_CONTROL_SX: {
32
37
  * @param {(value: string) => void} props.onChange
33
38
  * @param {string} props.ariaLabel ya traducido
34
39
  */
35
- export default function SegmentedControl({ options, value, onChange, ariaLabel }: {
40
+ export default function SegmentedControl(props: {
36
41
  options: Array<{
37
42
  value: string;
38
43
  label: string;
@@ -10,7 +10,7 @@
10
10
  * que decir. OJO: no envuelvas este componente en otro Tooltip, porque el suyo sigue ahí y se ven los dos encimados
11
11
  * @param {object} [props.sx] ajustes de estilo del Chip (solo variant="chip")
12
12
  */
13
- export default function StatusChip({ dictionary, value, variant, short, suffix, tooltip: customTooltip, sx }: {
13
+ export default function StatusChip(props: {
14
14
  dictionary: Record<string, object>;
15
15
  value: string | null | undefined;
16
16
  variant?: 'dot' | 'chip';
@@ -8,7 +8,7 @@
8
8
  * @param {() => void} [props.onDelete]
9
9
  * @param {object} [props.sx]
10
10
  */
11
- export default function Tag({ label, tooltip, color, variant, size, onDelete, sx, ...chipProps }: {
11
+ export default function Tag(props: {
12
12
  label: import('react').ReactNode;
13
13
  tooltip?: string;
14
14
  color?: string;
@@ -8,7 +8,7 @@
8
8
  * adentro hasta que se abre)
9
9
  * @param {import('react').ReactNode} props.children
10
10
  */
11
- export default function CollapsibleSection({ collapsedTitle, expandedTitle, hint, defaultExpanded, onExpandedChange, children }: {
11
+ export default function CollapsibleSection(props: {
12
12
  collapsedTitle: string;
13
13
  expandedTitle: string;
14
14
  hint?: string;
@@ -6,7 +6,7 @@
6
6
  * @param {import('react').ReactNode} props.children
7
7
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
8
8
  */
9
- export default function ContentDialog({ open, onClose, title, children, texts }: {
9
+ export default function ContentDialog(props: {
10
10
  open: boolean;
11
11
  onClose: () => void;
12
12
  title: string;
@@ -5,7 +5,7 @@
5
5
  * @param {'columns'|'stacked'} [props.layout]
6
6
  * @param {number} [props.labelWidth] ancho en px de la columna del dato (solo columns)
7
7
  */
8
- export default function DefinitionList({ entries, layout, labelWidth }: {
8
+ export default function DefinitionList(props: {
9
9
  entries: Array<{
10
10
  label: string;
11
11
  value: import('react').ReactNode;
@@ -6,7 +6,7 @@
6
6
  * @param {import('react').ReactNode} [props.actions] botones a la derecha
7
7
  * @param {string} [props.documentTitle] título de la pestaña si difiere del visible
8
8
  */
9
- export default function DetailHeader({ title, eyebrow, badges, actions, documentTitle }: {
9
+ export default function DetailHeader(props: {
10
10
  title: string;
11
11
  eyebrow?: string;
12
12
  badges?: import('react').ReactNode;
@@ -20,7 +20,7 @@ export declare const ERROR_PAGE_KIND: Readonly<{
20
20
  * @param {object} [props.texts] los textos que cambian, con la forma de `errorPage` en los textos del paquete:
21
21
  * {goHome: 'Volver al tablero', notFound: {title: '…'}}
22
22
  */
23
- export default function ErrorPage({ kind, title, text, homePath, onRetry, onGoHome, extraActions, actions, icon, children, texts, }: {
23
+ export default function ErrorPage(props: {
24
24
  kind: string;
25
25
  title?: string;
26
26
  text?: import('react').ReactNode;
@@ -4,7 +4,7 @@
4
4
  * @param {object|Function|Array} [props.sx] estilos propios: se suman y ganan
5
5
  * @param {import('react').ElementType} [props.component] por omisión 'div'
6
6
  */
7
- export default function GlassPanel({ children, sx, ...paperProps }: {
7
+ export default function GlassPanel(props: {
8
8
  children: import('react').ReactNode;
9
9
  sx?: object | Function | any[];
10
10
  component?: import('react').ElementType;
@@ -6,7 +6,7 @@
6
6
  * @param {import('react').ReactNode} [props.action] normalmente un <Button variant="contained" shape="pill">
7
7
  * @param {string} [props.documentTitle] título de la pestaña si difiere del visible
8
8
  */
9
- export default function PageHeader({ title, eyebrow, subtitle, action, documentTitle }: {
9
+ export default function PageHeader(props: {
10
10
  title: string;
11
11
  eyebrow?: string;
12
12
  subtitle?: import('react').ReactNode;
@@ -7,7 +7,7 @@
7
7
  * @param {string} [props.documentTitle] título de la pestaña si difiere del visible
8
8
  * @param {object} [props.texts] los textos que cambian, con la forma de `layout` en los textos del paquete
9
9
  */
10
- export default function PageHeading({ title, description, breadcrumbs, actions, documentTitle, texts }: {
10
+ export default function PageHeading(props: {
11
11
  title: string;
12
12
  description?: import('react').ReactNode;
13
13
  breadcrumbs?: Array<{
@@ -7,7 +7,7 @@
7
7
  * @param {string[]} [props.chips] sus perfiles o etiquetas, ya traducidos
8
8
  * @param {import('react').ReactNode} [props.actions] los botones de la derecha
9
9
  */
10
- export default function ProfileHeader({ name, email, subtitle, avatarUrl, chips, actions }: {
10
+ export default function ProfileHeader(props: {
11
11
  name: string;
12
12
  email?: string;
13
13
  subtitle?: string;
@@ -21,7 +21,7 @@ export declare const scrollableRow: {
21
21
  * @param {boolean} [props.fadeEdges]
22
22
  * @param {import('react').Ref<HTMLElement>} [props.ref]
23
23
  */
24
- export default function ScrollableRow({ children, gap, py, sx, enableDragScroll, enableWheelToX, fadeEdges, ref, ...boxProps }: {
24
+ export default function ScrollableRow(props: {
25
25
  children: import('react').ReactNode;
26
26
  gap?: number;
27
27
  py?: number;
@@ -4,7 +4,7 @@
4
4
  * @param {import('react').ReactNode} [props.action] botón o liga a la derecha del título
5
5
  * @param {import('react').ReactNode} props.children
6
6
  */
7
- export default function SectionCard({ title, action, children }: {
7
+ export default function SectionCard(props: {
8
8
  title: string;
9
9
  action?: import('react').ReactNode;
10
10
  children: import('react').ReactNode;
@@ -8,7 +8,7 @@
8
8
  * @param {(view: 'chart'|'table') => void} [props.onViewChange] la persona cambió a la tabla o a la gráfica
9
9
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
10
10
  */
11
- export default function BarList({ items, onSelect, emptyLabel, tone, texts, defaultView, onViewChange }: {
11
+ export default function BarList(props: {
12
12
  items: Array<{
13
13
  key: string;
14
14
  label: string;
@@ -14,7 +14,7 @@
14
14
  * @param {(view: 'chart'|'table') => void} [props.onViewChange] la persona cambió a la tabla o a la gráfica
15
15
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
16
16
  */
17
- export default function CalendarHeatmap({ startsOn, endsOn, days, ariaLabel, valueLabel, describeValue, summary, emptyLabel, tone, texts, defaultView, onViewChange }: {
17
+ export default function CalendarHeatmap(props: {
18
18
  startsOn: string;
19
19
  endsOn: string;
20
20
  days: Array<{
@@ -2,7 +2,7 @@
2
2
  * @param {{active?: boolean, payload?: Array<{payload: any}>, render: (item: any) => import('react').ReactNode}} props
3
3
  * active y payload los pone recharts; render recibe el renglón de data del punto o la columna
4
4
  */
5
- export default function ChartTooltip({ active, payload, render }: {
5
+ export default function ChartTooltip(props: {
6
6
  active?: boolean;
7
7
  payload?: Array<{
8
8
  payload: any;
@@ -21,7 +21,7 @@
21
21
  * @param {(view: 'chart'|'table') => void} [props.onViewChange] la persona cambió a la tabla o a la gráfica
22
22
  * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {charts: {viewAsTable, viewAsChart, legend}}
23
23
  */
24
- export default function ColumnChart({ data, periodLabel, valueLabel, series, ariaLabel, emptyLabel, height, tone, onSelect, formatValue: formatValueProp, referenceLine, renderTooltip, texts, defaultView, onViewChange, }: {
24
+ export default function ColumnChart(props: {
25
25
  data: Array<Record<string, any>>;
26
26
  periodLabel: string;
27
27
  valueLabel?: string;
@@ -16,7 +16,7 @@
16
16
  * @param {(view: 'chart'|'table') => void} [props.onViewChange] la persona cambió a la tabla o a la gráfica
17
17
  * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {charts: {viewAsTable, viewAsChart, legend}}
18
18
  */
19
- export default function LineChart({ data, series, periodLabel, ariaLabel, emptyLabel, height, formatValue: formatValueProp, referenceLine, onSelect, renderTooltip, texts, defaultView, onViewChange, }: {
19
+ export default function LineChart(props: {
20
20
  data: Array<Record<string, any>>;
21
21
  series: Array<{
22
22
  key: string;
@@ -19,7 +19,7 @@ export declare const TREND_DIRECTION: Readonly<{
19
19
  * @param {() => void} [props.onClick] la tarjeta entera como botón, cuando no lleva a otra pantalla (to)
20
20
  * @param {object} [props.texts] los textos que cambian, con la forma de `metricCard`: {trend: {up: 'subió'}}
21
21
  */
22
- export default function MetricCard({ label, value, caption, tone, valueColor, isLoading, to, trend, icon, children, onClick, texts, }: {
22
+ export default function MetricCard(props: {
23
23
  label: string;
24
24
  value: import('react').ReactNode;
25
25
  caption?: import('react').ReactNode;
@@ -7,7 +7,7 @@ export declare const CHART_VIEW: Readonly<{
7
7
  * @param {{asTable: boolean, onToggle: () => void, texts?: object}} props texts: los textos que cambian, con la forma de
8
8
  * `common` ({charts: {viewAsTable, viewAsChart}})
9
9
  */
10
- export default function TableToggle({ asTable, onToggle, texts }: {
10
+ export default function TableToggle(props: {
11
11
  asTable: boolean;
12
12
  onToggle: () => void;
13
13
  texts?: object;
@@ -5,7 +5,7 @@
5
5
  * @param {(mode: 'light'|'dark'|'system') => void} [props.onChange] la persona cambió el modo (para guardarlo en su servidor)
6
6
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
7
7
  */
8
- export default function ColorSchemeToggle({ size, inverted, onChange, texts }?: {
8
+ export default function ColorSchemeToggle(props?: {
9
9
  size?: 'small' | 'medium';
10
10
  inverted?: boolean;
11
11
  onChange?: (mode: 'light' | 'dark' | 'system') => void;
@@ -4,7 +4,7 @@
4
4
  * @param {(level: string) => void} [props.onChange] la persona eligió otro tamaño (FONT_SIZE_LEVELS; para guardarlo en su servidor)
5
5
  * @param {object} [props.texts] los textos que cambian, con la forma de `layout` en los textos del paquete
6
6
  */
7
- export default function FontSizeToggle({ size, onChange, texts }?: {
7
+ export default function FontSizeToggle(props?: {
8
8
  size?: 'small' | 'medium';
9
9
  onChange?: (level: string) => void;
10
10
  texts?: object;
@@ -6,7 +6,7 @@ export declare const LANGUAGES: readonly ("en" | "es")[];
6
6
  * @param {(language: string) => void} [props.onChange] además de avisar a ToolkitProvider, cada que se elige un idioma
7
7
  * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {language: {switchToNamed, choose}}
8
8
  */
9
- export default function LanguageToggle({ inverted, onChange, texts }?: {
9
+ export default function LanguageToggle(props?: {
10
10
  inverted?: boolean;
11
11
  onChange?: (language: string) => void;
12
12
  texts?: object;
@@ -3,7 +3,7 @@
3
3
  * @param {Array<{label: string, to?: string}>} props.items textos ya traducidos
4
4
  * @param {object} [props.texts] los textos que cambian, con la forma de `layout` en los textos del paquete
5
5
  */
6
- export default function PageBreadcrumbs({ items, texts }: {
6
+ export default function PageBreadcrumbs(props: {
7
7
  items: Array<{
8
8
  label: string;
9
9
  to?: string;
@@ -19,7 +19,7 @@
19
19
  * @param {(groupKey: string, isExpanded: boolean) => void} [props.onGroupToggle] la persona abrió o plegó un grupo (por ejemplo,
20
20
  * para pedir sus eventos hasta que se abre)
21
21
  */
22
- export default function GroupedTimeline({ groups, onGroupToggle }: {
22
+ export default function GroupedTimeline(props: {
23
23
  groups: {
24
24
  key: string;
25
25
  title?: string;
@@ -15,7 +15,7 @@
15
15
  * @param {object} [props.sx] ajustes del recuadro
16
16
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
17
17
  */
18
- export default function FileDropzone({ value, onChange, accept, maxSize, hint, buttonLabel, disabled, busy, busyModal, onReject, actions, children, sx, texts, }: {
18
+ export default function FileDropzone(props: {
19
19
  value?: File | null;
20
20
  onChange: (file: File | null) => void;
21
21
  accept?: string | string[];
@@ -8,7 +8,12 @@ import Menu from "@mui/material/Menu";
8
8
  import MenuItem from "@mui/material/MenuItem";
9
9
  import Tooltip from "@mui/material/Tooltip";
10
10
  import MoreHorizRoundedIcon from "@mui/icons-material/MoreHorizRounded";
11
- function ActionsMenu({ label, actions, icon, size = "small" }) {
11
+ import { piecePart, usePieceProps } from "../../theme/themePieces.js";
12
+ const THEME_NAME = "CalcitaActionsMenu";
13
+ const ActionsItem = piecePart(THEME_NAME, "Item", MenuItem);
14
+ const ActionsItemIcon = piecePart(THEME_NAME, "ItemIcon", ListItemIcon);
15
+ function ActionsMenu(props) {
16
+ const { label, actions, icon, size = "small" } = usePieceProps(props, THEME_NAME);
12
17
  const [anchor, setAnchor] = useState(null);
13
18
  if (!actions?.length) {
14
19
  return null;
@@ -28,16 +33,16 @@ function ActionsMenu({ label, actions, icon, size = "small" }) {
28
33
  }
29
34
  ) }),
30
35
  /* @__PURE__ */ jsx(Menu, { anchorEl: anchor, open: Boolean(anchor), onClose: () => setAnchor(null), onClick: (event) => event.stopPropagation(), children: actions.map((action) => /* @__PURE__ */ jsxs(
31
- MenuItem,
36
+ ActionsItem,
32
37
  {
33
38
  disabled: action.disabled,
34
39
  onClick: () => {
35
40
  setAnchor(null);
36
41
  action.onClick();
37
42
  },
38
- sx: action.color ? { color: `${action.color}.main` } : void 0,
43
+ ownSx: action.color ? { color: `${action.color}.main` } : void 0,
39
44
  children: [
40
- action.icon && /* @__PURE__ */ jsx(ListItemIcon, { sx: action.color ? { color: "inherit" } : void 0, children: action.icon }),
45
+ action.icon && /* @__PURE__ */ jsx(ActionsItemIcon, { ownSx: action.color ? { color: "inherit" } : void 0, children: action.icon }),
41
46
  /* @__PURE__ */ jsx(ListItemText, { children: action.label })
42
47
  ]
43
48
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsMenu.js","sources":["../../../src/ui/actions/ActionsMenu.jsx"],"sourcesContent":["// Un botón «⋯» con un menú de acciones: el de cada tarjeta del tablero, el de cada columna, el de cada mensaje de la bandeja.\n// Las acciones las da la pantalla (label ya traducido, ícono, color, apagada); sin acciones no se pinta nada.\n//\n// <ActionsMenu label=\"Acciones de «Junta de cierre»\"\n// actions={[{key: 'delete', label: 'Borrar', icon: <DeleteOutlineIcon fontSize=\"small\" />, color: 'error', onClick: remove}]} />\n//\n// El clic no llega a lo de abajo: no levanta una tarjeta que se arrastra ni abre el renglón donde vive.\n//\n// Genérico del paquete: function (regla de la casa).\nimport {useState} from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Tooltip from '@mui/material/Tooltip';\nimport MoreHorizRoundedIcon from '@mui/icons-material/MoreHorizRounded';\n\n/**\n * @param {object} props\n * @param {string} props.label el nombre del botón (lector de pantalla y su tooltip), ya traducido\n * @param {Array<{key: string, label: string, icon?: import('react').ReactNode, color?: string, disabled?: boolean, onClick: () => void}>} [props.actions]\n * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)\n * @param {'small'|'medium'} [props.size]\n */\nexport default function ActionsMenu({label, actions, icon, size = 'small'}) {\n const [anchor, setAnchor] = useState(null);\n if (!actions?.length) {\n return null;\n }\n return (\n <>\n <Tooltip title={label}>\n <IconButton size={size} aria-label={label} aria-haspopup=\"menu\"\n onClick={(event) => {\n event.stopPropagation();\n setAnchor(event.currentTarget);\n }}>\n {icon ?? <MoreHorizRoundedIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n <Menu anchorEl={anchor} open={Boolean(anchor)} onClose={() => setAnchor(null)} onClick={(event) => event.stopPropagation()}>\n {actions.map((action) => (\n <MenuItem key={action.key} disabled={action.disabled}\n onClick={() => {\n setAnchor(null);\n action.onClick();\n }}\n sx={action.color ? {color: `${action.color}.main`} : undefined}>\n {action.icon && <ListItemIcon sx={action.color ? {color: 'inherit'} : undefined}>{action.icon}</ListItemIcon>}\n <ListItemText>{action.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAyBA,SAAwB,YAAY,EAAC,OAAO,SAAS,MAAM,OAAO,WAAU;AACxE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,IAAI;AACzC,MAAI,CAAC,SAAS,QAAQ;AAClB,WAAO;AAAA,EACX;AACA,SACI,qBAAA,UAAA,EACI,UAAA;AAAA,IAAA,oBAAC,SAAA,EAAQ,OAAO,OACZ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QAAW;AAAA,QAAY,cAAY;AAAA,QAAO,iBAAc;AAAA,QAC7C,SAAS,CAAC,UAAU;AAChB,gBAAM,gBAAA;AACN,oBAAU,MAAM,aAAa;AAAA,QACjC;AAAA,QACP,UAAA,QAAQ,oBAAC,sBAAA,EAAqB,UAAS,QAAA,CAAQ;AAAA,MAAA;AAAA,IAAA,GAExD;AAAA,IACA,oBAAC,QAAK,UAAU,QAAQ,MAAM,QAAQ,MAAM,GAAG,SAAS,MAAM,UAAU,IAAI,GAAG,SAAS,CAAC,UAAU,MAAM,mBACpG,UAAA,QAAQ,IAAI,CAAC,WACV;AAAA,MAAC;AAAA,MAAA;AAAA,QAA0B,UAAU,OAAO;AAAA,QAClC,SAAS,MAAM;AACX,oBAAU,IAAI;AACd,iBAAO,QAAA;AAAA,QACX;AAAA,QACA,IAAI,OAAO,QAAQ,EAAC,OAAO,GAAG,OAAO,KAAK,QAAA,IAAW;AAAA,QAC1D,UAAA;AAAA,UAAA,OAAO,QAAQ,oBAAC,cAAA,EAAa,IAAI,OAAO,QAAQ,EAAC,OAAO,UAAA,IAAa,QAAY,UAAA,OAAO,MAAK;AAAA,UAC9F,oBAAC,cAAA,EAAc,UAAA,OAAO,MAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAPjB,OAAO;AAAA,IAAA,CASzB,EAAA,CACL;AAAA,EAAA,GACJ;AAER;"}
1
+ {"version":3,"file":"ActionsMenu.js","sources":["../../../src/ui/actions/ActionsMenu.jsx"],"sourcesContent":["// Un botón «⋯» con un menú de acciones: el de cada tarjeta del tablero, el de cada columna, el de cada mensaje de la bandeja.\n// Las acciones las da la pantalla (label ya traducido, ícono, color, apagada); sin acciones no se pinta nada.\n//\n// <ActionsMenu label=\"Acciones de «Junta de cierre»\"\n// actions={[{key: 'delete', label: 'Borrar', icon: <DeleteOutlineIcon fontSize=\"small\" />, color: 'error', onClick: remove}]} />\n//\n// El clic no llega a lo de abajo: no levanta una tarjeta que se arrastra ni abre el renglón donde vive.\n//\n// Se cambia desde el tema del proyecto, como las piezas de MUI: components.CalcitaActionsMenu con defaultProps y\n// styleOverrides de sus partes: item, itemIcon.\n//\n// Genérico del paquete: function (regla de la casa).\nimport {useState} from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Tooltip from '@mui/material/Tooltip';\nimport MoreHorizRoundedIcon from '@mui/icons-material/MoreHorizRounded';\nimport {piecePart, usePieceProps} from '@/theme/themePieces.js';\n\n// el nombre de la pieza en el tema y sus partes (theme.components.CalcitaActionsMenu)\nconst THEME_NAME = 'CalcitaActionsMenu';\nconst ActionsItem = piecePart(THEME_NAME, 'Item', MenuItem);\nconst ActionsItemIcon = piecePart(THEME_NAME, 'ItemIcon', ListItemIcon);\n\n/**\n * @param {object} props\n * @param {string} props.label el nombre del botón (lector de pantalla y su tooltip), ya traducido\n * @param {Array<{key: string, label: string, icon?: import('react').ReactNode, color?: string, disabled?: boolean, onClick: () => void}>} [props.actions]\n * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)\n * @param {'small'|'medium'} [props.size]\n */\nexport default function ActionsMenu(props) {\n // lo que el proyecto puso en su tema (components.CalcitaActionsMenu.defaultProps) y encima lo que llega aquí\n const {label, actions, icon, size = 'small'} = usePieceProps(props, THEME_NAME);\n const [anchor, setAnchor] = useState(null);\n if (!actions?.length) {\n return null;\n }\n return (\n <>\n <Tooltip title={label}>\n <IconButton size={size} aria-label={label} aria-haspopup=\"menu\"\n onClick={(event) => {\n event.stopPropagation();\n setAnchor(event.currentTarget);\n }}>\n {icon ?? <MoreHorizRoundedIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n <Menu anchorEl={anchor} open={Boolean(anchor)} onClose={() => setAnchor(null)} onClick={(event) => event.stopPropagation()}>\n {actions.map((action) => (\n <ActionsItem key={action.key} disabled={action.disabled}\n onClick={() => {\n setAnchor(null);\n action.onClick();\n }}\n ownSx={action.color ? {color: `${action.color}.main`} : undefined}>\n {action.icon && <ActionsItemIcon ownSx={action.color ? {color: 'inherit'} : undefined}>{action.icon}</ActionsItemIcon>}\n <ListItemText>{action.label}</ListItemText>\n </ActionsItem>\n ))}\n </Menu>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAuBA,MAAM,aAAa;AACnB,MAAM,cAAc,UAAU,YAAY,QAAQ,QAAQ;AAC1D,MAAM,kBAAkB,UAAU,YAAY,YAAY,YAAY;AAStE,SAAwB,YAAY,OAAO;AAEvC,QAAM,EAAC,OAAO,SAAS,MAAM,OAAO,YAAW,cAAc,OAAO,UAAU;AAC9E,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,IAAI;AACzC,MAAI,CAAC,SAAS,QAAQ;AAClB,WAAO;AAAA,EACX;AACA,SACI,qBAAA,UAAA,EACI,UAAA;AAAA,IAAA,oBAAC,SAAA,EAAQ,OAAO,OACZ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QAAW;AAAA,QAAY,cAAY;AAAA,QAAO,iBAAc;AAAA,QAC7C,SAAS,CAAC,UAAU;AAChB,gBAAM,gBAAA;AACN,oBAAU,MAAM,aAAa;AAAA,QACjC;AAAA,QACP,UAAA,QAAQ,oBAAC,sBAAA,EAAqB,UAAS,QAAA,CAAQ;AAAA,MAAA;AAAA,IAAA,GAExD;AAAA,IACA,oBAAC,QAAK,UAAU,QAAQ,MAAM,QAAQ,MAAM,GAAG,SAAS,MAAM,UAAU,IAAI,GAAG,SAAS,CAAC,UAAU,MAAM,mBACpG,UAAA,QAAQ,IAAI,CAAC,WACV;AAAA,MAAC;AAAA,MAAA;AAAA,QAA6B,UAAU,OAAO;AAAA,QACrC,SAAS,MAAM;AACX,oBAAU,IAAI;AACd,iBAAO,QAAA;AAAA,QACX;AAAA,QACA,OAAO,OAAO,QAAQ,EAAC,OAAO,GAAG,OAAO,KAAK,QAAA,IAAW;AAAA,QAC7D,UAAA;AAAA,UAAA,OAAO,QAAQ,oBAAC,iBAAA,EAAgB,OAAO,OAAO,QAAQ,EAAC,OAAO,UAAA,IAAa,QAAY,UAAA,OAAO,MAAK;AAAA,UACpG,oBAAC,cAAA,EAAc,UAAA,OAAO,MAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAPd,OAAO;AAAA,IAAA,CAS5B,EAAA,CACL;AAAA,EAAA,GACJ;AAER;"}