@sfperusacdev/sf-ui 0.2.9 → 0.3.1

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 (300) hide show
  1. package/dist/sf-ui.css +1 -1
  2. package/dist/sf-ui.js +5607 -2932
  3. package/dist/sf-ui.js.map +1 -1
  4. package/dist/sf-ui.umd.cjs +7 -7
  5. package/dist/sf-ui.umd.cjs.map +1 -1
  6. package/dist/theme/dark.css +13 -0
  7. package/dist/theme/densidad.css +291 -0
  8. package/dist/theme/neon.css +185 -0
  9. package/dist/theme/sf-tokens.css +18 -0
  10. package/dist/theme/temas.css +229 -0
  11. package/dist/types/src/components/advanced-inputs/CodeEditor.d.ts +1 -1
  12. package/dist/types/src/components/advanced-inputs/MapGeocoderBar.d.ts +1 -1
  13. package/dist/types/src/components/advanced-inputs/MapPicker.d.ts +1 -1
  14. package/dist/types/src/components/advanced-inputs/MapPickerMap.d.ts +1 -1
  15. package/dist/types/src/components/advanced-inputs/PhotoInput.d.ts +1 -1
  16. package/dist/types/src/components/advanced-inputs/RichTextEditor.d.ts +1 -1
  17. package/dist/types/src/components/advanced-inputs/SignaturePad.d.ts +1 -1
  18. package/dist/types/src/components/buttons/ActionButton.d.ts +1 -1
  19. package/dist/types/src/components/buttons/Button.d.ts +1 -1
  20. package/dist/types/src/components/buttons/ButtonGroup.d.ts +1 -1
  21. package/dist/types/src/components/buttons/FormActions.d.ts +1 -1
  22. package/dist/types/src/components/buttons/RowActions.d.ts +1 -1
  23. package/dist/types/src/components/buttons/ToolbarButton.d.ts +1 -1
  24. package/dist/types/src/components/cards/Badge.d.ts +7 -1
  25. package/dist/types/src/components/cards/EntityCard.d.ts +2 -2
  26. package/dist/types/src/components/cards/KPICard.d.ts +2 -2
  27. package/dist/types/src/components/cards/MetricBar.caracterizacion.test.d.ts +1 -0
  28. package/dist/types/src/components/cards/MetricBar.d.ts +5 -3
  29. package/dist/types/src/components/cards/MetricBar.disposiciones.test.d.ts +1 -0
  30. package/dist/types/src/components/cards/ModuleCard.d.ts +2 -2
  31. package/dist/types/src/components/cards/ProfileCard.d.ts +27 -0
  32. package/dist/types/src/components/cards/ProfileCard.test.d.ts +1 -0
  33. package/dist/types/src/components/cards/QuickActionTile.d.ts +2 -2
  34. package/dist/types/src/components/cards/QuoteCard.d.ts +11 -0
  35. package/dist/types/src/components/cards/QuoteCard.test.d.ts +1 -0
  36. package/dist/types/src/components/cards/RecommendationCard.d.ts +1 -1
  37. package/dist/types/src/components/cards/SplitBar.d.ts +1 -1
  38. package/dist/types/src/components/cards/index.d.ts +6 -2
  39. package/dist/types/src/components/cards/types.d.ts +19 -0
  40. package/dist/types/src/components/charts/Chart.colores.test.d.ts +1 -0
  41. package/dist/types/src/components/charts/Chart.d.ts +1 -1
  42. package/dist/types/src/components/charts/ChartLegend.caracterizacion.test.d.ts +1 -0
  43. package/dist/types/src/components/charts/ChartLegend.d.ts +22 -1
  44. package/dist/types/src/components/charts/DeviationBand.d.ts +1 -1
  45. package/dist/types/src/components/charts/DiagnosticRadar.d.ts +1 -1
  46. package/dist/types/src/components/charts/Sparkline.d.ts +1 -1
  47. package/dist/types/src/components/charts/chartUtils.d.ts +6 -0
  48. package/dist/types/src/components/charts/index.d.ts +2 -2
  49. package/dist/types/src/components/charts/types.d.ts +5 -0
  50. package/dist/types/src/components/dashboard/AlertSummaryList.d.ts +1 -1
  51. package/dist/types/src/components/dashboard/Calendar.d.ts +1 -1
  52. package/dist/types/src/components/dashboard/CardNote.d.ts +1 -1
  53. package/dist/types/src/components/dashboard/ComparisonTable.d.ts +1 -1
  54. package/dist/types/src/components/dashboard/DashboardBoard.d.ts +2 -2
  55. package/dist/types/src/components/dashboard/DashboardCard.d.ts +5 -5
  56. package/dist/types/src/components/dashboard/DashboardPageFrame.d.ts +1 -1
  57. package/dist/types/src/components/dashboard/DashboardPlaceholder.d.ts +1 -1
  58. package/dist/types/src/components/dashboard/DetailPanel.d.ts +1 -1
  59. package/dist/types/src/components/dashboard/DetailSection.d.ts +1 -1
  60. package/dist/types/src/components/dashboard/DetailSidePanel.d.ts +1 -1
  61. package/dist/types/src/components/dashboard/DonutBreakdown.d.ts +1 -1
  62. package/dist/types/src/components/dashboard/DonutGauge.caracterizacion.test.d.ts +1 -0
  63. package/dist/types/src/components/dashboard/DonutGauge.d.ts +6 -2
  64. package/dist/types/src/components/dashboard/DonutGauge.degradado.test.d.ts +1 -0
  65. package/dist/types/src/components/dashboard/DrilldownCards.d.ts +3 -3
  66. package/dist/types/src/components/dashboard/EventLog.d.ts +3 -3
  67. package/dist/types/src/components/dashboard/EvidenceFootnote.d.ts +1 -1
  68. package/dist/types/src/components/dashboard/MetricTile.d.ts +24 -0
  69. package/dist/types/src/components/dashboard/MetricTile.test.d.ts +1 -0
  70. package/dist/types/src/components/dashboard/Seleccion.test.d.ts +1 -0
  71. package/dist/types/src/components/dashboard/StageFlow.caracterizacion.test.d.ts +1 -0
  72. package/dist/types/src/components/dashboard/StageFlow.d.ts +43 -0
  73. package/dist/types/src/components/dashboard/StageFlow.test.d.ts +1 -0
  74. package/dist/types/src/components/dashboard/StatCard.d.ts +1 -1
  75. package/dist/types/src/components/dashboard/StateChain.d.ts +28 -0
  76. package/dist/types/src/components/dashboard/StateChain.test.d.ts +1 -0
  77. package/dist/types/src/components/dashboard/StateChain.vertical.test.d.ts +1 -0
  78. package/dist/types/src/components/dashboard/Stepper.caracterizacion.test.d.ts +1 -0
  79. package/dist/types/src/components/dashboard/Stepper.d.ts +3 -1
  80. package/dist/types/src/components/dashboard/Stepper.icono.test.d.ts +1 -0
  81. package/dist/types/src/components/dashboard/TramoCard.d.ts +1 -1
  82. package/dist/types/src/components/dashboard/index.d.ts +6 -0
  83. package/dist/types/src/components/dashboard/types.d.ts +4 -0
  84. package/dist/types/src/components/display/AuditTimeline.cadena.test.d.ts +1 -0
  85. package/dist/types/src/components/display/AuditTimeline.caracterizacion.test.d.ts +1 -0
  86. package/dist/types/src/components/display/AuditTimeline.d.ts +7 -1
  87. package/dist/types/src/components/display/Avatar.d.ts +2 -2
  88. package/dist/types/src/components/display/Carousel.d.ts +1 -1
  89. package/dist/types/src/components/display/CheckList.d.ts +19 -0
  90. package/dist/types/src/components/display/CheckList.test.d.ts +1 -0
  91. package/dist/types/src/components/display/LiveChip.d.ts +1 -1
  92. package/dist/types/src/components/display/LiveStatusBar.d.ts +1 -1
  93. package/dist/types/src/components/display/MediaGallery.d.ts +41 -0
  94. package/dist/types/src/components/display/MediaGallery.test.d.ts +1 -0
  95. package/dist/types/src/components/display/MediaPanel.d.ts +4 -1
  96. package/dist/types/src/components/display/PassengerBoardCard.d.ts +1 -1
  97. package/dist/types/src/components/display/RecordList.caracterizacion.test.d.ts +1 -0
  98. package/dist/types/src/components/display/RecordList.compacta.test.d.ts +1 -0
  99. package/dist/types/src/components/display/RecordList.d.ts +15 -2
  100. package/dist/types/src/components/display/Timeline.caracterizacion.test.d.ts +1 -0
  101. package/dist/types/src/components/display/Timeline.columnas.test.d.ts +1 -0
  102. package/dist/types/src/components/display/Timeline.d.ts +22 -1
  103. package/dist/types/src/components/display/Timeline.horizontal.test.d.ts +1 -0
  104. package/dist/types/src/components/display/index.d.ts +8 -4
  105. package/dist/types/src/components/display/mediaGalleryFoco.d.ts +1 -0
  106. package/dist/types/src/components/display/mediaGalleryFoco.test.d.ts +1 -0
  107. package/dist/types/src/components/document-inputs/CurrencyInput.d.ts +1 -1
  108. package/dist/types/src/components/document-inputs/DniInput.d.ts +1 -1
  109. package/dist/types/src/components/document-inputs/OtpInput.d.ts +1 -1
  110. package/dist/types/src/components/document-inputs/PhoneInput.d.ts +1 -1
  111. package/dist/types/src/components/document-inputs/RucInput.d.ts +1 -1
  112. package/dist/types/src/components/feedback/AccessDenied.d.ts +1 -1
  113. package/dist/types/src/components/feedback/Alert.d.ts +1 -1
  114. package/dist/types/src/components/feedback/EmptyState.d.ts +1 -1
  115. package/dist/types/src/components/feedback/ErrorView.d.ts +1 -1
  116. package/dist/types/src/components/feedback/LoadingView.d.ts +1 -1
  117. package/dist/types/src/components/feedback/RetryBlock.d.ts +1 -1
  118. package/dist/types/src/components/feedback/Skeleton.d.ts +1 -1
  119. package/dist/types/src/components/feedback/Spinner.d.ts +1 -1
  120. package/dist/types/src/components/feedback/Toast.d.ts +1 -1
  121. package/dist/types/src/components/icons/AppsGridIcon.d.ts +1 -1
  122. package/dist/types/src/components/icons/SyncIcon.d.ts +1 -1
  123. package/dist/types/src/components/inputs/AsyncCardSelect.d.ts +1 -1
  124. package/dist/types/src/components/inputs/AsyncSearchSelect.d.ts +1 -1
  125. package/dist/types/src/components/inputs/AsyncSearchTableSelect.d.ts +1 -1
  126. package/dist/types/src/components/inputs/BooleanCheckbox.d.ts +1 -1
  127. package/dist/types/src/components/inputs/CardSelect.d.ts +1 -1
  128. package/dist/types/src/components/inputs/Checkbox.d.ts +1 -1
  129. package/dist/types/src/components/inputs/CheckboxGroup.d.ts +1 -1
  130. package/dist/types/src/components/inputs/DateInput.d.ts +1 -1
  131. package/dist/types/src/components/inputs/DatePicker.d.ts +1 -1
  132. package/dist/types/src/components/inputs/DisplayField.d.ts +1 -1
  133. package/dist/types/src/components/inputs/FieldLeadingIcon.d.ts +1 -1
  134. package/dist/types/src/components/inputs/FileInput.d.ts +1 -1
  135. package/dist/types/src/components/inputs/NumberInput.d.ts +1 -1
  136. package/dist/types/src/components/inputs/PasswordInput.d.ts +1 -1
  137. package/dist/types/src/components/inputs/RadioGroup.d.ts +1 -1
  138. package/dist/types/src/components/inputs/SearchSelect.d.ts +1 -1
  139. package/dist/types/src/components/inputs/SearchTableSelect.bloqueadas.test.d.ts +1 -0
  140. package/dist/types/src/components/inputs/SearchTableSelect.caracterizacion.test.d.ts +1 -0
  141. package/dist/types/src/components/inputs/SearchTableSelect.d.ts +19 -1
  142. package/dist/types/src/components/inputs/SearchTableSelect.seleccionPagina.test.d.ts +1 -0
  143. package/dist/types/src/components/inputs/SearchTableSelect.soloSeleccionados.test.d.ts +1 -0
  144. package/dist/types/src/components/inputs/Select.d.ts +1 -1
  145. package/dist/types/src/components/inputs/SmartDateInput.d.ts +1 -1
  146. package/dist/types/src/components/inputs/SmartSelect.d.ts +1 -1
  147. package/dist/types/src/components/inputs/TextArea.d.ts +1 -1
  148. package/dist/types/src/components/inputs/Toggle.d.ts +1 -1
  149. package/dist/types/src/components/inputs/ToggleCard.d.ts +1 -1
  150. package/dist/types/src/components/inputs/Transfer.d.ts +1 -1
  151. package/dist/types/src/components/inputs/TreeSelect.d.ts +1 -1
  152. package/dist/types/src/components/inputs/YesNoSelect.d.ts +1 -1
  153. package/dist/types/src/components/inputs/booleanControls.test.d.ts +1 -0
  154. package/dist/types/src/components/inputs/useBooleanField.d.ts +10 -0
  155. package/dist/types/src/components/interactive-inputs/AllocationBar.d.ts +1 -1
  156. package/dist/types/src/components/interactive-inputs/CardRadioGroup.d.ts +1 -1
  157. package/dist/types/src/components/interactive-inputs/ColorInput.d.ts +1 -1
  158. package/dist/types/src/components/interactive-inputs/KeyValueInput.d.ts +1 -1
  159. package/dist/types/src/components/interactive-inputs/NumberStepper.d.ts +1 -1
  160. package/dist/types/src/components/interactive-inputs/ProgressBar.d.ts +1 -1
  161. package/dist/types/src/components/interactive-inputs/ProgressBarReadonly.d.ts +1 -1
  162. package/dist/types/src/components/interactive-inputs/RangeSliderInput.d.ts +1 -1
  163. package/dist/types/src/components/interactive-inputs/RatingInput.d.ts +1 -1
  164. package/dist/types/src/components/interactive-inputs/SemanticSlider.d.ts +1 -1
  165. package/dist/types/src/components/interactive-inputs/SliderInput.d.ts +1 -1
  166. package/dist/types/src/components/interactive-inputs/SortableList.d.ts +1 -1
  167. package/dist/types/src/components/interactive-inputs/TagsInput.d.ts +1 -1
  168. package/dist/types/src/components/interactive-inputs/TemporalScrub.d.ts +1 -1
  169. package/dist/types/src/components/layout/Accordion.d.ts +1 -1
  170. package/dist/types/src/components/layout/AppShell.caracterizacion.test.d.ts +1 -0
  171. package/dist/types/src/components/layout/AppShell.d.ts +8 -2
  172. package/dist/types/src/components/layout/Breadcrumb.d.ts +1 -1
  173. package/dist/types/src/components/layout/DateWeekStrip.d.ts +1 -1
  174. package/dist/types/src/components/layout/FilterBar.d.ts +5 -5
  175. package/dist/types/src/components/layout/FormWizard.d.ts +1 -1
  176. package/dist/types/src/components/layout/HeightProvider.d.ts +1 -1
  177. package/dist/types/src/components/layout/ItineraryEditor.d.ts +1 -1
  178. package/dist/types/src/components/layout/LiveRouteBoard.d.ts +1 -1
  179. package/dist/types/src/components/layout/MaestroLayout.d.ts +1 -1
  180. package/dist/types/src/components/layout/MasterDetailLayout.d.ts +2 -2
  181. package/dist/types/src/components/layout/PageContainer.d.ts +1 -1
  182. package/dist/types/src/components/layout/PageHeader.d.ts +1 -1
  183. package/dist/types/src/components/layout/ScrollArea.d.ts +1 -1
  184. package/dist/types/src/components/layout/Separator.d.ts +1 -1
  185. package/dist/types/src/components/layout/SidePanel.d.ts +1 -1
  186. package/dist/types/src/components/layout/SidePanelContainer.d.ts +1 -1
  187. package/dist/types/src/components/layout/SummaryItem.d.ts +1 -1
  188. package/dist/types/src/components/layout/TablePageLayout.d.ts +1 -1
  189. package/dist/types/src/components/layout/Tabs.caracterizacion.test.d.ts +1 -0
  190. package/dist/types/src/components/layout/Tabs.d.ts +5 -2
  191. package/dist/types/src/components/layout/Tabs.test.d.ts +1 -0
  192. package/dist/types/src/components/layout/ThemePicker.d.ts +23 -0
  193. package/dist/types/src/components/layout/ThemePicker.test.d.ts +1 -0
  194. package/dist/types/src/components/layout/UnitSelector.d.ts +1 -1
  195. package/dist/types/src/components/layout/Visibility.d.ts +2 -2
  196. package/dist/types/src/components/layout/WeekdayToggleStrip.d.ts +1 -1
  197. package/dist/types/src/components/layout/WorkspaceHeader.d.ts +31 -0
  198. package/dist/types/src/components/layout/WorkspaceHeader.test.d.ts +1 -0
  199. package/dist/types/src/components/layout/index.d.ts +5 -1
  200. package/dist/types/src/components/maps/base/MapFrame.d.ts +1 -1
  201. package/dist/types/src/components/maps/base/MapLegend.d.ts +1 -1
  202. package/dist/types/src/components/maps/base/MapPointCard.d.ts +1 -1
  203. package/dist/types/src/components/maps/base/MapStatus.d.ts +1 -1
  204. package/dist/types/src/components/maps/base/MapToolbar.d.ts +1 -1
  205. package/dist/types/src/components/maps/base/MapVehiclePopup.d.ts +1 -1
  206. package/dist/types/src/components/maps/forms/AddressSearchInput.d.ts +1 -1
  207. package/dist/types/src/components/maps/forms/AreaInput.d.ts +1 -1
  208. package/dist/types/src/components/maps/forms/CoordinatesInput.d.ts +1 -1
  209. package/dist/types/src/components/maps/forms/LocationPicker.d.ts +1 -1
  210. package/dist/types/src/components/maps/forms/RouteInput.d.ts +1 -1
  211. package/dist/types/src/components/maps/forms/ShapeInput.d.ts +1 -1
  212. package/dist/types/src/components/maps/forms/SmartMapInput.d.ts +1 -1
  213. package/dist/types/src/components/maps/renderers/google/GoogleMapRenderer.d.ts +1 -1
  214. package/dist/types/src/components/maps/renderers/leaflet/LeafletMapRenderer.d.ts +1 -1
  215. package/dist/types/src/components/maps/views/MapView.d.ts +1 -1
  216. package/dist/types/src/components/media-inputs/FileDropInput.d.ts +1 -1
  217. package/dist/types/src/components/media-inputs/MultiPhotoInput.d.ts +1 -1
  218. package/dist/types/src/components/media-inputs/PhotoCropEditor.d.ts +1 -1
  219. package/dist/types/src/components/media-inputs/PhotoCropInput.d.ts +1 -1
  220. package/dist/types/src/components/media-inputs/SmartMediaInput.d.ts +1 -1
  221. package/dist/types/src/components/overlays/ConfirmDialog.d.ts +1 -1
  222. package/dist/types/src/components/overlays/ContextMenu.caracterizacion.test.d.ts +1 -0
  223. package/dist/types/src/components/overlays/ContextMenu.d.ts +26 -0
  224. package/dist/types/src/components/overlays/Drawer.d.ts +5 -2
  225. package/dist/types/src/components/overlays/DropdownMenu.d.ts +1 -1
  226. package/dist/types/src/components/overlays/DropdownMenu.estilos.test.d.ts +1 -0
  227. package/dist/types/src/components/overlays/Foco.test.d.ts +1 -0
  228. package/dist/types/src/components/overlays/MessageDialog.d.ts +1 -1
  229. package/dist/types/src/components/overlays/Modal.d.ts +4 -1
  230. package/dist/types/src/components/overlays/NotificationBell.d.ts +1 -1
  231. package/dist/types/src/components/overlays/OptionItem.d.ts +1 -1
  232. package/dist/types/src/components/overlays/Overlay.anidados.test.d.ts +1 -0
  233. package/dist/types/src/components/overlays/QRView.d.ts +1 -1
  234. package/dist/types/src/components/overlays/TabMenuOption.d.ts +1 -1
  235. package/dist/types/src/components/overlays/Tooltip.d.ts +1 -1
  236. package/dist/types/src/components/overlays/colorTexto.test.d.ts +1 -0
  237. package/dist/types/src/components/overlays/useFocoDeCapa.d.ts +8 -0
  238. package/dist/types/src/components/overlays/useOverlayStack.consulta.test.d.ts +1 -0
  239. package/dist/types/src/components/overlays/useOverlayStack.d.ts +13 -0
  240. package/dist/types/src/components/range-inputs/DateRangeFields.d.ts +1 -1
  241. package/dist/types/src/components/range-inputs/DateRangeInput.d.ts +1 -1
  242. package/dist/types/src/components/range-inputs/DateRangeUtcInput.d.ts +1 -1
  243. package/dist/types/src/components/range-inputs/TimeRangeInput.d.ts +1 -1
  244. package/dist/types/src/components/table/ActiveFiltersBar.d.ts +1 -1
  245. package/dist/types/src/components/table/AsyncCustomTable.d.ts +1 -1
  246. package/dist/types/src/components/table/CustomTable.ajuste.test.d.ts +1 -0
  247. package/dist/types/src/components/table/CustomTable.caracterizacion.test.d.ts +1 -0
  248. package/dist/types/src/components/table/CustomTable.clavesHeredadas.test.d.ts +1 -0
  249. package/dist/types/src/components/table/CustomTable.columnasOcultas.test.d.ts +1 -0
  250. package/dist/types/src/components/table/CustomTable.d.ts +157 -1
  251. package/dist/types/src/components/table/CustomTable.defectosPublicados.test.d.ts +1 -0
  252. package/dist/types/src/components/table/CustomTable.densidad.caracterizacion.test.d.ts +1 -0
  253. package/dist/types/src/components/table/CustomTable.densidad.test.d.ts +1 -0
  254. package/dist/types/src/components/table/CustomTable.dobleClic.test.d.ts +1 -0
  255. package/dist/types/src/components/table/CustomTable.estadoPorClave.test.d.ts +1 -0
  256. package/dist/types/src/components/table/CustomTable.exportacion.test.d.ts +1 -0
  257. package/dist/types/src/components/table/CustomTable.identidadRemoto.test.d.ts +1 -0
  258. package/dist/types/src/components/table/CustomTable.l3Regresiones.test.d.ts +1 -0
  259. package/dist/types/src/components/table/CustomTable.menuContextual.test.d.ts +1 -0
  260. package/dist/types/src/components/table/CustomTable.numeracion.test.d.ts +1 -0
  261. package/dist/types/src/components/table/CustomTable.paginador.test.d.ts +1 -0
  262. package/dist/types/src/components/table/CustomTable.pie.test.d.ts +1 -0
  263. package/dist/types/src/components/table/EditableDataGrid.d.ts +1 -1
  264. package/dist/types/src/components/table/ExpandableTableSection.d.ts +1 -1
  265. package/dist/types/src/components/table/Pagination.d.ts +2 -0
  266. package/dist/types/src/components/table/RowActionsMenu.d.ts +1 -1
  267. package/dist/types/src/components/table/TableFiltersPanel.d.ts +1 -1
  268. package/dist/types/src/components/table/TableSortingPanel.d.ts +1 -1
  269. package/dist/types/src/components/table/customTableController.d.ts +20 -1
  270. package/dist/types/src/components/table/index.d.ts +2 -2
  271. package/dist/types/src/components/table/tableDevWarning.d.ts +2 -0
  272. package/dist/types/src/components/table/tableRowNumbers.d.ts +8 -0
  273. package/dist/types/src/components/visualization/DnaHelix.d.ts +33 -0
  274. package/dist/types/src/components/visualization/DnaHelix.test.d.ts +1 -0
  275. package/dist/types/src/components/visualization/IntegrationFlow.caracterizacion.test.d.ts +1 -0
  276. package/dist/types/src/components/visualization/IntegrationFlow.d.ts +61 -0
  277. package/dist/types/src/components/visualization/IntegrationFlow.paneles.test.d.ts +1 -0
  278. package/dist/types/src/components/visualization/IntegrationFlow.test.d.ts +1 -0
  279. package/dist/types/src/components/visualization/NetworkLegend.d.ts +1 -1
  280. package/dist/types/src/components/visualization/NetworkMap.d.ts +1 -1
  281. package/dist/types/src/components/visualization/OrgTree.d.ts +1 -1
  282. package/dist/types/src/components/visualization/RelationGraph.caracterizacion.test.d.ts +1 -0
  283. package/dist/types/src/components/visualization/RelationGraph.d.ts +65 -0
  284. package/dist/types/src/components/visualization/RelationGraph.orbita.test.d.ts +1 -0
  285. package/dist/types/src/components/visualization/RelationGraph.test.d.ts +1 -0
  286. package/dist/types/src/components/visualization/SeleccionNodos.test.d.ts +1 -0
  287. package/dist/types/src/components/visualization/disponerOrbita.d.ts +29 -0
  288. package/dist/types/src/components/visualization/disponerRadial.d.ts +19 -0
  289. package/dist/types/src/components/visualization/index.d.ts +6 -0
  290. package/dist/types/src/providers/SfProvider.d.ts +1 -1
  291. package/dist/types/src/theme/paletaCategorias.test.d.ts +1 -0
  292. package/dist/types/src/theme/temas.test.d.ts +1 -0
  293. package/dist/types/src/utils/devWarning.d.ts +2 -0
  294. package/dist/types/src/utils/devWarning.test.d.ts +1 -0
  295. package/dist/types/src/utils/foco.d.ts +9 -0
  296. package/dist/types/src/utils/identidadColeccion.d.ts +11 -0
  297. package/dist/types/src/utils/identidadColeccion.test.d.ts +1 -0
  298. package/dist/types/src/utils/useAnchoContenedor.d.ts +22 -0
  299. package/dist/types/src/utils/useAnchoContenedor.test.d.ts +1 -0
  300. package/package.json +8 -5
@@ -15,5 +15,5 @@ type PhotoCropInputProps<TFormValues extends FieldValues> = {
15
15
  onChange?: (file: File | null) => void;
16
16
  onRefresh?: () => Promise<void> | void;
17
17
  };
18
- export declare const PhotoCropInput: <TFormValues extends FieldValues>({ form, name, label, info, required, maxSizeMb, interactive, aspect, readOnly, disabled, small, className, onChange, onRefresh, }: PhotoCropInputProps<TFormValues>) => import("react").JSX.Element;
18
+ export declare const PhotoCropInput: <TFormValues extends FieldValues>({ form, name, label, info, required, maxSizeMb, interactive, aspect, readOnly, disabled, small, className, onChange, onRefresh, }: PhotoCropInputProps<TFormValues>) => import('react').JSX.Element;
19
19
  export type { PhotoCropInputProps };
@@ -39,5 +39,5 @@ type SmartMediaFileProps<TFormValues extends FieldValues> = SmartMediaBaseProps<
39
39
  onChange?: (files: File[]) => void;
40
40
  };
41
41
  export type SmartMediaInputProps<TFormValues extends FieldValues> = SmartMediaPhotoProps<TFormValues> | SmartMediaMultiPhotoProps<TFormValues> | SmartMediaSignatureProps<TFormValues> | SmartMediaFileProps<TFormValues>;
42
- export declare const SmartMediaInput: <TFormValues extends FieldValues>(props: SmartMediaInputProps<TFormValues>) => import("react").JSX.Element | null;
42
+ export declare const SmartMediaInput: <TFormValues extends FieldValues>(props: SmartMediaInputProps<TFormValues>) => import('react').JSX.Element | null;
43
43
  export {};
@@ -10,5 +10,5 @@ type ConfirmDialogProps = {
10
10
  loading?: boolean;
11
11
  danger?: boolean;
12
12
  };
13
- export declare const ConfirmDialog: ({ open, title, message, confirmLabel, cancelLabel, onConfirm, onCancel, loading, danger, }: ConfirmDialogProps) => import("react").JSX.Element;
13
+ export declare const ConfirmDialog: ({ open, title, message, confirmLabel, cancelLabel, onConfirm, onCancel, loading, danger, }: ConfirmDialogProps) => import('react').JSX.Element;
14
14
  export {};
@@ -8,8 +8,34 @@ export type ContextMenuItem = {
8
8
  onClick?: (ctxValue?: unknown) => void;
9
9
  };
10
10
  export type ContextMenuItemDef = ContextMenuItem | ((ctxValue?: unknown) => ContextMenuItem | null | undefined);
11
+ type MenuState = {
12
+ items: ContextMenuItem[];
13
+ isVisible: boolean;
14
+ event?: MouseEvent<HTMLElement>;
15
+ ctxValue?: unknown;
16
+ /** Posición en coordenadas de página cuando no hay evento de puntero (apertura por teclado). */
17
+ point?: {
18
+ x: number;
19
+ y: number;
20
+ };
21
+ /** Abierto con el teclado: el foco entra al menú y vuelve a `returnFocus` al cerrar. */
22
+ keyboard?: boolean;
23
+ returnFocus?: HTMLElement | null;
24
+ };
25
+ type MenuDispatch = (state: MenuState) => void;
11
26
  export type ContextMenuProviderProps = {
12
27
  children: ReactNode;
13
28
  };
29
+ /**
30
+ * Anfitrión del menú (interno, no se exporta desde el índice). Con `keyboardNavigation` el menú sigue el patrón de
31
+ * menús de WAI-ARIA: flechas, Inicio/Fin, Enter, Escape y Tab, devolviendo el foco a quien lo abrió. Sin esa opción
32
+ * es exactamente el ContextMenuProvider publicado.
33
+ */
34
+ export declare const ContextMenuHost: FC<ContextMenuProviderProps & {
35
+ keyboardNavigation?: boolean;
36
+ }>;
14
37
  export declare const ContextMenuProvider: FC<ContextMenuProviderProps>;
38
+ /** Interno: abre el menú del anfitrión más cercano con un estado completo (usado por CustomTable). */
39
+ export declare const useContextMenuDispatch: () => MenuDispatch;
15
40
  export declare const useContextMenu: (defs: ContextMenuItemDef[]) => (event: MouseEvent<HTMLElement>, ctxValue?: unknown) => void;
41
+ export {};
@@ -15,9 +15,12 @@ export type DrawerProps = {
15
15
  height?: CSSProperties["height"];
16
16
  headerVariant?: OverlayHeaderVariant;
17
17
  closeOnOverlay?: boolean;
18
+ /** Al cerrar, devuelve el foco al control que lo tenía al abrir si quedó perdido. `false` si quien lo usa decide
19
+ * adónde vuelve el foco. */
20
+ restoreFocus?: boolean;
18
21
  className?: string;
19
22
  };
20
- export declare const Drawer: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, className, }: DrawerProps) => import('react').ReactPortal | null;
23
+ export declare const Drawer: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, restoreFocus, className, }: DrawerProps) => import('react').ReactPortal | null;
21
24
  /** Alias de `Drawer` — patrón shadcn Sheet (panel lateral o inferior). */
22
- export declare const Sheet: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, className, }: DrawerProps) => import('react').ReactPortal | null;
25
+ export declare const Sheet: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, restoreFocus, className, }: DrawerProps) => import('react').ReactPortal | null;
23
26
  export type SheetProps = DrawerProps;
@@ -9,7 +9,7 @@ type DropdownMenuProps = {
9
9
  className?: string;
10
10
  };
11
11
  export declare const useDropdownClose: () => () => void;
12
- export declare const DropdownMenu: ({ trigger, children, align, widthClassName, className, }: DropdownMenuProps) => import("react").JSX.Element;
12
+ export declare const DropdownMenu: ({ trigger, children, align, widthClassName, className, }: DropdownMenuProps) => import('react').JSX.Element;
13
13
  type DropdownMenuItemProps = {
14
14
  label: string;
15
15
  onClick: () => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -8,4 +8,4 @@ export type MessageDialogProps = {
8
8
  message?: ReactNode;
9
9
  actionLabel?: string;
10
10
  };
11
- export declare const MessageDialog: ({ open, onClose, variant, title, message, actionLabel, }: MessageDialogProps) => import("react").JSX.Element;
11
+ export declare const MessageDialog: ({ open, onClose, variant, title, message, actionLabel, }: MessageDialogProps) => import('react').JSX.Element;
@@ -22,9 +22,12 @@ export type ModalProps = {
22
22
  /** Oculta cabecera estándar (título, subtítulo, icono y cerrar) cuando el consumidor renderiza cabecera propia en el body. */
23
23
  hideHeader?: boolean;
24
24
  closeOnOverlay?: boolean;
25
+ /** Al cerrar, devuelve el foco al control que lo tenía al abrir si quedó perdido. `false` si quien lo usa decide
26
+ * adónde vuelve el foco. */
27
+ restoreFocus?: boolean;
25
28
  className?: string;
26
29
  };
27
- export declare const Modal: ({ open, onClose, title, subtitle, icon, children, footer, subheader, size, maxWidth, width, headerVariant, hideHeader, closeOnOverlay, className, }: ModalProps) => import('react').ReactPortal | null;
30
+ export declare const Modal: ({ open, onClose, title, subtitle, icon, children, footer, subheader, size, maxWidth, width, headerVariant, hideHeader, closeOnOverlay, restoreFocus, className, }: ModalProps) => import('react').ReactPortal | null;
28
31
  type UseModalOptions = {
29
32
  onOpen?: () => void;
30
33
  onClose?: () => void;
@@ -9,4 +9,4 @@ export type NotificationBellProps = {
9
9
  emptyLabel?: string;
10
10
  className?: string;
11
11
  };
12
- export declare const NotificationBell: ({ items, onItemClick, emptyLabel, className, }: NotificationBellProps) => import("react").JSX.Element;
12
+ export declare const NotificationBell: ({ items, onItemClick, emptyLabel, className, }: NotificationBellProps) => import('react').JSX.Element;
@@ -8,4 +8,4 @@ export type OptionItemProps = {
8
8
  role?: AriaRole;
9
9
  className?: string;
10
10
  };
11
- export declare const OptionItem: ({ title, selected, icon, disabled, onClick, role, className, }: OptionItemProps) => import("react").JSX.Element;
11
+ export declare const OptionItem: ({ title, selected, icon, disabled, onClick, role, className, }: OptionItemProps) => import('react').JSX.Element;
@@ -6,4 +6,4 @@ export type QRViewProps = {
6
6
  size?: number;
7
7
  ariaLabel?: string;
8
8
  };
9
- export declare const QRView: ({ open, onClose, value, title, size, ariaLabel, }: QRViewProps) => import("react").JSX.Element;
9
+ export declare const QRView: ({ open, onClose, value, title, size, ariaLabel, }: QRViewProps) => import('react').JSX.Element;
@@ -6,4 +6,4 @@ export type TabMenuOptionProps = {
6
6
  selected?: boolean;
7
7
  className?: string;
8
8
  };
9
- export declare const TabMenuOption: ({ label, icon, selected, className }: TabMenuOptionProps) => import("react").JSX.Element;
9
+ export declare const TabMenuOption: ({ label, icon, selected, className }: TabMenuOptionProps) => import('react').JSX.Element;
@@ -7,4 +7,4 @@ export type TooltipProps = {
7
7
  className?: string;
8
8
  contentClassName?: string;
9
9
  };
10
- export declare const Tooltip: ({ content, children, placement, className, contentClassName, }: TooltipProps) => import("react").JSX.Element;
10
+ export declare const Tooltip: ({ content, children, placement, className, contentClassName, }: TooltipProps) => import('react').JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Foco de un diálogo de la pila (Modal, Drawer). Al abrir, enfoca el primer control del panel salvo que un hijo ya haya
4
+ * movido el foco dentro (el visor de MediaGallery enfoca su «Cerrar»). Mientras es la capa superior, Tab no sale del
5
+ * panel; si otro manejador ya atendió el Tab (preventDefault), no interviene. Al cerrar, si el foco quedó perdido,
6
+ * vuelve al control que tenía el foco al abrir.
7
+ */
8
+ export declare const useFocoDeCapa: (abierto: boolean, idCapa: string, panel: RefObject<HTMLElement | null>, devolver?: boolean) => void;
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ export declare const OverlayParentContext: import('react').Context<string | null>;
3
+ export declare const useOverlayStack: (abierto: boolean, onClose: () => void, raiz: RefObject<HTMLDivElement | null>) => string;
4
+ /** Capa superior registrada en la pila del documento, o `null`. Lectura pura: uso interno de sf-ui. */
5
+ export declare const overlaySuperior: (documento: Document) => {
6
+ id: string;
7
+ raiz: HTMLElement;
8
+ } | null;
9
+ /**
10
+ * Avisa después de cada alta y baja en la pila del documento. Devuelve la baja (idempotente). Cada suscripción es
11
+ * propia aunque se repita la función. Uso interno de sf-ui.
12
+ */
13
+ export declare const suscribirPilaOverlays: (documento: Document, oyente: () => void) => () => void;
@@ -33,5 +33,5 @@ type DateRangeFieldsProps<TFormValues extends FieldValues> = {
33
33
  * objeto `{start, end}` (con soporte UTC) — ideal para filtros; este mapea
34
34
  * directo a columnas del entity, que es el caso de los mantenimientos.
35
35
  */
36
- export declare const DateRangeFields: <TFormValues extends FieldValues>({ form, startName, endName, startLabel, endLabel, required, endRequired, small, readOnlyEnd, adjustEnd, onEndAdjusted, className, }: DateRangeFieldsProps<TFormValues>) => import("react").JSX.Element;
36
+ export declare const DateRangeFields: <TFormValues extends FieldValues>({ form, startName, endName, startLabel, endLabel, required, endRequired, small, readOnlyEnd, adjustEnd, onEndAdjusted, className, }: DateRangeFieldsProps<TFormValues>) => import('react').JSX.Element;
37
37
  export {};
@@ -16,4 +16,4 @@ export type DateRangeInputProps<TFormValues extends FieldValues> = {
16
16
  onChange?: (value: DateRange) => void;
17
17
  onRefresh?: () => Promise<void> | void;
18
18
  };
19
- export declare const DateRangeInput: <TFormValues extends FieldValues>({ form, name, label, info, required, min, max, readOnly, disabled, small, className, utc, onChange, onRefresh, }: DateRangeInputProps<TFormValues>) => import("react").JSX.Element;
19
+ export declare const DateRangeInput: <TFormValues extends FieldValues>({ form, name, label, info, required, min, max, readOnly, disabled, small, className, utc, onChange, onRefresh, }: DateRangeInputProps<TFormValues>) => import('react').JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { DateRangeInputProps } from './DateRangeInput';
3
- export declare const DateRangeUtcInput: <TFormValues extends FieldValues>(props: Omit<DateRangeInputProps<TFormValues>, "utc">) => import("react").JSX.Element;
3
+ export declare const DateRangeUtcInput: <TFormValues extends FieldValues>(props: Omit<DateRangeInputProps<TFormValues>, "utc">) => import('react').JSX.Element;
@@ -14,5 +14,5 @@ type TimeRangeInputProps<TFormValues extends FieldValues> = {
14
14
  onChange?: (value: TimeRange) => void;
15
15
  onRefresh?: () => Promise<void> | void;
16
16
  };
17
- export declare const TimeRangeInput: <TFormValues extends FieldValues>({ form, name, label, info, required, readOnly, disabled, small, className, showDuration, onChange, onRefresh, }: TimeRangeInputProps<TFormValues>) => import("react").JSX.Element;
17
+ export declare const TimeRangeInput: <TFormValues extends FieldValues>({ form, name, label, info, required, readOnly, disabled, small, className, showDuration, onChange, onRefresh, }: TimeRangeInputProps<TFormValues>) => import('react').JSX.Element;
18
18
  export type { TimeRangeInputProps };
@@ -7,4 +7,4 @@ export type ActiveFiltersBarProps = {
7
7
  emptyLabel?: string;
8
8
  className?: string;
9
9
  };
10
- export declare const ActiveFiltersBar: ({ filters, onRemove, onClearAll, label, emptyLabel, className, }: ActiveFiltersBarProps) => import("react").JSX.Element;
10
+ export declare const ActiveFiltersBar: ({ filters, onRemove, onClearAll, label, emptyLabel, className, }: ActiveFiltersBarProps) => import('react').JSX.Element;
@@ -9,5 +9,5 @@ type AsyncCustomTableProps<TData extends Record<string, unknown>> = Omit<CustomT
9
9
  errorMessage?: (error: Error) => ReactNode;
10
10
  emptyMessage?: string;
11
11
  };
12
- export declare function AsyncCustomTable<TData extends Record<string, unknown>>({ queryKey, queryFn, queryOptions, loadingMessage, errorMessage, emptyMessage, ...tableProps }: AsyncCustomTableProps<TData>): import("react").JSX.Element;
12
+ export declare function AsyncCustomTable<TData extends Record<string, unknown>>({ queryKey, queryFn, queryOptions, loadingMessage, errorMessage, emptyMessage, ...tableProps }: AsyncCustomTableProps<TData>): import('react').JSX.Element;
13
13
  export type { AsyncCustomTableProps };
@@ -4,6 +4,7 @@ import { AggregationFn } from '@tanstack/react-table';
4
4
  import { AsyncStateStore } from './asyncStateStore';
5
5
  import { PaginationVariant } from './Pagination';
6
6
  import { CustomTableController } from './customTableController';
7
+ import { ExportTableColumn } from '../../utils/exportTableCsv';
7
8
  /**
8
9
  * Skin del `<thead>` del CustomTable. Los 4 variants nuevos (`soft`, `neon`,
9
10
  * `premium`, `matrix`) hacen match visual 1:1 con los variants del
@@ -11,6 +12,8 @@ import { CustomTableController } from './customTableController';
11
12
  * Todos se apoyan en tokens `--sf-*` para reaccionar al tema activo.
12
13
  */
13
14
  export type TableHeaderVariant = "default" | "brand" | "soft" | "neon" | "premium" | "matrix";
15
+ export type CustomTableDensity = "default" | "compact";
16
+ export type CustomTableRowActionsDisplay = "menu" | "inline";
14
17
  /** Estado de una paginación que resuelve el backend (limit/offset). `page` es 1-based. */
15
18
  export type CustomTableServerPagination = {
16
19
  totalItems: number;
@@ -19,6 +22,93 @@ export type CustomTableServerPagination = {
19
22
  onPageChange: (page: number) => void;
20
23
  onPageSizeChange: (pageSize: number) => void;
21
24
  };
25
+ /** Acción del menú contextual de una fila (`getRowContextMenu`): `onClick` recibe la fila, con su tipo. */
26
+ export type CustomTableRowMenuItem<TData> = {
27
+ id: string;
28
+ label: string;
29
+ icon?: IconType | string;
30
+ disabled?: boolean;
31
+ onClick: (row: TData) => void;
32
+ };
33
+ /**
34
+ * Contexto del pie (`footerSlot`). Son datos, no cálculos: los totales de negocio los hace la pantalla.
35
+ * Con `loadedOnly` (serverPagination o remote) los objetos son solo lo cargado, no el conjunto del servidor.
36
+ */
37
+ export type CustomTableFooterContext<TData> = {
38
+ /** Filas de datos visibles en la página actual (búsqueda y orden aplicados; sin filas de grupo). */
39
+ pageRows: TData[];
40
+ /** Filas que pasan la búsqueda y los filtros, en todas las páginas de los datos cargados; incluye las hijas de `subRows`, sin orden garantizado. */
41
+ filteredRows: TData[];
42
+ /** Filas seleccionadas cargadas (lo mismo que `getSelectedRows`). */
43
+ selectedRows: TData[];
44
+ /** Claves seleccionadas con `getRowId`, incluidas las de filas no cargadas; sin identidad, []. */
45
+ selectedRowKeys: string[];
46
+ /** true con serverPagination o remote: los objetos anteriores son solo los datos cargados. */
47
+ loadedOnly: boolean;
48
+ /** Total informado por serverPagination, si existe. */
49
+ totalItems?: number;
50
+ };
51
+ /** Alcance de la exportación (`exportOptions`). */
52
+ export type CustomTableExportScope = "selected" | "filtered" | "page" | "all";
53
+ /** Pedido al host para un alcance que la tabla no tiene completo: datos remotos o selección con claves no cargadas. */
54
+ export type CustomTableExportRequest<TData> = {
55
+ scope: CustomTableExportScope;
56
+ /** Claves seleccionadas con `getRowId`, incluidas las no cargadas; sin identidad, []. */
57
+ selectedRowKeys: string[];
58
+ /** Criterios efectivos de la tabla, para que el host exporte el mismo conjunto que se ve. */
59
+ criteria: CustomTableExportCriteria;
60
+ /** Escribe el .xls con las filas que entregue el host, con las mismas columnas, nombre y sanitización. */
61
+ download: (rows: TData[]) => void;
62
+ };
63
+ /** Búsqueda, filtros por columna y orden vigentes: los del host en modo remoto, los de la tabla en otro caso. */
64
+ export type CustomTableExportCriteria = {
65
+ search: string;
66
+ /** Filtros del panel de la tabla (`{ id, value }` de TanStack). En modo remoto no hay filtros locales: []. */
67
+ columnFilters: {
68
+ id: string;
69
+ value: unknown;
70
+ }[];
71
+ sorting: CustomTableSort;
72
+ };
73
+ /**
74
+ * Exportación a Excel .xls (SpreadsheetML, no XLSX). Solo se ofrecen los alcances de `scopes`. Las columnas llevan
75
+ * encabezado y valor: no se leen las celdas dibujadas. Se exportan filas de datos (con sus hijas de subRows), nunca
76
+ * grupos ni columnas internas. Con serverPagination o remote, "filtered" y "all" los resuelve el host con `onRequest`;
77
+ * lo mismo la selección con claves no cargadas. Sin `onRequest` esas opciones quedan deshabilitadas.
78
+ */
79
+ export type CustomTableExport<TData> = {
80
+ scopes: CustomTableExportScope[];
81
+ columns: ExportTableColumn<TData>[];
82
+ /** Nombre sin extensión; siempre se guarda como .xls. Default: "export". */
83
+ filename?: string | ((scope: CustomTableExportScope) => string);
84
+ /** Texto del botón. Default: "Exportar". */
85
+ label?: string;
86
+ onRequest?: (request: CustomTableExportRequest<TData>) => void;
87
+ };
88
+ /** Orden de una tabla en modo remoto: columnas por prioridad. */
89
+ export type CustomTableSort = {
90
+ id: string;
91
+ desc: boolean;
92
+ }[];
93
+ /**
94
+ * Modo remoto: búsqueda y orden los resuelve el host. Activo con solo pasar `remote`: la tabla deja de filtrar y
95
+ * ordenar en el cliente. Cada control necesita su par completo valor + callback; si falta una mitad, ese control
96
+ * se deshabilita y avisa en desarrollo.
97
+ */
98
+ export type CustomTableRemote = {
99
+ search?: {
100
+ value?: string;
101
+ onChange?: (value: string) => void;
102
+ /** Espera tras la última tecla antes de avisar al host. Por defecto 0 (aviso inmediato). */
103
+ debounceMs?: number;
104
+ /** Largo mínimo para avisar (vaciar el buscador siempre avisa). Por defecto 0. */
105
+ minLength?: number;
106
+ };
107
+ sorting?: {
108
+ value?: CustomTableSort;
109
+ onChange?: (sorting: CustomTableSort) => void;
110
+ };
111
+ };
22
112
  type BuiltInAggregation = "sum" | "min" | "max" | "mean" | "median" | "unique" | "uniqueCount" | "count";
23
113
  type TableAggregation = BuiltInAggregation | AggregationFn<unknown>;
24
114
  type CustomColumn<TData> = {
@@ -33,6 +123,14 @@ type CustomColumn<TData> = {
33
123
  enableSorting?: boolean;
34
124
  enableHiding?: boolean;
35
125
  size?: number;
126
+ /**
127
+ * Ajuste de texto del contenido: `true` (hasta 320 px) o `{ maxWidth }` en píxeles, finito y positivo; un valor
128
+ * inválido usa 320 px y avisa en desarrollo. Es el ancho máximo del contenido, no de la columna: el encabezado y el
129
+ * relleno pueden ensancharla. Sin la opción o con `false`, la celda queda en una línea como siempre.
130
+ */
131
+ wrap?: boolean | {
132
+ maxWidth: number;
133
+ };
36
134
  };
37
135
  /**
38
136
  * Configuración de las filas de detalle expandibles (master-detail).
@@ -75,6 +173,13 @@ type CustomTableProps<TData extends Record<string, unknown>, TDetail extends Rec
75
173
  paginationVariant?: PaginationVariant | "legacy";
76
174
  /** Opciones del selector "Mostrar N registros por página". Default: 10/25/50/100/200. */
77
175
  pageSizeOptions?: number[];
176
+ /**
177
+ * Dónde va el paginador: "bottom" (por defecto, como siempre), "top" (antes del cuerpo) o "both" (dos con el mismo
178
+ * estado, etiquetados como superior e inferior). Sin enablePagination ni serverPagination no tiene efecto.
179
+ */
180
+ paginationPosition?: "bottom" | "top" | "both";
181
+ /** Botón «Exportar» en la barra con los alcances declarados (`CustomTableExport`). Sin la prop, la barra no cambia. */
182
+ exportOptions?: CustomTableExport<TData>;
78
183
  /**
79
184
  * Paginación en servidor: `data` ya es UNA página que trajo el backend. El
80
185
  * CustomTable no la recorta y dibuja el mismo paginador dentro de la tarjeta
@@ -104,6 +209,34 @@ type CustomTableProps<TData extends Record<string, unknown>, TDetail extends Rec
104
209
  onRefresh?: () => void;
105
210
  /** Clic en cualquier parte de una fila (excepto botones/enlaces internos). */
106
211
  onRowClick?: (row: TData) => void;
212
+ /**
213
+ * Doble clic en una fila (excepto botones, enlaces y controles internos; no aplica a filas agrupadas). Con esta
214
+ * opción la fila recibe foco y Enter ejecuta la misma acción. No retrasa `onRowClick`: si se configuran ambos, un
215
+ * doble clic produce normalmente dos `onRowClick` y un `onRowDoubleClick`.
216
+ */
217
+ onRowDoubleClick?: (row: TData) => void;
218
+ /**
219
+ * Columnas ocultas al abrir la tabla, por identificador de columna (`id` o `accessorKey`, no el título). Es solo el
220
+ * estado inicial: la visibilidad guardada en `stateStore` manda (también `{}`, todas visibles) y lo que el usuario
221
+ * muestre después no se vuelve a ocultar.
222
+ */
223
+ defaultHiddenColumns?: string[];
224
+ /**
225
+ * Menú contextual por fila. Sin esta prop el clic derecho abre el menú del navegador. Con ella: clic derecho en la
226
+ * fila (no en controles ni editores, que conservan el del navegador; no en filas agrupadas) abre el menú, sin
227
+ * seleccionar la fila; si la lista viene vacía queda el menú del navegador. Con el teclado: la fila recibe foco y
228
+ * la tecla Menú o Shift+F10 lo abre; flechas, Inicio/Fin, Enter, Escape y Tab, devolviendo el foco a la fila.
229
+ */
230
+ getRowContextMenu?: (row: TData) => CustomTableRowMenuItem<TData>[];
231
+ /** Pie bajo el cuerpo de la tabla, con el contexto de filas (`CustomTableFooterContext`). Sin la prop, sin pie. */
232
+ footerSlot?: (context: CustomTableFooterContext<TData>) => ReactNode;
233
+ /**
234
+ * Columna «N°» con la posición de cada fila raíz en lo filtrado y ordenado, continua entre páginas y entre grupos.
235
+ * Con serverPagination suma (page - 1) * pageSize: supone que el servidor pagina las mismas raíces que recibe la
236
+ * tabla. Grupos, hijas de subRows y detalles van sin número. No se ordena, no se oculta ni se guarda.
237
+ * Con la opción activa, `__rownumber` queda reservado: ninguna columna de datos debe usar ese id.
238
+ */
239
+ showRowNumbers?: boolean;
107
240
  enableRowSelection?: boolean;
108
241
  getRowActions?: (row: TData) => Array<{
109
242
  icon?: IconType;
@@ -130,12 +263,35 @@ type CustomTableProps<TData extends Record<string, unknown>, TDetail extends Rec
130
263
  searchPlaceholder?: string;
131
264
  /** Oculta título, toolbar y chrome exterior — para uso dentro de ExpandableTableSection u otros contenedores. */
132
265
  embedded?: boolean;
266
+ /**
267
+ * "compact": filas y cabecera bajas, letra menor y sin borde exterior del área de scroll; la tabla puede medir menos
268
+ * que su contenido máximo para caber en tarjetas angostas. Con `embedded` no hay título ni barra. Por defecto
269
+ * "default" (acabado publicado).
270
+ */
271
+ density?: CustomTableDensity;
272
+ /**
273
+ * "inline": las acciones de `getRowActions` se muestran como botones de ícono visibles en la fila (nombre accesible
274
+ * = `label`), en vez del menú ⋮. Por defecto "menu" (acabado publicado).
275
+ */
276
+ rowActionsDisplay?: CustomTableRowActionsDisplay;
133
277
  /**
134
278
  * Filas de detalle expandibles (master-detail). Agrega una columna de chevron al inicio
135
279
  * y, al expandir, inserta una fila con el detalle debajo de la fila padre.
136
280
  */
137
281
  detail?: CustomTableDetail<TData, TDetail>;
138
282
  controller?: CustomTableController<TData>;
283
+ /**
284
+ * Identidad de fila por clave: selección, detalle y controlador siguen a la fila aunque cambie su posición o su
285
+ * objeto. Exige `selectionAcrossPages`; sin ella se ignora (comportamiento anterior) y avisa en desarrollo.
286
+ */
287
+ getRowId?: (row: TData) => string;
288
+ /**
289
+ * Con `getRowId`: qué pasa con la selección al cambiar de página. "keep" conserva las claves (las filas que no
290
+ * están en la página no salen de la selección); "clear" la vacía. Sin valor por defecto: hay que declararlo.
291
+ */
292
+ selectionAcrossPages?: "keep" | "clear";
293
+ /** Búsqueda y orden resueltos por el host (ver `CustomTableRemote`). */
294
+ remote?: CustomTableRemote;
139
295
  };
140
- export declare function CustomTable<TData extends Record<string, unknown>, TDetail extends Record<string, unknown> = Record<string, unknown>>({ id, stateStore, data, columns, grouping, defaultGrouping, enableGrouping, enableSorting, enableFiltering, enablePagination, pageSize, paginationVariant, pageSizeOptions, serverPagination, fillParentHeight, maxBodyHeightPx, className, emptyMessage, title, subtitle, sidePanel, onGroupingChange, toolbarSlot, belowToolbarSlot, loading, loadingMessage, isFetching, error, onRetry, onRefresh, onRowClick, enableRowSelection, getRowActions, getBulkActions, bulkActionsSlot, onSelectionChange, headerVariant, searchPlaceholder, embedded, detail, controller, }: CustomTableProps<TData, TDetail>): import("react").JSX.Element;
296
+ export declare function CustomTable<TData extends Record<string, unknown>, TDetail extends Record<string, unknown> = Record<string, unknown>>({ id, stateStore, data, columns, grouping, defaultGrouping, enableGrouping, enableSorting, enableFiltering, enablePagination, pageSize, paginationVariant, pageSizeOptions, paginationPosition, exportOptions, serverPagination, fillParentHeight, maxBodyHeightPx, className, emptyMessage, title, subtitle, sidePanel, onGroupingChange, toolbarSlot, belowToolbarSlot, loading, loadingMessage, isFetching, error, onRetry, onRefresh, onRowClick, onRowDoubleClick, defaultHiddenColumns, getRowContextMenu, footerSlot, showRowNumbers, enableRowSelection, getRowActions, getBulkActions, bulkActionsSlot, onSelectionChange, headerVariant, searchPlaceholder, embedded, density, rowActionsDisplay, detail, controller, getRowId, selectionAcrossPages, remote, }: CustomTableProps<TData, TDetail>): import('react').JSX.Element;
141
297
  export type { CustomColumn, CustomTableDetail, CustomTableProps, TableAggregation };
@@ -47,4 +47,4 @@ export type EditableDataGridProps<T extends Record<string, unknown>> = {
47
47
  };
48
48
  /** true si TODOS los campos indicados están vacíos ("" / null / undefined / 0 no cuenta como vacío) */
49
49
  export declare const isBlankRow: <T extends object>(row: T, keys: Array<keyof T & string>) => boolean;
50
- export declare const EditableDataGrid: <T extends Record<string, unknown>>({ data, columns, rowKey, onChange, className, mode, showIndex, onAddRow, addLabel, onRemoveRow, title, pageSize, emptyMessage, }: EditableDataGridProps<T>) => import("react").JSX.Element;
50
+ export declare const EditableDataGrid: <T extends Record<string, unknown>>({ data, columns, rowKey, onChange, className, mode, showIndex, onAddRow, addLabel, onRemoveRow, title, pageSize, emptyMessage, }: EditableDataGridProps<T>) => import('react').JSX.Element;
@@ -23,4 +23,4 @@ export type ExpandableTableSectionProps<TData extends Record<string, unknown> =
23
23
  className?: string;
24
24
  ariaLabel?: string;
25
25
  };
26
- export declare const ExpandableTableSection: <TData extends Record<string, unknown> = Record<string, unknown>>({ items, type, className, ariaLabel, }: ExpandableTableSectionProps<TData>) => import("react").JSX.Element;
26
+ export declare const ExpandableTableSection: <TData extends Record<string, unknown> = Record<string, unknown>>({ items, type, className, ariaLabel, }: ExpandableTableSectionProps<TData>) => import('react').JSX.Element;
@@ -38,6 +38,8 @@ export interface PaginationProps {
38
38
  labels?: Partial<PaginationLabels>;
39
39
  /** id opcional para tests / a11y. */
40
40
  id?: string;
41
+ /** Nombre de la zona de navegación. Default: "Paginación". Distínguelo si hay más de un paginador en la página. */
42
+ ariaLabel?: string;
41
43
  }
42
44
  export interface PaginationLabels {
43
45
  showing: (from: number, to: number, total: number) => string;
@@ -24,4 +24,4 @@ export declare function RowActionsMenu<T>({ row, actions, open, onOpenChange, }:
24
24
  actions: RowActionItem<T>[];
25
25
  open: boolean;
26
26
  onOpenChange: (open: boolean) => void;
27
- }): import("react").JSX.Element;
27
+ }): import('react').JSX.Element;
@@ -13,5 +13,5 @@ type Props<TData extends Record<string, unknown>> = {
13
13
  table: Table<TData>;
14
14
  markUserEdit: () => void;
15
15
  };
16
- export declare function TableFiltersPanel<TData extends Record<string, unknown>>({ open, onClose, columnsMeta, headerLabelById, columnTypeById, columnFilters, table, markUserEdit, }: Props<TData>): import("react").JSX.Element | null;
16
+ export declare function TableFiltersPanel<TData extends Record<string, unknown>>({ open, onClose, columnsMeta, headerLabelById, columnTypeById, columnFilters, table, markUserEdit, }: Props<TData>): import('react').JSX.Element | null;
17
17
  export {};
@@ -12,5 +12,5 @@ type Props<TData extends Record<string, unknown>> = {
12
12
  table: Table<TData>;
13
13
  markUserEdit: () => void;
14
14
  };
15
- export declare function TableSortingPanel<TData extends Record<string, unknown>>({ open, onClose, columnsMeta, headerLabelById, sorting, table, markUserEdit, }: Props<TData>): import("react").JSX.Element | null;
15
+ export declare function TableSortingPanel<TData extends Record<string, unknown>>({ open, onClose, columnsMeta, headerLabelById, sorting, table, markUserEdit, }: Props<TData>): import('react').JSX.Element | null;
16
16
  export {};
@@ -5,11 +5,14 @@ type RegisterProps<T> = {
5
5
  selectRowFn: SelectRowFn<T>;
6
6
  cleanSelectionFn: () => void;
7
7
  getSelectedRowsFn: SelectedRowsFn<T>;
8
+ getSelectedRowKeysFn?: () => string[];
9
+ forgetKeysFn?: (keys: string[]) => void;
8
10
  };
9
11
  row?: {
10
12
  selectRowFn: (row: T) => void;
11
13
  cleanSelectionFn: () => void;
12
14
  getSelectedRowFn: () => T | undefined;
15
+ getSelectedRowKeyFn?: () => string | undefined;
13
16
  };
14
17
  };
15
18
  type SelectionController<T> = {
@@ -29,6 +32,22 @@ export type CustomTableController<T> = {
29
32
  selection: SelectionController<T>;
30
33
  row: RowController<T>;
31
34
  };
35
+ /**
36
+ * Lo que devuelve useCustomTableController: el controlador publicado más los métodos por clave de la identidad de
37
+ * fila (`getRowId` en la tabla). Es asignable a CustomTableController, que no cambia.
38
+ */
39
+ export type CustomTableKeyedController<T> = CustomTableController<T> & {
40
+ selection: {
41
+ /** Claves de la selección, incluidas las de filas no cargadas. Sin identidad: []. */
42
+ getSelectedRowKeys: () => string[];
43
+ /** Quita de la selección las claves de filas eliminadas de verdad (eliminación confirmada por el host). */
44
+ forgetKeys: (keys: string[]) => void;
45
+ };
46
+ row: {
47
+ /** Clave de la fila elegida. Sin identidad: undefined. */
48
+ getSelectedRowKey: () => string | undefined;
49
+ };
50
+ };
32
51
  export type CustomTableControllerInternal<T> = {
33
52
  events: {
34
53
  selection: {
@@ -47,5 +66,5 @@ export declare const useCustomTableController: <TData>(props?: {
47
66
  row?: {
48
67
  onChange?: (row?: TData) => void;
49
68
  };
50
- }) => CustomTableController<TData>;
69
+ }) => CustomTableKeyedController<TData>;
51
70
  export {};